void Client::SendTo(const std::string target, EventMessage &msg) { msg.setSender(this->name); std::stringbuf msgBuffer; msg.serialize(msgBuffer); EventMessage targetPacket; targetPacket.setEventType(DIRECTSEND_MSG); targetPacket.pushParam(target); targetPacket.pushParam(msgBuffer.str()); targetPacket.setSender(this->name); this->Send(targetPacket, PRIORITY_COMMAND); }
static void registerEventCallback(char *name, char *buf, int bufSize, void *arg, bool isSynch, int retSize, char *retData, int type) { printf("REGISTER EVENT CALLBACK %s %s\n", name, buf); EventMessage *evMessage = new EventMessage(buf); int msgLen; char *msg = evMessage->serialize(msgLen, msgManager); for(int i = 0; i < numExtAddresses; i++) { try { msgManager->sendMessage(extAddresses[i], msg, msgLen); }catch(SystemException *exc) { printf("Error Sending registration message: %s\n", exc->what()); } } ((UDPNetworkManager*)udpMsgManager)->join(getMulticastAddr(evMessage->name)); delete [] msg; delete evMessage; }