void MessageSendController::addReceiver(RemoteMessageReceiver *receiver) { int nameIndex = getNameIndex(receiver->getName()); if (nameIndex == -1) { nameList->add(StaticUtils::copyString(receiver->getName())); receiverLists->add((void *) new ZGLinkedList()); nameIndex = nameList->size() - 1; } ZGLinkedList *receiverList = (ZGLinkedList *) receiverLists->get(nameIndex); receiverList->add(receiver); }
void GamePlay::updateCurrentUser(QString name)//used to save users and update there timestamps,levle etc { if(userTimestamp.size()>0) { double i=getNameIndex(name); currentUser[1]=userPlayer[i]; currentUser[2]=userLevel[i]; updateTimestamp(currentUser[1]); currentUser[0]=userTimestamp[i]; } }
void MessageSendController::receiveMessage(const char *name, PdMessage *message) { int index = getNameIndex(name); // if the receiver name is not registered, nothing to do if (index >= 0) sendMessage(index, message); // check to see if the receiver name has been registered as an external receiver if (externalReceiverSet.find(string(name)) != externalReceiverSet.end()) { std::pair<const char *, PdMessage *> pair = make_pair(name, message); context->callbackFunction(ZG_RECEIVER_MESSAGE, context->callbackUserData, &pair); } }
void MessageSendController::removeReceiver(RemoteMessageReceiver *receiver) { int nameIndex = getNameIndex(receiver->getName()); if (nameIndex != -1) { set<RemoteMessageReceiver *> *receiverSet = &(sendStack[nameIndex].second); receiverSet->erase(receiver); // NOTE(mhroth): // once the receiver set has been created, it should not be erased anymore from the sendStack. // PdContext depends on the nameIndex to be constant for all receiver names once they are // defined, as a message destined for that receiver may already be in the message queue // with the given index. If the indicies change, then message will be sent to the wrong // receiver set. This is a stupid constraint. Fix it. } }
void MessageSendController::addReceiver(RemoteMessageReceiver *receiver) { int nameIndex = getNameIndex(receiver->getName()); if (nameIndex == -1) { set<RemoteMessageReceiver *> remoteSet = set<RemoteMessageReceiver *>(); remoteSet.insert(receiver); std::pair<string, set<RemoteMessageReceiver *> > nameSetPair = make_pair(string(receiver->getName()), remoteSet); sendStack.push_back(nameSetPair); nameIndex = sendStack.size()-1; } set<RemoteMessageReceiver *> *receiverSet = &(sendStack[nameIndex].second); receiverSet->insert(receiver); }
bool MessageSendController::receiverExists(const char *receiverName) { return (getNameIndex(receiverName) >= 0); }
void MessageSendController::receiveMessage(char *name, PdMessage *message) { processMessage(getNameIndex(name), message); }