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