summaryrefslogtreecommitdiffstats
path: root/src/common
diff options
context:
space:
mode:
authorerihel <erihel@gmail.com>2012-07-19 19:19:21 +0200
committererihel <erihel@gmail.com>2012-07-19 19:19:21 +0200
commitd56db5f4e4a8e0d572bf3d682619bb25aebe4120 (patch)
treebb670182f3273a5a3bb18969cf8f25023fa381f0 /src/common
parent0e4b070b5f10c0004cfbfa234e3634357b070cba (diff)
downloadcolobot-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.cpp15
-rw-r--r--src/common/iman.h6
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);