fpmas 1.6
distributed_edge.h
Go to the documentation of this file.
1#ifndef FPMAS_DISTRIBUTED_EDGE_API_H
2#define FPMAS_DISTRIBUTED_EDGE_API_H
3
9#include "distributed_id.h"
10#include "location_state.h"
11
12namespace fpmas {namespace api { namespace graph {
13#ifndef DOXYGEN_BUILD
14 template<typename> class DistributedNode;
15#endif
16
46 template<typename T>
48 public:
57 virtual DistributedId getId() const = 0;
58
65 virtual int getLocation() const = 0;
66
74 virtual DistributedNode<T>* build() = 0;
75
76 virtual ~TemporaryNode() {
77 }
78 };
79
89 template<typename T>
91 : public virtual fpmas::api::graph::Edge<DistributedId, DistributedNode<T>> {
93 public:
102 virtual LocationState state() const = 0;
110 virtual void setState(LocationState state) = 0;
111
123 virtual void setTempSourceNode(std::unique_ptr<api::graph::TemporaryNode<T>> temp_src) = 0;
124
155 virtual std::unique_ptr<TemporaryNode<T>> getTempSourceNode() = 0;
156
168 virtual void setTempTargetNode(std::unique_ptr<api::graph::TemporaryNode<T>> temp_tgt) = 0;
169
182 virtual std::unique_ptr<TemporaryNode<T>> getTempTargetNode() = 0;
183
184 virtual ~DistributedEdge() {}
185 };
186}}}
187#endif
Definition: distributed_edge.h:91
virtual void setState(LocationState state)=0
virtual std::unique_ptr< TemporaryNode< T > > getTempSourceNode()=0
virtual LocationState state() const =0
virtual void setTempTargetNode(std::unique_ptr< api::graph::TemporaryNode< T > > temp_tgt)=0
virtual void setTempSourceNode(std::unique_ptr< api::graph::TemporaryNode< T > > temp_src)=0
virtual std::unique_ptr< TemporaryNode< T > > getTempTargetNode()=0
Definition: distributed_id.h:89
Definition: distributed_node.h:28
Definition: edge.h:21
Definition: distributed_edge.h:47
virtual int getLocation() const =0
virtual DistributedId getId() const =0
virtual DistributedNode< T > * build()=0
LocationState
Definition: location_state.h:15
Definition: fpmas.cpp:3