#include <modulemanager.h>
Inheritance diagram for kore::ModuleManager::
Public Methods | |
ModuleManager () | |
Default constructor. More... | |
virtual | ~ModuleManager () |
Destructor. More... | |
virtual void | registerModule (Module *module) |
Registers a Module to this ModuleManager. More... | |
virtual void | unregisterModule (Module *module) |
Unregisters a Module from this ModuleManager. More... | |
virtual void | registerModules (Module **modules) |
Registers a list of Modules to this ModuleManager. More... | |
virtual void | unregisterModules () |
Unregisters a list of Modules from this ModuleManager. More... | |
virtual Module ** | registeredModules () const |
Gets a NULL-terminated array of Modules registered to this ModuleManager. More... | |
Private Types | |
typedef set< Module *, ltptr > | mod_set_type |
Private Attributes | |
const Version * | _mmVersion |
const Version * | _mmAPIVersion |
const Info * | _mmInfo |
const Service * | _mmService |
mod_set_type | _modules |
When creating a new Module instance, you have to register that instance to the ModuleManager, as well as unregister it right before the instance will get destroyed. The ModuleManager can be queried (registeredModules()) for the existing registered Modules (i.e. by a "module browser").
Definition at line 18 of file modulemanager.h.
|
Definition at line 79 of file modulemanager.h. |
|
Default constructor. Creates a ModuleManager. Definition at line 21 of file modulemanager.cpp. References _mmAPIVersion, _mmInfo, _mmService, _mmVersion, kore::ServiceProvider::addService(), MM_API_MAJOR, MM_API_MINOR, MM_API_REVISION, MM_API_VERSION, MM_DESCRIPTION, MM_MAJOR, MM_MINOR, MM_NAME, MM_REVISION, MM_SERVICE, MM_SERVICE_DESCRIPTION, MM_TYPE, MM_VERSION, and kore::Module::setInfo().
00022 { 00023 _mmVersion = new Version(MM_MAJOR,MM_MINOR,MM_REVISION,MM_VERSION); 00024 _mmAPIVersion = new Version(MM_API_MAJOR,MM_API_MINOR,MM_API_REVISION,MM_API_VERSION); 00025 _mmInfo = new Info(this, MM_NAME, MM_TYPE, MM_DESCRIPTION, _mmVersion, _mmAPIVersion); 00026 setInfo(_mmInfo); 00027 _mmService = new Service(this, MM_SERVICE, MM_SERVICE_DESCRIPTION); 00028 addService(_mmService); 00029 } |
|
Destructor.
Definition at line 30 of file modulemanager.cpp. References _mmAPIVersion, _mmInfo, _mmService, _mmVersion, and unregisterModules().
00031 { 00032 unregisterModules(); 00033 delete _mmInfo; 00034 delete _mmVersion; 00035 delete _mmAPIVersion; 00036 delete _mmService; 00037 } |
|
Gets a NULL-terminated array of Modules registered to this ModuleManager. IMPORTANT: the user has to delete[] the returned array when it's no longer needed.
Definition at line 87 of file modulemanager.cpp. References _modules, and kore::Module::Module().
00088 { 00089 int n = _modules.size(); 00090 Module** mod = new Module*[n+1]; 00091 mod_set_type::const_iterator b,e; 00092 b = _modules.begin(); 00093 e = _modules.end(); 00094 int i = 0; 00095 for( mod_set_type::const_iterator j = b; j != e; ++j, ++i ) 00096 mod[i] = *j; 00097 mod[i] = 0; 00098 return mod; 00099 } |
|
Registers a Module to this ModuleManager.
Definition at line 39 of file modulemanager.cpp. References _modules. Referenced by registerModules().
00040 { 00041 module->registeringModule(this); 00042 _modules.insert(module); 00043 module->moduleRegistered(this); 00044 } |
|
Registers a list of Modules to this ModuleManager.
Definition at line 53 of file modulemanager.cpp. References registerModule().
00054 { 00055 for(int i = 0; modules[i]; i++) 00056 registerModule(modules[i]); 00057 } |
|
Unregisters a Module from this ModuleManager.
Definition at line 46 of file modulemanager.cpp. References _modules.
|
|
Unregisters a list of Modules from this ModuleManager.
Definition at line 58 of file modulemanager.cpp. References _modules, and kore::Module::Module(). Referenced by ~ModuleManager().
00059 { 00060 int n = _modules.size(); 00061 #ifdef WIN32 00062 mod_set_type::iterator* it = new mod_set_type::iterator[n]; 00063 mod_set_type::iterator b,e; 00064 #else 00065 mod_set_type::const_iterator* it = new mod_set_type::const_iterator[n]; 00066 mod_set_type::const_iterator b,e; 00067 #endif 00068 b = _modules.begin(); 00069 e = _modules.end(); 00070 int i = 0; 00071 #ifdef WIN32 00072 mod_set_type::iterator j; 00073 #else 00074 mod_set_type::const_iterator j; 00075 #endif 00076 for( j = b; j != e; ++j, ++i ) 00077 it[i] = j; 00078 for( i = 0; i < n; i++) 00079 { 00080 (*it[i])->unregisteringModule(this); 00081 Module* mod = *it[i]; 00082 _modules.erase(it[i]); 00083 mod->moduleUnregistered(this); 00084 } 00085 } |
|
Definition at line 64 of file modulemanager.h. Referenced by ModuleManager(), and ~ModuleManager(). |
|
Definition at line 66 of file modulemanager.h. Referenced by ModuleManager(), and ~ModuleManager(). |
|
Definition at line 68 of file modulemanager.h. Referenced by ModuleManager(), and ~ModuleManager(). |
|
Definition at line 62 of file modulemanager.h. Referenced by ModuleManager(), and ~ModuleManager(). |
|
Definition at line 81 of file modulemanager.h. Referenced by registeredModules(), registerModule(), unregisterModule(), and unregisterModules(). |