- Timestamp:
- May 25, 2015, 1:37:50 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/core7/src/libraries/network/NetworkFunction.cc
r10470 r10471 32 32 namespace orxonox 33 33 { 34 std::map<NetworkFunctionPointer, NetworkMemberFunctionBase*> NetworkMemberFunctionBase::functorMap_; 35 std::map<uint32_t, NetworkMemberFunctionBase*> NetworkMemberFunctionBase::idMap_; 34 NetworkFunctionBase::NetworkFunctionBase(const std::string& name, const NetworkFunctionPointer& p) 35 { 36 static uint32_t networkID = 0; 37 this->networkID_ = networkID++; 36 38 37 NetworkFunctionBase::NetworkFunctionBase(const std::string& name) 38 { 39 static uint32_t networkID = 0; 40 this->networkID_ = networkID++; 39 this->name_ = name; 40 NetworkFunctionManager::getNameMap()[name] = this; 41 NetworkFunctionManager::getFunctorMap()[p] = this; 42 NetworkFunctionManager::getIdMap()[this->getNetworkID()] = this; 43 } 41 44 42 this->name_ = name; 43 NetworkFunctionManager::getNameMap()[name] = this; 44 } 45 NetworkFunctionBase::~NetworkFunctionBase() 46 { 47 } 48 49 50 NetworkFunctionStatic::NetworkFunctionStatic(const FunctorStaticPtr& functor, const std::string& name, const NetworkFunctionPointer& p): 51 NetworkFunctionBase(name) 52 { 53 this->functor_ = functor; 54 NetworkFunctionStatic::getFunctorMap()[p] = this; 55 NetworkFunctionStatic::getIdMap()[ this->getNetworkID() ] = this; 56 } 57 58 /*static*/ std::map<NetworkFunctionPointer, NetworkFunctionStatic*>& NetworkFunctionStatic::getFunctorMap() 59 { 60 static std::map<NetworkFunctionPointer, NetworkFunctionStatic*> functorMap_; 61 return functorMap_; 62 } 63 64 /*static*/ std::map<uint32_t, NetworkFunctionStatic*>& NetworkFunctionStatic::getIdMap() 65 { 66 static std::map<uint32_t, NetworkFunctionStatic*> idMap_; 67 return idMap_; 68 } 69 70 71 NetworkMemberFunctionBase::NetworkMemberFunctionBase(const std::string& name, const NetworkFunctionPointer& p): 72 NetworkFunctionBase(name) 73 { 74 this->functorMap_[p] = this; 75 this->idMap_[ this->getNetworkID() ] = this; 76 } 77 78 NetworkMemberFunctionBase::~NetworkMemberFunctionBase() 79 { 80 } 81 82 45 void NetworkFunctionBase::setNetworkID(uint32_t id) 46 { 47 NetworkFunctionManager::getIdMap().erase(this->networkID_); // remove old id 48 this->networkID_ = id; 49 NetworkFunctionManager::getIdMap()[this->networkID_] = this; // add new id 50 } 83 51 }
Note: See TracChangeset
for help on using the changeset viewer.