From d56db5f4e4a8e0d572bf3d682619bb25aebe4120 Mon Sep 17 00:00:00 2001 From: erihel Date: Thu, 19 Jul 2012 19:19:21 +0200 Subject: * Chaned plugin interface * Added plugin class for plugin loading * Added plugin loading test --- src/common/iman.cpp | 15 +++++++++++++++ src/common/iman.h | 6 ++++-- 2 files changed, 19 insertions(+), 2 deletions(-) (limited to 'src/common') 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::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 { 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); -- cgit v1.2.3-1-g7c22