📄 getmsg.cpp
字号:
#ifndef GET_MSG#define GET_MSG#include "getnetwork.cpp"// do the dirty work: poke around inside nwsys of network block NWmsg *nwGetMsg(Network* net) { NWmsg *m; if ((m = (NWmsg *)net->nwsys->nwnodes[net->nodeNbr]->postprocQ->getFirst()) != NULL) { net->nwsys->nwnodes[net->nodeNbr]->postprocQ->removeNode(m); } return m;}void *ttGetMsg(int networkNbr) // returns data (void *) or NULL if no message{ void *data; Network* net = getNetwork(networkNbr); if (net == NULL) { // is there no network? char buf[200]; sprintf(buf, "ttGetMsg: Network #%d not present!", networkNbr); MEX_ERROR(buf); return NULL; } NWmsg *nwmsg = nwGetMsg(net); if (nwmsg == NULL) { return NULL; } data = nwmsg->data; nwmsg->timesRead++; if (nwmsg->receiver == -1 && nwmsg->timesRead == net->nwsys->nbrOfNodes-1) { //printf("Message read %d times!\n", nwmsg->timesRead); // Delete message if read by all nodes (broadcast) //delete nwmsg; } else if (nwmsg->receiver > -1) { // Delete message //delete nwmsg; } return data;}void *ttGetMsg() { return ttGetMsg(1);}// For use from Matlab mex functionchar *ttGetMsgMATLAB(int networkNbr) { Network* net = getNetwork(networkNbr); if (net == NULL) { // is there no network? char buf[200]; sprintf(buf, "ttGetMsg: Network #%d not present!", networkNbr); MEX_ERROR(buf); return NULL; } NWmsg *nwmsg = nwGetMsg(net); if (nwmsg == NULL) { return NULL; } char* data = new char[strlen(nwmsg->dataMATLAB)+1]; strcpy(data, nwmsg->dataMATLAB); nwmsg->timesRead++; if (nwmsg->receiver == -1 && nwmsg->timesRead == net->nwsys->nbrOfNodes-1) { // Delete message if read by all nodes (broadcast) delete[] nwmsg->dataMATLAB; delete nwmsg; } else if (nwmsg->receiver > -1) { // Delete message delete[] nwmsg->dataMATLAB; delete nwmsg; } return data;}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -