diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/iman.cpp | 15 | ||||
-rw-r--r-- | src/common/iman.h | 6 | ||||
-rw-r--r-- | src/common/logger.h | 1 |
3 files changed, 20 insertions, 2 deletions
diff --git a/src/common/iman.cpp b/src/common/iman.cpp index 90b0c1e..4c70cde 100644 --- a/src/common/iman.cpp +++ b/src/common/iman.cpp @@ -23,6 +23,21 @@ #include "common/iman.h" +template<> CInstanceManager* CSingleton<CInstanceManager>::mInstance = 0; + + +CInstanceManager& CInstanceManager::GetInstance() +{ + assert(mInstance); + return *mInstance; +} + + +CInstanceManager* CInstanceManager::GetInstancePointer() +{ + assert(mInstance); + return mInstance; +} // Object's constructor. diff --git a/src/common/iman.h b/src/common/iman.h index 7a7b499..38e5f37 100644 --- a/src/common/iman.h +++ b/src/common/iman.h @@ -18,7 +18,7 @@ #pragma once - +#include "common/singleton.h" #include "common/misc.h" @@ -32,7 +32,7 @@ struct BaseClass -class CInstanceManager +class CInstanceManager : public CSingleton<CInstanceManager> { public: CInstanceManager(); @@ -44,6 +44,8 @@ public: bool DeleteInstance(ClassType classType, void* pointer); void* SearchInstance(ClassType classType, int rank=0); + static CInstanceManager& GetInstance(); + static CInstanceManager* GetInstancePointer(); protected: void Compress(ClassType classType); diff --git a/src/common/logger.h b/src/common/logger.h index a67aefe..2d0ab3e 100644 --- a/src/common/logger.h +++ b/src/common/logger.h @@ -21,6 +21,7 @@ #include <string> #include <cstdarg> +#include <cstdio> #include <common/singleton.h> |