Proto  3.2
Proto_DistributedSet.H
Go to the documentation of this file.
1 #pragma once
2 #ifndef _PROTO_DISTRIBUTED_SET_
3 #define _PROTO_DISTRIBUTED_SET_
4 
5 #include "Proto.H"
6 
7 namespace Proto
8 {
9  template<typename DATA>
11  {
12  public:
13  inline DistributedSet();
14  inline ~DistributedSet();
15  inline void insert(const DATA& item);
16  inline void exchange();
17  inline void clearLocal();
18  inline void clearGlobal();
19  inline std::set<DATA> data() { return m_globalSet; }
20 
21  private:
22 
23  std::set<DATA> m_globalSet;
24  #ifdef PR_MPI
25  std::vector<DATA> m_localBuffer;
26 
27  void* m_sendBuffer;
28  void* m_recvBuffer;
29  size_t m_sendBufferSizeInBytes;
30  size_t m_recvBufferSizeInBytes;
31 
32  int* m_localBufferSizesInBytes;
33  int* m_bufferOffsetsInBytes;
34 
35  #endif
36 
37  };
38 
39  #include "implem/Proto_DistributedSetImplem.H"
40 
41 
42 
43 }
44 
45 #endif
std::set< DATA > m_globalSet
Definition: Proto_DistributedSet.H:23
void exchange()
Definition: Proto_DistributedSet.H:44
void clearGlobal()
Definition: Proto_DistributedSet.H:121
std::set< DATA > data()
Definition: Proto_DistributedSet.H:19
~DistributedSet()
Definition: Proto_DistributedSet.H:16
Definition: Proto_DistributedSet.H:10
DistributedSet()
Definition: Proto_DistributedSet.H:3
void clearLocal()
Definition: Proto_DistributedSet.H:113
Definition: Proto_Array.H:17
void insert(const DATA &item)
Definition: Proto_DistributedSet.H:33