1#ifndef FPMAS_DISTRIBUTED_GRAPH_API_H
2#define FPMAS_DISTRIBUTED_GRAPH_API_H
13namespace fpmas {
namespace api {
namespace graph {
662 bool synchronize_links = true
Definition: communication.h:251
Definition: distributed_edge.h:91
Definition: distributed_graph.h:169
virtual void removeNode(DistributedNode< T > *node)=0
virtual const LocationManager< T > & getLocationManager() const =0
virtual api::communication::MpiCommunicator & getMpiCommunicator()=0
api::utils::EventCallback< SetDistantNodeEvent< T > > SetDistantNodeCallback
Definition: distributed_graph.h:181
virtual void distribute(PartitionMap partition)=0
virtual DistributedEdge< T > * importEdge(DistributedEdge< T > *edge)=0
virtual void addCallOnSetDistant(SetDistantNodeCallback *callback)=0
virtual DistributedId currentEdgeId() const =0
virtual void addCallOnSetLocal(SetLocalNodeCallback *callback)=0
virtual DistributedId currentNodeId() const =0
virtual void setCurrentNodeId(DistributedId id)=0
virtual void removeNode(DistributedId id)=0
virtual synchro::SyncMode< T > & synchronizationMode()=0
virtual void balance(LoadBalancing< T > &lb)=0
virtual DistributedEdge< T > * link(DistributedNode< T > *source, DistributedNode< T > *target, LayerId layer_id)=0
virtual void unlink(DistributedId id)=0
virtual DistributedNode< T > * buildNode(const T &data)=0
virtual std::vector< SetDistantNodeCallback * > onSetDistantCallbacks() const =0
virtual void switchLayer(DistributedEdge< T > *edge, LayerId layer_id)=0
virtual void synchronize()=0
virtual const api::communication::MpiCommunicator & getMpiCommunicator() const =0
virtual DistributedNode< T > * insertDistant(DistributedNode< T > *node)=0
virtual DistributedNode< T > * importNode(DistributedNode< T > *node)=0
virtual void unlink(DistributedEdge< T > *edge)=0
virtual DistributedNode< T > * buildNode(T &&data)=0
virtual std::unordered_set< DistributedNode< T > * > getUnsyncNodes() const =0
virtual void setCurrentEdgeId(DistributedId id)=0
api::utils::EventCallback< SetLocalNodeEvent< T > > SetLocalNodeCallback
Definition: distributed_graph.h:177
virtual LocationManager< T > & getLocationManager()=0
virtual std::vector< SetLocalNodeCallback * > onSetLocalCallbacks() const =0
Definition: distributed_id.h:89
Definition: distributed_node.h:28
Definition: load_balancing.h:47
std::unordered_map< EdgeIdType, DistributedEdge< T > *, EdgeIdHash > EdgeMap
Definition: graph.h:56
std::unordered_map< NodeIdType, DistributedNode< T > *, NodeIdHash > NodeMap
Definition: graph.h:50
Definition: load_balancing.h:92
Definition: location_manager.h:34
std::unordered_map< DistributedId, int, api::graph::IdHash< DistributedId > > PartitionMap
Definition: load_balancing.h:19
int LayerId
Definition: edge.h:13
PartitionMode
Definition: load_balancing.h:30
Definition: distributed_graph.h:19
DistributedNode< T > * node
Definition: distributed_graph.h:23
NodeEvent(DistributedNode< T > *node)
Definition: distributed_graph.h:28
Definition: distributed_graph.h:99
Context context
Definition: distributed_graph.h:127
Context
Definition: distributed_graph.h:103
@ EXPORT_DISTANT
Definition: distributed_graph.h:114
@ UNSPECIFIED
Definition: distributed_graph.h:120
@ IMPORT_NEW_DISTANT
Definition: distributed_graph.h:108
Definition: distributed_graph.h:42
Context
Definition: distributed_graph.h:46
@ UNSPECIFIED
Definition: distributed_graph.h:71
@ IMPORT_EXISTING_LOCAL
Definition: distributed_graph.h:65
@ BUILD_LOCAL
Definition: distributed_graph.h:51
@ IMPORT_NEW_LOCAL
Definition: distributed_graph.h:56
Context context
Definition: distributed_graph.h:77
Definition: callback.h:33