PackageManager: Uploaded forgotten File
authorMaarten Bosma <maarten@bosma.de>
Thu, 21 Apr 2005 16:28:44 +0000 (16:28 +0000)
committerMaarten Bosma <maarten@bosma.de>
Thu, 21 Apr 2005 16:28:44 +0000 (16:28 +0000)
svn path=/trunk/; revision=14734

rosapps/packmgr/lib/options.cpp [new file with mode: 0644]

diff --git a/rosapps/packmgr/lib/options.cpp b/rosapps/packmgr/lib/options.cpp
new file mode 100644 (file)
index 0000000..c6160b0
--- /dev/null
@@ -0,0 +1,76 @@
+////////////////////////////////////////////////////////\r
+//\r
+// options.cpp\r
+// \r
+// Settting and Loading Options \r
+//\r
+//\r
+// Maarten Bosma, 09.01.2004\r
+// maarten.paul@bosma.de\r
+//\r
+////////////////////////////////////////////////////////////////////\r
+\r
+#include "package.hpp"\r
+#include "log.h"\r
+#include "expat.h"\r
+\r
+\r
+int PML_XmlDownload (pTree tree, const char* url, void* usrdata,\r
+                                                XML_StartElementHandler start, XML_EndElementHandler end, XML_CharacterDataHandler text) ;\r
+\r
+\r
+// expat callback for start of a "node" tag\r
+void opt_start (void* usrdata, const char* tag, const char** arg)\r
+{\r
+       TREE* tree = (TREE*)usrdata;\r
+\r
+       if (!strcmp(tag, "source"))\r
+       {\r
+               tree->sources.push_back((char*)NULL);\r
+               tree->field = &tree->sources.back();\r
+       }\r
+}\r
+\r
+// expat callback for end of a "node" tag\r
+void opt_end (void* usrdata, const char* tag)\r
+{\r
+       TREE* tree = (TREE*)usrdata;\r
+\r
+       tree->field = NULL;\r
+}\r
+\r
+// expat callback for end of a "node" tag\r
+void opt_text (void* usrdata, const char* data, int len)\r
+{\r
+       TREE* tree = (TREE*)usrdata;\r
+\r
+       if(!tree->field)\r
+               return;\r
+\r
+       *tree->field = new char[len+1];\r
+       strncpy(*tree->field, data, len);\r
+       (*tree->field)[len] = '\0';\r
+}\r
+\r
+\r
+int CreateOptions (TREE* tree)\r
+{\r
+//     string source;\r
+\r
+//     ifstream file ("help.txt", ios_base::in);\r
+       Log("* Creating options,xml");\r
+\r
+       return ERR_OK;\r
+}\r
+\r
+int LoadOptions (TREE* tree)\r
+{\r
+       int error;\r
+\r
+       error = PML_XmlDownload(tree, "file://options.xml", (void*)tree, opt_start, opt_end, opt_text);\r
+       if(!error)\r
+               return ERR_OK;\r
+\r
+       CreateOptions(tree);\r
+       return PML_XmlDownload(tree, "file://options.xml", (void*)tree, opt_start, opt_end, opt_text);\r
+}\r