00001 00028 #ifndef DMN_MODULE_H 00029 #define DMN_MODULE_H 1 00030 00031 #include <dmn/dmn.h> 00032 #include <dmn/id.h> 00033 00034 #include <string> 00035 00036 namespace dmn 00037 { 00041 typedef enum { 00042 ModuleNONE, 00043 ModuleConfig, 00044 ModuleCore, 00045 ModuleDisplay, 00046 ModuleGame, 00047 ModuleHand, 00048 ModuleMatch, 00049 ModulePlayer, 00050 ModuleSound, 00051 ModuleTournament 00052 } ModuleType; 00053 00057 class Module 00058 { 00059 private: 00063 static IDs ids_; 00064 ID id_; // Module identificator 00065 00066 /* Module information */ 00067 ModuleType type_; 00068 std::string name_; 00069 std::string version_; 00070 std::string desc_; 00071 00072 protected: 00078 void set_type(ModuleType type = ModuleNONE); 00079 00085 void set_name(const std::string& name); 00086 00092 void set_version(const std::string& version); 00093 00099 void set_desc(const std::string& desc); 00100 00101 public: 00105 Module(); 00106 00110 ~Module(); 00111 00117 ID id() const; 00118 00124 ModuleType type() const; 00125 00131 std::string name() const; 00132 00138 std::string version() const; 00139 00145 std::string desc() const; 00146 }; 00147 }; 00148 00149 #endif // DMN_MODULE_H