fpmas 1.6
distributed_node.h
Go to the documentation of this file.
1#ifndef FPMAS_DISTRIBUTED_NODE_API_H
2#define FPMAS_DISTRIBUTED_NODE_API_H
3
11
12namespace fpmas { namespace api { namespace graph {
13
26 template<typename T>
28 : public virtual fpmas::api::graph::Node<DistributedId, DistributedEdge<T>> {
29
30 public:
34 typedef T data_type;
35
44 virtual int location() const = 0;
45
53 virtual void setLocation(int location) = 0;
54
65 virtual LocationState state() const = 0;
66
74 virtual void setState(LocationState state) = 0;
75
81 virtual T& data() = 0;
85 virtual const T& data() const = 0;
86
87
96 virtual void setMutex(synchro::Mutex<T>* mutex) = 0;
97
107 virtual synchro::Mutex<T>* mutex() = 0;
108
112 virtual const synchro::Mutex<T>* mutex() const = 0;
113
114 virtual ~DistributedNode() {}
115 };
116
117}}}
118#endif
Definition: distributed_node.h:28
virtual const T & data() const =0
virtual const synchro::Mutex< T > * mutex() const =0
virtual LocationState state() const =0
virtual void setMutex(synchro::Mutex< T > *mutex)=0
virtual int location() const =0
virtual synchro::Mutex< T > * mutex()=0
virtual void setLocation(int location)=0
T data_type
Definition: distributed_node.h:34
virtual void setState(LocationState state)=0
Definition: node.h:17
Definition: mutex.h:26
LocationState
Definition: location_state.h:15
Definition: fpmas.cpp:3