ArgumentVector* ArgumentVector::readFromBinaryMessage(NetMessage* msg) { int i, maxi; ArgumentVector* ret; unsigned argType; std::string key; bool tempBool; float tempFloat; int tempInt; unsigned int tempUInt; std::string tempString; ret = new ArgumentVector(); msgFunctions::decode(maxi, msg); for (i = 0; i < maxi; i++) { msgFunctions::decode(key, msg); msgFunctions::decode(argType, msg); switch (argType) { case Argument::BOOL: msgFunctions::decode(tempBool, msg); ret->push_back(key, tempBool); break; case Argument::INTEGER: msgFunctions::decode(tempInt, msg); ret->push_back(key, tempInt); break; case Argument::UINTEGER: msgFunctions::decode(tempUInt, msg); ret->push_back(key, tempUInt); break; case Argument::FLOAT: msgFunctions::decode(tempFloat, msg); ret->push_back(key, tempFloat); break; case Argument::STRING: msgFunctions::decode(tempString, msg); ret->push_back(key, tempString); break; default: assert(false); } // switch } // for return ret; } // readFromBinaryMessage