1 #ifndef _XMLRPC_H_ 2 #define _XMLRPC_H_ 3 // 4 // XmlRpc++ Copyright (c) 2002-2003 by Chris Morley 5 // This library is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU Lesser General Public 7 // License as published by the Free Software Foundation; either 8 // version 2.1 of the License, or (at your option) any later version. 9 // 10 // This library is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // Lesser General Public License for more details. 14 // 15 // You should have received a copy of the GNU Lesser General Public 16 // License along with this library; if not, write to the Free Software 17 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 18 // 19 20 #if defined(_MSC_VER) 21 # pragma warning(disable:4786) // identifier was truncated in debug info 22 #endif 23 24 #ifndef MAKEDEPEND 25 # include <string> 26 #endif 27 28 #include "XmlRpcClient.h" 29 #include "XmlRpcException.h" 30 #include "XmlRpcServer.h" 31 #include "XmlRpcServerMethod.h" 32 #include "XmlRpcValue.h" 33 #include "XmlRpcUtil.h" 34 35 namespace XmlRpc { 36 37 38 //! An interface allowing custom handling of error message reporting. 39 class XmlRpcErrorHandler { 40 public: 41 //! Returns a pointer to the currently installed error handling object. getErrorHandler()42 static XmlRpcErrorHandler* getErrorHandler() 43 { return _errorHandler; } 44 45 //! Specifies the error handler. setErrorHandler(XmlRpcErrorHandler * eh)46 static void setErrorHandler(XmlRpcErrorHandler* eh) 47 { _errorHandler = eh; } 48 49 //! Report an error. Custom error handlers should define this method. 50 virtual void error(const char* msg) = 0; 51 ~XmlRpcErrorHandler()52 virtual ~XmlRpcErrorHandler() {} 53 protected: 54 static XmlRpcErrorHandler* _errorHandler; 55 }; 56 57 //! An interface allowing custom handling of informational message reporting. 58 class XmlRpcLogHandler { 59 public: 60 //! Returns a pointer to the currently installed message reporting object. getLogHandler()61 static XmlRpcLogHandler* getLogHandler() 62 { return _logHandler; } 63 64 //! Specifies the message handler. setLogHandler(XmlRpcLogHandler * lh)65 static void setLogHandler(XmlRpcLogHandler* lh) 66 { _logHandler = lh; } 67 68 //! Returns the level of verbosity of informational messages. 0 is no output, 5 is very verbose. getVerbosity()69 static int getVerbosity() 70 { return _verbosity; } 71 72 //! Specify the level of verbosity of informational messages. 0 is no output, 5 is very verbose. setVerbosity(int v)73 static void setVerbosity(int v) 74 { _verbosity = v; } 75 76 //! Output a message. Custom error handlers should define this method. 77 virtual void log(int level, const char* msg) = 0; 78 ~XmlRpcLogHandler()79 virtual ~XmlRpcLogHandler() {} 80 protected: 81 static XmlRpcLogHandler* _logHandler; 82 static int _verbosity; 83 }; 84 85 //! Returns log message verbosity. This is short for XmlRpcLogHandler::getVerbosity() 86 int getVerbosity(); 87 //! Sets log message verbosity. This is short for XmlRpcLogHandler::setVerbosity(level) 88 void setVerbosity(int level); 89 90 91 //! Version identifier 92 extern const char XMLRPC_VERSION[]; 93 94 } // namespace XmlRpc 95 96 #endif // _XMLRPC_H_ 97