PackageManager: Uploaded forgotten File
Added: trunk/rosapps/packmgr/lib/options.cpp
_____
Added: trunk/rosapps/packmgr/lib/options.cpp
--- trunk/rosapps/packmgr/lib/options.cpp 2005-04-21 16:18:29 UTC
(rev 14733)
+++ trunk/rosapps/packmgr/lib/options.cpp 2005-04-21 16:28:44 UTC
(rev 14734)
@@ -0,0 +1,76 @@
+////////////////////////////////////////////////////////
+//
+// options.cpp
+//
+// Settting and Loading Options
+//
+//
+// Maarten Bosma, 09.01.2004
+// maarten.paul(a)bosma.de
+//
+////////////////////////////////////////////////////////////////////
+
+#include "package.hpp"
+#include "log.h"
+#include "expat.h"
+
+
+int PML_XmlDownload (pTree tree, const char* url, void* usrdata,
+ XML_StartElementHandler
start, XML_EndElementHandler end, XML_CharacterDataHandler text) ;
+
+
+// expat callback for start of a "node" tag
+void opt_start (void* usrdata, const char* tag, const char** arg)
+{
+ TREE* tree = (TREE*)usrdata;
+
+ if (!strcmp(tag, "source"))
+ {
+ tree->sources.push_back((char*)NULL);
+ tree->field = &tree->sources.back();
+ }
+}
+
+// expat callback for end of a "node" tag
+void opt_end (void* usrdata, const char* tag)
+{
+ TREE* tree = (TREE*)usrdata;
+
+ tree->field = NULL;
+}
+
+// expat callback for end of a "node" tag
+void opt_text (void* usrdata, const char* data, int len)
+{
+ TREE* tree = (TREE*)usrdata;
+
+ if(!tree->field)
+ return;
+
+ *tree->field = new char[len+1];
+ strncpy(*tree->field, data, len);
+ (*tree->field)[len] = '\0';
+}
+
+
+int CreateOptions (TREE* tree)
+{
+// string source;
+
+// ifstream file ("help.txt", ios_base::in);
+ Log("* Creating options,xml");
+
+ return ERR_OK;
+}
+
+int LoadOptions (TREE* tree)
+{
+ int error;
+
+ error = PML_XmlDownload(tree, "file://options.xml", (void*)tree,
opt_start, opt_end, opt_text);
+ if(!error)
+ return ERR_OK;
+
+ CreateOptions(tree);
+ return PML_XmlDownload(tree, "file://options.xml", (void*)tree,
opt_start, opt_end, opt_text);
+}