bool TraCIServer::addObjectVariableSubscription(const int commandId, const bool hasContext) { const SUMOTime beginTime = myInputStorage.readInt(); const SUMOTime endTime = myInputStorage.readInt(); const std::string id = myInputStorage.readString(); const int domain = hasContext ? myInputStorage.readUnsignedByte() : 0; const SUMOReal range = hasContext ? myInputStorage.readDouble() : 0.; const int num = myInputStorage.readUnsignedByte(); std::vector<int> variables; std::vector<std::vector<unsigned char> > parameters; for (int i = 0; i < num; ++i) { const int varID = myInputStorage.readUnsignedByte(); variables.push_back(varID); parameters.push_back(std::vector<unsigned char>()); for (int j = 0; j < myParameterSizes[varID]; j++) { parameters.back().push_back(myInputStorage.readChar()); } } // check subscribe/unsubscribe if (variables.size() == 0) { removeSubscription(commandId, id, -1); return true; } // process subscription Subscription s(commandId, id, variables, parameters, beginTime, endTime, hasContext, domain, range); initialiseSubscription(s); return true; }
bool TraCIServer::addObjectVariableSubscription(int commandId) { SUMOTime beginTime = myInputStorage.readInt(); SUMOTime endTime = myInputStorage.readInt(); std::string id = myInputStorage.readString(); int no = myInputStorage.readUnsignedByte(); std::vector<int> variables; for (int i = 0; i < no; ++i) { variables.push_back(myInputStorage.readUnsignedByte()); } // check subscribe/unsubscribe if (variables.size() == 0) { removeSubscription(commandId, id, -1); return true; } // process subscription Subscription s(commandId, id, variables, beginTime, endTime, false, 0, 0); initialiseSubscription(s); return true; }
bool TraCIServer::addObjectContextSubscription(int commandId) { SUMOTime beginTime = myInputStorage.readInt(); SUMOTime endTime = myInputStorage.readInt(); std::string id = myInputStorage.readString(); int domain = myInputStorage.readUnsignedByte(); SUMOReal range = myInputStorage.readDouble(); int no = myInputStorage.readUnsignedByte(); std::vector<int> variables; for (int i = 0; i < no; ++i) { variables.push_back(myInputStorage.readUnsignedByte()); } // check subscribe/unsubscribe if (variables.size() == 0) { removeSubscription(commandId, id, -1); return true; } Subscription s(commandId, id, variables, beginTime, endTime, true, domain, range); initialiseSubscription(s); return true; }