1#ifndef _XMLRPCUTIL_H_ 2#define _XMLRPCUTIL_H_ 3// 4// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley 5// 6#if defined(_MSC_VER) 7# pragma warning(disable:4786) // identifier was truncated in debug info 8#endif 9 10#ifndef MAKEDEPEND 11# include <string> 12#endif 13 14#if defined(_MSC_VER) 15# define snprintf _snprintf 16# define vsnprintf _vsnprintf 17# define strcasecmp _stricmp 18# define strncasecmp _strnicmp 19#elif defined(__BORLANDC__) 20# define strcasecmp stricmp 21# define strncasecmp strnicmp 22#endif 23 24namespace XmlRpc { 25 26 //! Utilities for XML parsing, encoding, and decoding and message handlers. 27 class XmlRpcUtil { 28 public: 29 // hokey xml parsing 30 //! Returns contents between <tag> and </tag>, updates offset to char after </tag> 31 static std::string parseTag(const char* tag, std::string const& xml, int* offset); 32 33 //! Returns true if the tag is found and updates offset to the char after the tag 34 static bool findTag(const char* tag, std::string const& xml, int* offset); 35 36 //! Returns the next tag and updates offset to the char after the tag, or empty string 37 //! if the next non-whitespace character is not '<' 38 static std::string getNextTag(std::string const& xml, int* offset); 39 40 //! Returns true if the tag is found at the specified offset (modulo any whitespace) 41 //! and updates offset to the char after the tag 42 static bool nextTagIs(const char* tag, std::string const& xml, int* offset); 43 44 45 //! Convert raw text to encoded xml. 46 static std::string xmlEncode(const std::string& raw); 47 48 //! Convert encoded xml to raw text 49 static std::string xmlDecode(const std::string& encoded); 50 51 52 //! Dump messages somewhere 53 static void log(int level, const char* fmt, ...); 54 55 //! Dump error messages somewhere 56 static void error(const char* fmt, ...); 57 58 }; 59} // namespace XmlRpc 60 61#endif // _XMLRPCUTIL_H_ 62