00001 00028 #ifndef DMN_MODULEIO_H 00029 #define DMN_MODULEIO_H 1 00030 00031 #include <dmn/module.h> 00032 00033 #include <string> 00034 00042 extern "C" dmn::Module* Module_init(); 00043 00051 extern "C" void Module_end(dmn::Module *module); 00052 00053 namespace dmn 00054 { 00058 class ModuleIO 00059 { 00060 std::string path_; 00061 void *handle_; 00062 Module *module_; 00063 00064 public: 00068 ModuleIO(); 00069 00077 ModuleIO(const std::string& path); 00078 00083 ~ModuleIO(); 00084 00094 Module *open(const std::string& path); 00095 00101 void close(); 00102 00108 const std::string path() const; 00109 00115 Module *module() const; 00116 }; 00117 }; 00118 00119 #endif // DMN_MODULEIO_H 1