1 2#ifndef _XMLRPCSERVERMETHOD_H_ 3#define _XMLRPCSERVERMETHOD_H_ 4// 5// XmlRpc++ Copyright (c) 2002-2003 by Chris Morley 6// 7#if defined(_MSC_VER) 8# pragma warning(disable:4786) // identifier was truncated in debug info 9#endif 10 11#ifndef MAKEDEPEND 12# include <string> 13#endif 14 15namespace XmlRpc { 16 17 // Representation of a parameter or result value 18 class XmlRpcValue; 19 20 // The XmlRpcServer processes client requests to call RPCs 21 class XmlRpcServer; 22 23 //! Abstract class representing a single RPC method 24 class XmlRpcServerMethod { 25 public: 26 //! Constructor 27 XmlRpcServerMethod(std::string const& name, XmlRpcServer* server = 0); 28 //! Destructor 29 virtual ~XmlRpcServerMethod(); 30 31 //! Returns the name of the method 32 std::string& name() { return _name; } 33 34 //! Execute the method. Subclasses must provide a definition for this method. 35 virtual void execute(XmlRpcValue& params, XmlRpcValue& result) = 0; 36 37 //! Returns a help string for the method. 38 //! Subclasses should define this method if introspection is being used. 39 virtual std::string help() { return std::string(); } 40 41 protected: 42 std::string _name; 43 XmlRpcServer* _server; 44 }; 45} // namespace XmlRpc 46 47#endif // _XMLRPCSERVERMETHOD_H_ 48