00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __XPLC_MODULEMGR_H__
00024 #define __XPLC_MODULEMGR_H__
00025
00026 #include <xplc/utils.h>
00027 #include <xplc/IModuleManagerFactory.h>
00028
00029 class ModuleManagerFactory: public IModuleManagerFactory {
00030 IMPLEMENT_IOBJECT(ModuleManagerFactory);
00031 private:
00032 public:
00033 static ModuleManagerFactory* create() {
00034 return new ModuleManagerFactory;
00035 }
00036 virtual IServiceHandler* createModuleManager(const char* directory);
00037 virtual ~ModuleManagerFactory() {}
00038 };
00039
00040 struct ModuleNode;
00041
00042 class ModuleManager: public IServiceHandler {
00043 IMPLEMENT_IOBJECT(ModuleManager);
00044 private:
00045 ModuleNode* modules;
00046 public:
00047 ModuleManager(ModuleNode* aModules);
00048 virtual IObject* getObject(const UUID& cid);
00049 virtual ~ModuleManager();
00050 };
00051
00052 #endif