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)
 
MOStreamput (char data)
 
MOStreamput (unsigned char data)
 
MOStreamput (short data)
 
MOStreamput (unsigned short data)
 
MOStreamput (int data)
 
MOStreamput (unsigned int data)
 
MOStreamput (long data)
 
MOStreamput (unsigned long data)
 
MOStreamput (float data)
 
MOStreamput (double data)
 
MOStreamput (size_t len, char *data)
 
MOStreamput (size_t len, unsigned char *data)
 
MOStreamput (size_t len, short *data)
 
MOStreamput (size_t len, unsigned short *data)
 
MOStreamput (size_t len, int *data)
 
MOStreamput (size_t len, unsigned int *data)
 
MOStreamput (size_t len, long *data)
 
MOStreamput (size_t len, unsigned long *data)
 
MOStreamput (size_t len, float *data)
 
MOStreamput (size_t len, double *data)
 
MOStreamput (Vector *data)
 
MOStreamput (size_t len, Vector *data)
 
MOStreamput (char *data)
 
template<class T >
MOStreamput (size_t len, T *data)
 

Detailed Description

Definition at line 101 of file MStream.h.

Constructor & Destructor Documentation

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 ( )

Definition at line 59 of file MStream.C.

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

Member Function Documentation

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:59
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
MOStream* MOStream::put ( char  data)
inline
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  }
MOStream* MOStream::put ( short  data)
inline

Definition at line 118 of file MStream.h.

118  {
119  return Put((char *)&data, sizeof(short));
120  }
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  }
MOStream* MOStream::put ( int  data)
inline

Definition at line 124 of file MStream.h.

124  {
125  return Put((char *)&data, sizeof(int));
126  }
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  }
MOStream* MOStream::put ( long  data)
inline

Definition at line 130 of file MStream.h.

130  {
131  return Put((char *)&data, sizeof(long));
132  }
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  }
MOStream* MOStream::put ( float  data)
inline

Definition at line 136 of file MStream.h.

136  {
137  return Put((char *)&data, sizeof(float));
138  }
MOStream* MOStream::put ( double  data)
inline

Definition at line 139 of file MStream.h.

139  {
140  return Put((char *)&data, sizeof(double));
141  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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  }
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:64
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:64
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
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: