diff options
Diffstat (limited to 'netfs/fuseConfig.cpp')
-rw-r--r-- | netfs/fuseConfig.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/netfs/fuseConfig.cpp b/netfs/fuseConfig.cpp new file mode 100644 index 0000000..26ee6a1 --- /dev/null +++ b/netfs/fuseConfig.cpp @@ -0,0 +1,28 @@ +#include "fuseConfig.h" +#include <string.h> + +FuseConfigPtr +FuseConfig::Load(const char * path) +{ + xmlDoc * doc = xmlReadFile(path, NULL, 0); + FuseConfigPtr dc = new FuseConfig(doc->children); + xmlFreeDoc(doc); + return dc; +} + +FuseConfig::FuseConfig(xmlNodePtr conf) +{ + foreachxml(exp, xmlGetNode(conf, "exports"), "export") { + ExportPtr e = new Export(exp); + exports[e->name] = e; + } +} + +FuseConfig::Export::Export(xmlNodePtr conf) : + name(xmlGetNodeValue(conf, "name")) +{ + foreachxml(ep, xmlGetNode(conf, "endpoints"), "endpoint") { + endpoints.insert(xmlGetNodeValue(ep)); + } +} + |