Shadowrun: Awakened 29 September 2011 - Build 871
NetworkIDManager.h
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef __NETWORK_ID_MANAGER_H
00009 #define __NETWORK_ID_MANAGER_H
00010 
00011 #include "RakNetTypes.h"
00012 #include "Export.h"
00013 #include "RakMemoryOverride.h"
00014 #include "NetworkIDObject.h"
00015 #include "Rand.h"
00016 
00017 namespace RakNet
00018 {
00019 
00022 #define NETWORK_ID_MANAGER_HASH_LENGTH 1024
00023 
00028 class RAK_DLL_EXPORT NetworkIDManager
00029 {
00030 public:
00031     // GetInstance() and DestroyInstance(instance*)
00032     STATIC_FACTORY_DECLARATIONS(NetworkIDManager)
00033 
00034     NetworkIDManager();
00035     virtual ~NetworkIDManager(void);
00036 
00040     template <class returnType>
00041     returnType GET_OBJECT_FROM_ID(NetworkID x) {
00042         NetworkIDObject *nio = GET_BASE_OBJECT_FROM_ID(x);
00043         if (nio==0)
00044             return 0;
00045         if (nio->GetParent())
00046             return (returnType) nio->GetParent();
00047         return (returnType) nio;
00048     }
00049 
00051     NetworkIDObject *GET_BASE_OBJECT_FROM_ID(NetworkID x);
00052 
00054     void TrackNetworkIDObject(NetworkIDObject *networkIdObject);
00055     void StopTrackingNetworkIDObject(NetworkIDObject *networkIdObject);
00056 
00057 protected:
00058     friend class NetworkIDObject;
00059 
00060     NetworkIDObject *networkIdHash[NETWORK_ID_MANAGER_HASH_LENGTH];
00061     unsigned int NetworkIDToHashIndex(NetworkID networkId);
00062     uint64_t startingOffset;
00064     NetworkID GetNewNetworkID(void);
00065 
00066 };
00067 
00068 } // namespace RakNet
00069 
00070 #endif

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net