diff options
author | erihel <erihel@gmail.com> | 2012-07-19 19:19:21 +0200 |
---|---|---|
committer | erihel <erihel@gmail.com> | 2012-07-19 19:19:21 +0200 |
commit | d56db5f4e4a8e0d572bf3d682619bb25aebe4120 (patch) | |
tree | bb670182f3273a5a3bb18969cf8f25023fa381f0 /src/common | |
parent | 0e4b070b5f10c0004cfbfa234e3634357b070cba (diff) | |
download | colobot-d56db5f4e4a8e0d572bf3d682619bb25aebe4120.tar.gz colobot-d56db5f4e4a8e0d572bf3d682619bb25aebe4120.tar.bz2 colobot-d56db5f4e4a8e0d572bf3d682619bb25aebe4120.zip |
* Chaned plugin interface
* Added plugin class for plugin loading
* Added plugin loading test
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/iman.cpp | 15 | ||||
-rw-r--r-- | src/common/iman.h | 6 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/common/iman.cpp b/src/common/iman.cpp index 28ee3d3..9e94f24 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); |