PABLO  0.1
PArallel Balanced Linear Octree
 All Classes Functions Variables Pages
User_Data_LB.hpp
1 /*
2  * User_data_LB.hpp
3  *
4  * Created on: 27/mar/2014
5  * Author: Marco Cisternino
6  */
7 
8 #ifndef USER_DATA_LB_HPP_
9 #define USER_DATA_LB_HPP_
10 
11 #include "Class_Data_LB_Interface.hpp"
12 
13 template <class D>
14 class User_Data_LB : public Class_Data_LB_Interface<User_Data_LB<D> >{
15 public:
16 
17  typedef D Data;
18 
19  Data& data;
20  Data& ghostdata;
21 
22  size_t fixedSize() const;
23  size_t size(const uint32_t e) const;
24  void move(const uint32_t from, const uint32_t to);
25 
26  template<class Buffer>
27  void gather(Buffer & buff, const uint32_t e);
28 
29  template<class Buffer>
30  void scatter(Buffer & buff, const uint32_t e);
31 
32  void assign(uint32_t stride, uint32_t length);
33  void resize(uint32_t newSize);
34  void resizeGhost(uint32_t newSize);
35  void shrink();
36 
37  User_Data_LB(Data& data_, Data& ghostdata_);
38  ~User_Data_LB();
39 };
40 
41 #include "User_Data_LB.tpp"
42 
43 #endif /* USER_DATA_LB_HPP_ */
Base class for data communications.