PABLO  0.1
PArallel Balanced Linear Octree
 All Classes Functions Variables Pages
Class_Data_LB_Interface.hpp
1 // Communications Class for Load Balancing
2 
3 #ifndef CLASS_DATA_LB_INTERFACE_HPP_
4 #define CLASS_DATA_LB_INTERFACE_HPP_
5 
6 #include <stdint.h>
7 
36 template <class Impl>
38 public:
43  size_t size(const uint32_t e) const;
47  size_t fixedSize() const;
52  void move(const uint32_t from, const uint32_t to);
53 
69  template<class Buffer>
70  void gather(Buffer & buff,const uint32_t e);
71 
87  template<class Buffer>
88  void scatter(Buffer & buff,const uint32_t e);
89 
90 
97  void assign(uint32_t stride, uint32_t length);
98 
102  void resize(uint32_t newSize);
103 
107  void resizeGhost(uint32_t newSize);
108 
112  void shrink();
113 
114 protected:
116 
117 private:
118  //BartonHackman trick
119  Impl& getImpl();
120  const Impl& getImpl() const;
121 };
122 
123 #include "Class_Data_LB_Interface.tpp"
124 
125 #endif /* CLASS_DATA_LB_INTERFACE_HPP_ */
void assign(uint32_t stride, uint32_t length)
Base class for data communications.
void resizeGhost(uint32_t newSize)
size_t size(const uint32_t e) const
void scatter(Buffer &buff, const uint32_t e)
void move(const uint32_t from, const uint32_t to)
void gather(Buffer &buff, const uint32_t e)
void resize(uint32_t newSize)