Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# deIDServer.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file deIDServer.hpp
    00003 ///
    00004 /// @brief 32-bit UINT ID server
    00005 ///
    00006 /// @author Assassin
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Sept 2002
    00023 /// @author Assassin
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef DEIDSERVER_HPP
    00029 #define DEIDSERVER_HPP
    00030
    00031 #include "deGlobalTypes.hpp"
    00032
    00033 #if defined(DEUTIL_DLL_EXPORTS) || defined(DESTINY3D_EXPORT_ALL)
    00034 #   define DEIDSERVER_API extern "C" DEDLL_EXPORT
    00035 #elif defined(DESTINY3D_STATIC_LINK)
    00036 #   define DEIDSERVER_API extern "C"
    00037 #else
    00038 #   define DEIDSERVER_API extern "C" DEDLL_IMPORT
    00039 #endif
    00040
    00041 #ifdef USING_DESTINY3D
    00042 #ifdef _DEBUG
    00043 #   ifdef DESTINY3D_STATIC_LINK
    00044 #       pragma comment(lib, "deUtil_sd")
    00045 #   else
    00046 #       pragma comment(lib, "deUtild")
    00047 #   endif //DESTINY3D_STATIC_LINK
    00048 #else
    00049 #   ifdef DESTINY3D_STATIC_LINK
    00050 #       pragma comment(lib, "deUtil_s")
    00051 #   else
    00052 #       pragma comment(lib, "deUtil")
    00053 #   endif //DESTINY3D_STATIC_LINK
    00054 #endif //_DEBUG
    00055 #endif //USING_DESTINY3D
    00056
    00057
    00058 class IdeIDServer;
    00059 class IdeIDMapper;
    00060
    00061     DEIDSERVER_API IdeIDServer * IdeIDServer_CreateServer(deBoolean RecycleIDs = deTRUE, int InitialSize = 8);
    00062 //  DEIDSERVER_API IdeIDMapper * IdeIDServer_CreateMapper();
    00063
    00064 typedef unsigned long int deID_t;
    00065
    00066 //class IdeIDServer
    00067 DE3D_INTERFACE_(IdeIDServer)
    00068 {
    00069 protected:
    00070     virtual ~IdeIDServer() {}
    00071 public:
    00072     virtual int         Release() = 0;
    00073
    00074     virtual deID_t      AddData(void* Data) = 0;
    00075     virtual deBoolean   AddDataWithID(void* Data, deID_t ID) = 0;
    00076     virtual void*       LookupData(deID_t ID) = 0;
    00077     virtual deBoolean   RemoveData(deID_t ID, void* Data) = 0;
    00078     virtual void*       WalkData(deID_t & ID) = 0;
    00079 };
    00080
    00081 //class IdeIDMapper
    00082 DE3D_INTERFACE_(IdeIDMapper)
    00083 {
    00084 protected:
    00085     virtual ~IdeIDMapper() {}
    00086 public:
    00087     virtual int         Release() = 0;
    00088
    00089     virtual IdeIDServer*GetMappedIDServer(IdeIDServer* Input) = 0;
    00090     virtual deID_t      MapID(deID_t InputID) = 0;
    00091 };
    00092
    00093 #endif