ESyS-Particle  2.3.4
multi_message_slab.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
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---
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
TML_PackedMultiMessageSlab::pop_string
virtual string pop_string()
Definition: multi_message_slab.cpp:122
TML_PackedMessageInterface
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:29
TML_PackedMultiMessage::pop_double
double pop_double(int)
Definition: packed_multi_message.cpp:231
TML_PackedMultiMessageSlab::begin_unpack
virtual void begin_unpack()
Definition: multi_message_slab.cpp:40
TML_PackedMultiMessage::append
void append(int, int)
Definition: packed_multi_message.cpp:148
TML_PackedMultiMessageSlab::pop_vec3
virtual Vec3 pop_vec3()
Definition: multi_message_slab.cpp:131
TML_PackedMultiMessageSlab
Handle class to access multimessages via a packed message interface.
Definition: multi_message_slab.h:33
TML_PackedMultiMessage::begin_pack
void begin_pack(int)
Definition: packed_multi_message.cpp:125
TML_PackedMultiMessageSlab::pop_bool
virtual bool pop_bool()
Definition: multi_message_slab.cpp:145
TML_PackedMultiMessageSlab::append
virtual void append(int)
Definition: multi_message_slab.cpp:50
TML_PackedMultiMessage::pop_int
int pop_int(int)
Definition: packed_multi_message.cpp:216
TML_PackedMultiMessageSlab::begin_pack
virtual void begin_pack()
Definition: multi_message_slab.cpp:32
packed_message_interface.h
TML_PackedMultiMessageSlab::pop_doubles
virtual void pop_doubles(double *, int)
Definition: multi_message_slab.cpp:115
TML_PackedMultiMessage::begin_unpack
void begin_unpack(int)
Definition: packed_multi_message.cpp:133
TML_PackedMultiMessageSlab::m_msg
TML_PackedMultiMessage * m_msg
Definition: multi_message_slab.h:35
Vec3
Definition: vec3.h:47
packed_multi_message.h
vec3.h
TML_PackedMultiMessageSlab::pop_double
virtual double pop_double()
Definition: multi_message_slab.cpp:106
TML_PackedMultiMessage::pop_bool
bool pop_bool(int)
Definition: packed_multi_message.cpp:262
TML_PackedMultiMessageSlab::m_idx
int m_idx
Definition: multi_message_slab.h:36
multi_message_slab.h
TML_PackedMultiMessageSlab::TML_PackedMultiMessageSlab
TML_PackedMultiMessageSlab(TML_PackedMultiMessage *, int)
Definition: multi_message_slab.cpp:23
TML_PackedMultiMessage
Message buffer for sending and receiving packed data to mutltiple receivers. Data types are not check...
Definition: packed_multi_message.h:35
TML_PackedMultiMessageSlab::pop_int
virtual int pop_int()
Definition: multi_message_slab.cpp:98