00001 #ifndef KERNEL_H
00002 #define KERNEL_H
00003
00004 #include <kore/kore.h>
00005 #include <kore/serviceprovider.h>
00006
00007 namespace kore
00008 {
00009
00010 class ServiceManager;
00011 class PluginLoader;
00012 class ModuleManager;
00013 class PluginManager;
00014
00020 class KORE_API Kernel: public ServiceProvider
00021 {
00022 public:
00027 static Kernel* instance();
00032 ServiceManager* serviceManager() const;
00033
00037 virtual ~Kernel();
00038 protected:
00043 Kernel();
00048 static void setInstance(Kernel* inst);
00054 void setServiceManager(ServiceManager* sm);
00055 private:
00056
00057 const Version* _version;
00058
00059 const Info* _info;
00060
00061 const Service* _kernelService;
00062
00063 static Kernel* _instance;
00064
00065 ServiceManager* _serviceManager;
00066
00067 PluginLoader* _pluginLoader;
00068
00069 ModuleManager* _moduleManager;
00070
00071 PluginManager* _pluginManager;
00072 };
00073
00074 };
00075
00076 #endif