NAMD
Public Member Functions | List of all members
MOStream Class Reference

#include <MStream.h>

Public Member Functions

 MOStream (Communicate *c, int pe, int tag, size_t bufSize)
 
 ~MOStream ()
 
void end (void)
 
MOStream * put (char data)
 
MOStream * put (unsigned char data)
 
MOStream * put (short data)
 
MOStream * put (unsigned short data)
 
MOStream * put (int data)
 
MOStream * put (unsigned int data)
 
MOStream * put (long data)
 
MOStream * put (unsigned long data)
 
MOStream * put (float data)
 
MOStream * put (double data)
 
MOStream * put (size_t len, char *data)
 
MOStream * put (size_t len, unsigned char *data)
 
MOStream * put (size_t len, short *data)
 
MOStream * put (size_t len, unsigned short *data)
 
MOStream * put (size_t len, int *data)
 
MOStream * put (size_t len, unsigned int *data)
 
MOStream * put (size_t len, long *data)
 
MOStream * put (size_t len, unsigned long *data)
 
MOStream * put (size_t len, float *data)
 
MOStream * put (size_t len, double *data)
 
MOStream * put (Vector *data)
 
MOStream * put (size_t len, Vector *data)
 
MOStream * put (char *data)
 
template<class T >
MOStream * put (size_t len, T *data)
 

Detailed Description

Definition at line 101 of file MStream.h.

Constructor & Destructor Documentation

◆ MOStream()

MOStream::MOStream ( Communicate *  c,
int  pe,
int  tag,
size_t  bufSize 
)

Definition at line 44 of file MStream.C.

References StreamMessage::checksum, StreamMessage::index, StreamMessage::len, StreamMessage::next, StreamMessage::PE, and StreamMessage::tag.

45 {
46  cobj = c;
47  PE = p;
48  tag = t;
49  bufLen = size;
50  msgBuf = (StreamMessage *)CmiAlloc(sizeof(StreamMessage)+size);
51  msgBuf->PE = CmiMyPe();
52  msgBuf->tag = tag;
53  msgBuf->len = 0;
54  msgBuf->index = 0;
55  msgBuf->next = (StreamMessage *)0;
56  msgBuf->checksum = 0;
57 }
unsigned int checksum
Definition: MStream.C:22
StreamMessage * next
Definition: MStream.C:23
size_t len
Definition: MStream.C:20
unsigned int index
Definition: MStream.C:21

◆ ~MOStream()

MOStream::~MOStream ( )

Definition at line 59 of file MStream.C.

60 {
61  if(msgBuf != 0)
62  CmiFree(msgBuf);
63 }

Member Function Documentation

◆ end()

void MOStream::end ( void  )

Definition at line 176 of file MStream.C.

References StreamMessage::checksum, StreamMessage::data, DebugM, StreamMessage::index, StreamMessage::len, and Communicate::sendMessage().

Referenced by ComputeFullDirect::doWork(), WorkDistrib::recvComputeMapChanges(), Node::reloadGridforceGrid(), Molecule::send_GoMolecule(), Molecule::send_Molecule(), Parameters::send_Parameters(), SimParameters::send_SimParameters(), and WorkDistrib::sendComputeMap().

177 {
178  if ( msgBuf->len == 0 ) return; // don't send empty message
179  if ( msgBuf->index && ! ((msgBuf->index) % 100) ) {
180  DebugM(3,"Sending message " << msgBuf->index << ".\n");
181  }
182  msgBuf->checksum = 0;
183  for ( size_t i=0; i < msgBuf->len; i++ ) {
184  msgBuf->checksum += (unsigned char) msgBuf->data[i];
185  }
186  cobj->sendMessage(PE,(void*)msgBuf,msgBuf->len+sizeof(StreamMessage)-1);
187  msgBuf->len = 0;
188  msgBuf->index += 1;
189 }
unsigned int checksum
Definition: MStream.C:22
#define DebugM(x, y)
Definition: Debug.h:75
size_t len
Definition: MStream.C:20
void sendMessage(int PE, void *msg, int size)
Definition: Communicate.C:113
char data[1]
Definition: MStream.C:24
unsigned int index
Definition: MStream.C:21

◆ put() [1/24]

MOStream* MOStream::put ( char  data)
inline

◆ put() [2/24]

MOStream* MOStream::put ( unsigned char  data)
inline

Definition at line 115 of file MStream.h.

115  {
116  return Put((char *)&data,sizeof(unsigned char));
117  }

◆ put() [3/24]

MOStream* MOStream::put ( short  data)
inline

Definition at line 118 of file MStream.h.

118  {
119  return Put((char *)&data, sizeof(short));
120  }

◆ put() [4/24]

MOStream* MOStream::put ( unsigned short  data)
inline

Definition at line 121 of file MStream.h.

121  {
122  return Put((char *)&data, sizeof(unsigned short));
123  }

◆ put() [5/24]

MOStream* MOStream::put ( int  data)
inline

Definition at line 124 of file MStream.h.

124  {
125  return Put((char *)&data, sizeof(int));
126  }

◆ put() [6/24]

MOStream* MOStream::put ( unsigned int  data)
inline

Definition at line 127 of file MStream.h.

127  {
128  return Put((char *)&data, sizeof(unsigned int));
129  }

◆ put() [7/24]

MOStream* MOStream::put ( long  data)
inline

Definition at line 130 of file MStream.h.

130  {
131  return Put((char *)&data, sizeof(long));
132  }

◆ put() [8/24]

MOStream* MOStream::put ( unsigned long  data)
inline

Definition at line 133 of file MStream.h.

133  {
134  return Put((char *)&data, sizeof(unsigned long));
135  }

◆ put() [9/24]

MOStream* MOStream::put ( float  data)
inline

Definition at line 136 of file MStream.h.

136  {
137  return Put((char *)&data, sizeof(float));
138  }

◆ put() [10/24]

MOStream* MOStream::put ( double  data)
inline

Definition at line 139 of file MStream.h.

139  {
140  return Put((char *)&data, sizeof(double));
141  }

◆ put() [11/24]

MOStream* MOStream::put ( size_t  len,
char *  data 
)
inline

Definition at line 142 of file MStream.h.

142  {
143  return Put(data,len*sizeof(char));
144  }

◆ put() [12/24]

MOStream* MOStream::put ( size_t  len,
unsigned char *  data 
)
inline

Definition at line 145 of file MStream.h.

145  {
146  return Put((char *)data,len*sizeof(unsigned char));
147  }

◆ put() [13/24]

MOStream* MOStream::put ( size_t  len,
short *  data 
)
inline

Definition at line 148 of file MStream.h.

148  {
149  return Put((char *)data,len*sizeof(short));
150  }

◆ put() [14/24]

MOStream* MOStream::put ( size_t  len,
unsigned short *  data 
)
inline

Definition at line 151 of file MStream.h.

151  {
152  return Put((char *)data,len*sizeof(unsigned short));
153  }

◆ put() [15/24]

MOStream* MOStream::put ( size_t  len,
int *  data 
)
inline

Definition at line 154 of file MStream.h.

154  {
155  return Put((char *)data,len*sizeof(int));
156  }

◆ put() [16/24]

MOStream* MOStream::put ( size_t  len,
unsigned int *  data 
)
inline

Definition at line 157 of file MStream.h.

157  {
158  return Put((char *)data,len*sizeof(unsigned int));
159  }

◆ put() [17/24]

MOStream* MOStream::put ( size_t  len,
long *  data 
)
inline

Definition at line 160 of file MStream.h.

160  {
161  return Put((char *)data,len*sizeof(long));
162  }

◆ put() [18/24]

MOStream* MOStream::put ( size_t  len,
unsigned long *  data 
)
inline

Definition at line 163 of file MStream.h.

163  {
164  return Put((char *)data,len*sizeof(unsigned long));
165  }

◆ put() [19/24]

MOStream* MOStream::put ( size_t  len,
float *  data 
)
inline

Definition at line 166 of file MStream.h.

166  {
167  return Put((char *)data,len*sizeof(float));
168  }

◆ put() [20/24]

MOStream* MOStream::put ( size_t  len,
double *  data 
)
inline

Definition at line 169 of file MStream.h.

169  {
170  return Put((char *)data,len*sizeof(double));
171  }

◆ put() [21/24]

MOStream* MOStream::put ( Vector *  data)
inline

Definition at line 172 of file MStream.h.

172  {
173  return Put((char *)data,sizeof(Vector));
174  }
Definition: Vector.h:72

◆ put() [22/24]

MOStream* MOStream::put ( size_t  len,
Vector *  data 
)
inline

Definition at line 175 of file MStream.h.

175  {
176  return Put((char *)data,len*sizeof(Vector));
177  }
Definition: Vector.h:72

◆ put() [23/24]

MOStream* MOStream::put ( char *  data)
inline

Definition at line 178 of file MStream.h.

References put().

178  {
179  size_t length = strlen(data);
180  put((int)length);
181  return put(length, data);
182  }
MOStream * put(char data)
Definition: MStream.h:112

◆ put() [24/24]

template<class T >
MOStream* MOStream::put ( size_t  len,
T *  data 
)
inline

Definition at line 184 of file MStream.h.

184  {
185  return Put((char *)data,len*sizeof(T));
186  }

The documentation for this class was generated from the following files: