Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members  

kore::Kernel Class Reference

class core::Kernel - the Kernel This class is responsible for providing kore services to runtime modules This is a singleton, use kore::Kernel::instance() for getting access to an instance. More...

#include <kernel.h>

Inheritance diagram for kore::Kernel::

kore::ServiceProvider kore::Module List of all members.

Public Methods

ServiceManagerserviceManager () const
 Gets the Kore ServiceManager. More...

virtual ~Kernel ()
 Destructor. More...


Static Public Methods

Kernel * instance ()
 Gets the single instance of Kernel. More...


Protected Methods

 Kernel ()
 Default contructor. More...

void setServiceManager (ServiceManager *sm)
 Helper method for setting the ServiceManager associated to this Kernel. More...


Static Protected Methods

void setInstance (Kernel *inst)
 Helper method for setting the Kernel single instance. More...


Private Attributes

const Version_version
const Info * _info
const Service * _kernelService
ServiceManager_serviceManager
PluginLoader_pluginLoader
ModuleManager_moduleManager
PluginManager_pluginManager

Static Private Attributes

Kernel * _instance = 0

Detailed Description

class core::Kernel - the Kernel This class is responsible for providing kore services to runtime modules This is a singleton, use kore::Kernel::instance() for getting access to an instance.

Definition at line 20 of file kernel.h.


Constructor & Destructor Documentation

Kernel::~Kernel   [virtual]
 

Destructor.

Definition at line 59 of file kernel.cpp.

References _info, _kernelService, _moduleManager, _pluginLoader, _serviceManager, and _version.

00060 {
00061 //    _serviceManager->unregisterProvider(this);
00062 //    _serviceManager->unregisterProvider(_serviceManager);
00063     _moduleManager->unregisterModule(_serviceManager);
00064     delete _serviceManager;
00065     delete _moduleManager;
00066     delete _pluginLoader;
00067     delete _info;
00068     delete _version;
00069     delete _kernelService;
00070 }

Kernel::Kernel   [protected]
 

Default contructor.

Protected in order to prevent random instantion outside this class, while allowing sub-classing.

Definition at line 36 of file kernel.cpp.

References _info, _kernelService, _moduleManager, _pluginLoader, _serviceManager, _version, kore::ServiceProvider::addService(), KERNEL_DESCRIPTION, KERNEL_MAJOR, KERNEL_MINOR, KERNEL_NAME, KERNEL_REVISION, KERNEL_SERVICE, KERNEL_SERVICE_DESCRIPTION, KERNEL_TYPE, KERNEL_VERSION, kore::Module::setInfo(), and setServiceManager().

Referenced by instance().

00037 {
00038     _version = new Version(KERNEL_MAJOR,KERNEL_MINOR,KERNEL_REVISION,KERNEL_VERSION);
00039     _info = new Info(this, KERNEL_NAME, KERNEL_TYPE, KERNEL_DESCRIPTION, _version, _version);
00040     setInfo(_info);
00041     _kernelService = new Service(this, KERNEL_SERVICE, KERNEL_SERVICE_DESCRIPTION);
00042     addService(_kernelService);
00043 
00044     setServiceManager( new ServiceManager() );
00045     _serviceManager->registerProvider(_serviceManager);
00046     _serviceManager->registerProvider(this);
00047 
00048     _moduleManager = new ModuleManager();
00049     _serviceManager->registerProvider(_moduleManager);
00050     _moduleManager->registerModule(this);
00051     _moduleManager->registerModule(_serviceManager);
00052     _moduleManager->registerModule(_moduleManager);
00053 
00054     _pluginLoader = new PluginLoader();
00055     _serviceManager->registerProvider(_pluginLoader);
00056     _moduleManager->registerModule(_pluginLoader);
00057 //    _pluginManager = new PluginManager();
00058 }


Member Function Documentation

Kernel * Kernel::instance   [static]
 

Gets the single instance of Kernel.

Returns:
- the only instance of this class

Definition at line 23 of file kernel.cpp.

References _instance, Kernel(), and setInstance().

00024 {
00025     if( !_instance )
00026         setInstance(new Kernel());
00027     return _instance;
00028 //    return (Kernel*)((ServiceManager*) _instance->_serviceManager->registeredProvider("Kore/Kernel/Service Manager"))->registeredProvider(KERNEL_SERVICE);
00029 }

ServiceManager * Kernel::serviceManager   const
 

Gets the Kore ServiceManager.

Returns:
- the ServiceManager associated to this Kernel

Definition at line 72 of file kernel.cpp.

References _serviceManager.

00073 {
00074     return _serviceManager;
00075 }

void Kernel::setInstance Kernel *    inst [static, protected]
 

Helper method for setting the Kernel single instance.

Parameters:
inst  - the Kernel instance to be returned by Kernel::instance().

Definition at line 31 of file kernel.cpp.

References _instance.

Referenced by instance().

00032 {
00033     _instance = inst;
00034 }

void Kernel::setServiceManager ServiceManager   sm [protected]
 

Helper method for setting the ServiceManager associated to this Kernel.

Parameters:
sm  - the ServiceManager to be returned by Kernel::instance()serviceManager().

Definition at line 77 of file kernel.cpp.

References _serviceManager.

Referenced by Kernel().

00078 {
00079     _serviceManager = sm;
00080 }


Member Data Documentation

const Info* kore::Kernel::_info [private]
 

Reimplemented from kore::Module.

Definition at line 59 of file kernel.h.

Referenced by Kernel(), and ~Kernel().

Kernel * Kernel::_instance = 0 [static, private]
 

Definition at line 21 of file kernel.cpp.

Referenced by instance(), and setInstance().

const Service* kore::Kernel::_kernelService [private]
 

Definition at line 61 of file kernel.h.

Referenced by Kernel(), and ~Kernel().

ModuleManager* kore::Kernel::_moduleManager [private]
 

Definition at line 69 of file kernel.h.

Referenced by Kernel(), and ~Kernel().

PluginLoader* kore::Kernel::_pluginLoader [private]
 

Definition at line 67 of file kernel.h.

Referenced by Kernel(), and ~Kernel().

PluginManager* kore::Kernel::_pluginManager [private]
 

Definition at line 71 of file kernel.h.

ServiceManager* kore::Kernel::_serviceManager [private]
 

Definition at line 65 of file kernel.h.

Referenced by Kernel(), serviceManager(), setServiceManager(), and ~Kernel().

const Version* kore::Kernel::_version [private]
 

Definition at line 57 of file kernel.h.

Referenced by Kernel(), and ~Kernel().


The documentation for this class was generated from the following files:
Generated on Sat Feb 16 08:40:49 2002 for Korelib by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001