diff options
Diffstat (limited to 'bindings/swig/swconfig.i')
-rw-r--r-- | bindings/swig/swconfig.i | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/bindings/swig/swconfig.i b/bindings/swig/swconfig.i new file mode 100644 index 0000000..a934ffc --- /dev/null +++ b/bindings/swig/swconfig.i @@ -0,0 +1,42 @@ +%{ + #include <stdio.h> + #include <string> + #include <map> + #include <defs.h> + #include <multimapwdef.h> + + #include "swconfig.h" +%} + +%include "stl.i" +%include "std_vector.i" +%include "std_string.i" +%include "typemaps.i" + + +typedef multimapwithdefault < string, string, less < string > > ConfigEntMap; +typedef map < string, ConfigEntMap, less < string > > SectionMap; + +class SWConfig { +public: + //member data + string filename; + SectionMap Sections; + + //member functions + SWConfig(const char *ifilename); + virtual ~ SWConfig(); + + virtual void Load(); + virtual void Save(); + +%extend { + void set(const char* group, const char* entry, const char* value) { + self->Sections[group][entry] = value; + }; + const char* get(const char* group, const char* entry) { + return self->Sections[group][entry].c_str(); + }; +} + +}; |