65 #ifndef _POST_MASTER_H
66 #define _POST_MASTER_H
125 const OpFunc*
op,
int requestingNode );
128 const OpFunc* op,
int requestingNode );
132 unsigned int bindIndex,
unsigned int size );
135 unsigned int opIndex,
unsigned int size,
unsigned int hopType );
142 vector< vector< double > >& getRecvBuf,
143 vector< unsigned int >& size );
145 vector< double >& getRecvBuf );
166 MPI_Request setSendReq_;
167 MPI_Request setRecvReq_;
168 MPI_Request getHandlerReq_;
169 MPI_Status setSendStatus_;
170 MPI_Status setRecvStatus_;
171 vector< MPI_Request > recvReq_;
172 vector< MPI_Request > sendReq_;
173 vector< MPI_Status > doneStatus_;
182 #endif // _POST_MASTER_H
vector< double > setRecvBuf_
void handleRemoteGet(const Eref &e, const OpFunc *op, int requestingNode)
Handles 'get' calls from another node, to an object on mynode.
void dispatchSetBuf(const Eref &e)
Sends off contets of Set buffer.
static double op(double x)
unsigned int getNumNodes() const
unsigned int bindIndex() const
double * addToSendBuf(const Eref &e, unsigned int bindIndex, unsigned int size)
Returns pointer to Send buffer for filling in arguments.
unsigned int dataSize() const
void remoteGetVec(const Eref &e, unsigned int bindIndex, vector< vector< double > > &getRecvBuf, vector< unsigned int > &size)
This is a blocking call. However, it must still handle other.
vector< vector< double > > recvBuf_
static const unsigned int headerSize
static const int CONTROLTAG
unsigned int getBufferSize() const
vector< unsigned int > sendSize_
void reinit(const Eref &e, ProcPtr p)
void process(const Eref &e, ProcPtr p)
vector< double > setSendBuf_
unsigned int recvBufSize_
double * remoteGet(const Eref &e, unsigned int bindIndex)
Blocking call to get a value from a remote node.
vector< int > doneIndices_
void clearPendingSetGet()
Clears arrived set and get calls.
void setBufferSize(unsigned int size)
unsigned int getMyNode() const
vector< vector< double > > sendBuf_
void clearPendingRecv()
Clears arrived messages.
unsigned int numRecvDone_
void clearPending()
All arrived messages and set calls are handled and cleared.
void set(ObjId id, unsigned int bindIndex, unsigned int size)
void remoteFieldGetVec(const Eref &e, unsigned int bindIndex, vector< double > &getRecvBuf)
This is a blocking call. However, it must still handle other.
void handleRemoteGetVec(const Eref &e, const OpFunc *op, int requestingNode)
void finalizeSends()
Checks that all sends have gone out.
double * addToSetBuf(const Eref &e, unsigned int opIndex, unsigned int size, unsigned int hopType)
Returns pointer to Set buffer for filling in arguments.
static const Cinfo * initCinfo()
vector< double > getHandlerBuf_
static const unsigned int reserveBufSize
static const int RETURNTAG
static const unsigned int setRecvBufSize