PABLO  0.1
PArallel Balanced Linear Octree
 All Classes Functions Variables Pages
Class_Comm_Buffer.hpp
1 #if NOMPI==0
2 #ifndef CLASSCOMMBUFFER_HPP_
3 #define CLASSCOMMBUFFER_HPP_
4 
5 // =================================================================================== //
6 // INCLUDES //
7 // =================================================================================== //
8 #include "mpi.h"
9 #include "preprocessor_defines.dat"
10 #include <cstdint>
11 #include <typeinfo>
12 #include <algorithm>
13 #include "mpi_datatype_conversion.hpp"
14 
15 // =================================================================================== //
16 // NAME SPACES //
17 // =================================================================================== //
18 using namespace std;
19 
20 // =================================================================================== //
21 // CLASS DEFINITION //
22 // =================================================================================== //
41 
42  template<int dim> friend class Class_Para_Tree;
43 
44  // ------------------------------------------------------------------------------- //
45  // MEMBERS ----------------------------------------------------------------------- //
46  uint32_t commBufferSize;
47  char* commBuffer;
48  int pos;
49  MPI_Comm comm;
50 
51  // ------------------------------------------------------------------------------- //
52  // CONSTRUCTORS ------------------------------------------------------------------ //
53 public:
55  Class_Comm_Buffer(MPI_Comm comm_);
56  Class_Comm_Buffer(uint32_t size, char value, MPI_Comm comm_);
59 
60  // ------------------------------------------------------------------------------- //
61  // METHODS ----------------------------------------------------------------------- //
62  //TODO routines write and read to write and read POD types in buffer
63  Class_Comm_Buffer& operator=(const Class_Comm_Buffer& rhs);
64 
68  template<class T>
69  void write(T& val);
70 
74  template<class T>
75  void read(T& val);
76 };
77 
78 #include "Class_Comm_Buffer.tpp"
79 
80 #endif /* CLASSCOMMBUFFER_HPP_ */
81 #endif /* NOMPI */
Bundle char container for communications.
Parallel Octree Manager Class.