Home | History | Annotate | Download | only in src
      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 
     24 namespace 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