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

modulemanager.h

Go to the documentation of this file.
00001 #ifndef MODULEMANAGER_H
00002 #define MODULEMANAGER_H
00003 
00004 #include <kore/kore.h>
00005 #include <kore/serviceprovider.h>
00006 #include <set>
00007 
00008 namespace kore
00009 {
00018 class KORE_API ModuleManager : public ServiceProvider
00019 {
00020 public:
00024     ModuleManager();
00028     virtual ~ModuleManager();
00029 
00034     virtual void registerModule(Module* module);
00039     virtual void unregisterModule(Module* module);
00044     virtual void registerModules(Module** modules);
00049     virtual void unregisterModules();
00050 
00057     virtual Module** registeredModules() const;
00058 
00059 protected:
00060 private:
00061     // current MM version
00062     const Version* _mmVersion;
00063     // Kernel API version required by MM
00064     const Version* _mmAPIVersion;
00065     // MM info
00066     const Info* _mmInfo;
00067     // basic MM service
00068     const Service* _mmService;
00069 
00070     // needed by _modules set.
00071     struct ltptr
00072     {
00073         bool operator()(Module* mod1, Module* mod2) const
00074         {
00075             // just compare the pointers (addresses).
00076             return mod1 < mod2;
00077         }
00078     };
00079     typedef set<Module* , ltptr> mod_set_type;
00080     // the list of modules.
00081     mod_set_type _modules;
00082 };
00083 };
00084 
00085 #endif

Generated on Sat Feb 16 03:44:39 2002 for Korelib by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001