ESyS-Particle  4.0.1
multi_message_slab.h
1 
2 // //
3 // Copyright (c) 2003-2011 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __MULTI_MESSAGE_SLAB_H
14 #define __MULTI_MESSAGE_SLAB_H
15 
16 //--- MPI ---
17 #include <mpi.h>
18 
19 
20 //--- project includes---
21 #include "tml/message/packed_message_interface.h"
22 #include "Foundation/vec3.h" // for append(Vec3), pop_vec3()
23 
24 //--- forward declarations ---
25 
27 
33 {
34  private:
36  int m_idx;
37 
38  public:
40 
41  virtual void begin_pack();
42  virtual void begin_unpack();
43  virtual void append(int);
44  virtual void append(double);
45  virtual void append(const string&);
46  virtual void append(const Vec3&);
47  virtual void append(bool);
48 
49  virtual int pop_int();
50  virtual double pop_double();
51  virtual void pop_doubles(double*,int);
52  virtual string pop_string();
53  virtual Vec3 pop_vec3();
54  virtual bool pop_bool();
55 };
56 #endif //__MULTI_MESSAGE_SLAB_H