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@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);
+}