summaryrefslogtreecommitdiff
path: root/netfs/fuseConfig.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'netfs/fuseConfig.cpp')
-rw-r--r--netfs/fuseConfig.cpp28
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));
+ }
+}
+