X-Git-Url: http://git.vrable.net/?a=blobdiff_plain;f=libs3-1.4%2Finc%2Fsimplexml.h;fp=libs3-1.4%2Finc%2Fsimplexml.h;h=704db070a375c3ff33d61fade595ee0801604be6;hb=1d62668cef91cf8f93f078ff47b4f99dec0f1669;hp=0000000000000000000000000000000000000000;hpb=45a4f324927f8fe3b7e689dd0c9a28716d0d1e93;p=bluesky.git diff --git a/libs3-1.4/inc/simplexml.h b/libs3-1.4/inc/simplexml.h new file mode 100644 index 0000000..704db07 --- /dev/null +++ b/libs3-1.4/inc/simplexml.h @@ -0,0 +1,76 @@ +/** ************************************************************************** + * simplexml.h + * + * Copyright 2008 Bryan Ischo + * + * This file is part of libs3. + * + * libs3 is free software: you can redistribute it and/or modify it under the + * terms of the GNU General Public License as published by the Free Software + * Foundation, version 3 of the License. + * + * In addition, as a special exception, the copyright holders give + * permission to link the code of this library and its programs with the + * OpenSSL library, and distribute linked combinations including the two. + * + * libs3 is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License version 3 + * along with libs3, in a file named COPYING. If not, see + * . + * + ************************************************************************** **/ + +#ifndef SIMPLEXML_H +#define SIMPLEXML_H + +#include "libs3.h" + + +// Simple XML callback. +// +// elementPath: is the full "path" of the element; i.e. +// data would have 'data' in the element +// foo/bar/baz. +// +// Return of anything other than S3StatusOK causes the calling +// simplexml_add() function to immediately stop and return the status. +// +// data is passed in as 0 on end of element +typedef S3Status (SimpleXmlCallback)(const char *elementPath, const char *data, + int dataLen, void *callbackData); + +typedef struct SimpleXml +{ + void *xmlParser; + + SimpleXmlCallback *callback; + + void *callbackData; + + char elementPath[512]; + + int elementPathLen; + + S3Status status; +} SimpleXml; + + +// Simple XML parsing +// ---------------------------------------------------------------------------- + +// Always call this, even if the simplexml doesn't end up being used +void simplexml_initialize(SimpleXml *simpleXml, SimpleXmlCallback *callback, + void *callbackData); + +S3Status simplexml_add(SimpleXml *simpleXml, const char *data, int dataLen); + + +// Always call this +void simplexml_deinitialize(SimpleXml *simpleXml); + + +#endif /* SIMPLEXML_H */