fpmas 1.6
location_manager.h
Go to the documentation of this file.
1#ifndef FPMAS_LOCATION_MANAGER_API_H
2#define FPMAS_LOCATION_MANAGER_API_H
3
10
11namespace fpmas {namespace api { namespace graph {
12
33 template<typename T>
35 public:
40
50 HEDLEY_DEPRECATED_FOR(1.1, addManagedNode(DistributedId, int))
51 virtual void addManagedNode(DistributedNode<T>* node, int initial_location) = 0;
52
61 virtual void addManagedNode(DistributedId id, int initial_location) = 0;
70 HEDLEY_DEPRECATED_FOR(1.1, removeManagedNode(DistributedId))
71 virtual void removeManagedNode(DistributedNode<T>* node) = 0;
78 virtual void removeManagedNode(DistributedId id) = 0;
79
86 virtual std::unordered_map<DistributedId, int> getCurrentLocations() const = 0;
87
96 virtual const NodeMap& getLocalNodes() const = 0;
97
106 virtual const NodeMap& getDistantNodes() const = 0;
107
118 virtual void setLocal(DistributedNode<T>* node) = 0;
119
131 virtual void setDistant(DistributedNode<T>* node) = 0;
132
141 virtual void remove(DistributedNode<T>* node) = 0;
142
153 virtual void updateLocations() = 0;
154
155 virtual ~LocationManager() {}
156 };
157}}}
158#endif
Definition: distributed_edge.h:91
Definition: distributed_id.h:89
Definition: distributed_node.h:28
Definition: graph.h:21
Definition: location_manager.h:34
virtual const NodeMap & getLocalNodes() const =0
virtual void setLocal(DistributedNode< T > *node)=0
virtual void addManagedNode(DistributedNode< T > *node, int initial_location)=0
virtual std::unordered_map< DistributedId, int > getCurrentLocations() const =0
virtual const NodeMap & getDistantNodes() const =0
virtual void setDistant(DistributedNode< T > *node)=0
virtual void removeManagedNode(DistributedNode< T > *node)=0
fpmas::api::graph::Graph< DistributedNode< T >, DistributedEdge< T > >::NodeMap NodeMap
Definition: location_manager.h:39
virtual void remove(DistributedNode< T > *node)=0
Definition: fpmas.cpp:3