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

module.h

Go to the documentation of this file.
00001 
00002 #ifndef MODULE_H
00003 #define MODULE_H
00004 
00005 #include <kore/kore.h>
00006 
00007 namespace kore
00008 {
00009 
00010 class Version;
00011 class ModuleManager;
00012 
00019 class KORE_API Module
00020 {
00021 public:
00022 
00027     class KORE_API Info
00028     {
00029     public:
00039         Info(Module* module, const char* name = 0, const char* type = 0, const char* description = 0, const Version* version = 0, const Version* api = 0);
00040         virtual ~Info();
00041 
00046         virtual Module* module() const;
00051         virtual const char* name() const;
00056         virtual const char* type() const;
00061         virtual const char* description() const;
00066         virtual const Version* version() const;
00071         virtual const Version* APIVersion() const;
00072     protected:
00076         Info();
00081         void setModule(Module* module = 0);
00086         void setName(const char* name = 0);
00091         void setType(const char* type = 0);
00096         void setDescription(const char* descr = 0);
00101         void setVersion(const Version* version = 0);
00106         void setAPIVersion(const Version* api = 0);
00116         void setInfo(Module* module = 0, const char* name = 0, const char* type = 0, const char* description = 0, const Version* version = 0, const Version* api = 0);
00117     private:
00118         // the module this Info is associated to
00119         Module* _module;
00120         // module name
00121         const char* _name;
00122         // module type
00123         const char* _type;
00124         // module description
00125         const char* _description;
00126         // module version
00127         const Version* _version;
00128         // api version required by this module
00129         const Version* _api;
00130     };
00131 
00137     virtual void registeringModule(ModuleManager* mm);
00143     virtual void moduleRegistered(ModuleManager* mm);
00149     virtual void unregisteringModule(ModuleManager* mm);
00155     virtual void moduleUnregistered(ModuleManager* mm);
00161     virtual const Info* info() const;
00162 protected:
00166     Module();
00171     Module(const Info* info);
00175     virtual ~Module();
00180     void setInfo(const Info* info = 0);
00181 private:
00182     // module info
00183     const Info* _info;
00184 };
00185 
00186 };
00187 
00188 #endif

Generated on Sat Feb 16 04:46:02 2002 for Korelib by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001