20 #ifndef __CXXGRAPH_PARTITIONING_COORDINATEDRECORD_H__
21 #define __CXXGRAPH_PARTITIONING_COORDINATEDRECORD_H__
25 #include "Utility/Typedef.hpp"
29 namespace PARTITIONING
36 PartitionMap<T> partitions;
44 PartitionMap<T> &getPartitions();
45 void addPartition(
int m);
46 bool hasReplicaInPartition(
int m);
51 void incrementDegree();
53 void addAll(std::set<int> &set);
62 CoordinatedRecord<T>::~CoordinatedRecord()
66 PartitionMap<T> &CoordinatedRecord<T>::getPartitions()
71 void CoordinatedRecord<T>::addPartition(
int m)
75 std::cout <<
"ERROR! record.addPartition(-1)" << std::endl;
81 bool CoordinatedRecord<T>::hasReplicaInPartition(
int m)
83 return partitions.find(m) != partitions.end();
86 bool CoordinatedRecord<T>::getLock()
88 return lock.try_lock();
91 bool CoordinatedRecord<T>::releaseLock()
97 int CoordinatedRecord<T>::getReplicas()
99 return partitions.size();
101 template <
typename T>
102 int CoordinatedRecord<T>::getDegree()
106 template <
typename T>
107 void CoordinatedRecord<T>::incrementDegree()
111 template <
typename T>
112 void CoordinatedRecord<T>::addAll(std::set<int> &set)
114 partitions.insert(set.begin(), set.end());
116 template <
typename T>
117 std::set<int> CoordinatedRecord<T>::intersection(CoordinatedRecord &x, CoordinatedRecord &y)
119 std::set<int> result;
120 set_intersection(x.partitions.begin(), x.partitions.end(), y.partitions.begin(), y.partitions.end(),
121 std::inserter(result, result.begin()));
Definition: CoordinatedRecord.hpp:34
Definition: Record.hpp:29