#include <ProxyMgr.h>
Static Public Member Functions | |
| void * | pack (ProxyResultMsg *msg) |
| ProxyResultMsg * | unpack (void *ptr) |
Public Attributes | |
| NodeID | node |
| PatchID | patch |
| ForceList | forceList [Results::maxNumForces] |
|
|
|
|
|
Definition at line 107 of file ProxyMgr.C. References ALIGN_8, ResizeArray< Elem >::begin(), Force, forceList, j, node, patch, ResizeArray< Elem >::resize(), Vector::x, Vector::y, and Vector::z. 00107 {
00108
00109 void *vmsg = CkAllocBuffer(ptr,sizeof(ProxyResultMsg));
00110 ProxyResultMsg *msg = new (vmsg) ProxyResultMsg;
00111 char *msg_cur = (char*)ptr;
00112
00113 CmiMemcpy((void*)(&(msg->node)),(void*)msg_cur,sizeof(msg->node));
00114 msg_cur += sizeof(msg->node);
00115 CmiMemcpy((void*)(&(msg->patch)),(void*)msg_cur,sizeof(msg->patch));
00116 msg_cur += sizeof(msg->patch);
00117 int j;
00118 for ( j = 0; j < Results::maxNumForces; ++j ) {
00119 int array_size = *(int *) msg_cur;
00120 msg_cur += sizeof(array_size);
00121 msg->forceList[j].resize(array_size);
00122 char *nonzero = msg_cur;
00123 msg_cur += array_size * sizeof(char);
00124 msg_cur = (char *)ALIGN_8 (msg_cur);
00125 Vector* farr = (Vector *) msg_cur;
00126 Force* f = msg->forceList[j].begin();
00127 for ( int i = 0; i < array_size; ++i ) {
00128 if ( nonzero[i] ) {
00129 f[i].x = farr->x;
00130 f[i].y = farr->y;
00131 f[i].z = farr->z;
00132 farr++;
00133 } else {
00134 f[i].x = 0.; f[i].y = 0.; f[i].z = 0.;
00135 }
00136 }
00137 msg_cur = (char *) farr;
00138 }
00139
00140 CkFreeMsg(ptr);
00141 return msg;
00142 }
|
|
|
Definition at line 139 of file ProxyMgr.h. Referenced by PACK_MSG(), HomePatch::receiveResults(), and unpack(). |
|
|
Definition at line 137 of file ProxyMgr.h. Referenced by PACK_MSG(), HomePatch::receiveResults(), and unpack(). |
|
|
Definition at line 138 of file ProxyMgr.h. Referenced by PACK_MSG(), ProxyMgr::recvResults(), ProxyMgr::sendResults(), and unpack(). |
1.3.9.1