Qore JsonRpcHandler Module Reference  1.1
JsonRpcHandler::JsonRpcHandler Class Reference

JsonRpcHandler class definition; to be registered as a handler in the HttpServer class. More...

Inherits AbstractHttpRequestHandler.

Public Member Functions

 constructor (HttpServer::AbstractAuthenticator n_auth, list n_methods, *code n_getLogMessage, bool n_dbg=False, *string n_get_prefix, *code n_log)
 creates the handler with the given method list More...
 
 addMethod (string name, code func, string text, string help, any logopt, any cmark)
 adds a method to the handler dynamically More...
 
 setDebug (bool dbg=True)
 turns on or off debugging; when debugging is enabled more verbose error messages are reported
 
bool getDebug ()
 returns the current status of the debug flag
 
final private addMethodInternal (hash h)
 nodoc
 

Public Attributes

const Version = "1.0"
 implementation of the handler
 
const InternalMethods
 internal methods of the handler (introspection)
 

Detailed Description

JsonRpcHandler class definition; to be registered as a handler in the HttpServer class.

Member Function Documentation

JsonRpcHandler::JsonRpcHandler::addMethod ( string  name,
code  func,
string  text,
string  help,
any  logopt,
any  cmark 
)

adds a method to the handler dynamically

Parameters
namea regular expression to use for matching the method name
funca string (giving a function name to call), a call reference, or a closure to call with the deserialized arguments to the method; the return value will be serialized to XML-RPC and sent back to the caller
textthe human-readable name of the method
helphelp text for the method
logoptlog options which can be used by a custom logger (see the getLogMessage parameter)
cmarkany value that will be added in the method hash under the "cmark" key
JsonRpcHandler::JsonRpcHandler::constructor ( HttpServer::AbstractAuthenticator  n_auth,
list  n_methods,
*code  n_getLogMessage,
bool  n_dbg = False,
*string  n_get_prefix,
*code  n_log 
)

creates the handler with the given method list

Parameters
n_authan authentication object (use new AbstractAuthenticator() for no authentication)
n_methodsa list of hashes with the following keys:
  • name: a regular expression to use for matching the method name
  • function: a string (giving a function name to call), a call reference, or a closure to call with the deserialized arguments to the method; the return value will be serialized to JSON-RPC and sent back to the caller
  • text: the human-readable name of the method
  • help: help text for the method
  • logopt: (optional - by convention) log options which can be used by a custom logger (see the getLogMessage parameter)
  • cmark: (optional) a data structure to be added to the context argument when the request method is called
n_getLogMessagean optional closure or call reference to be called when an incoming request is received; if this is set then it will be called with the following arguments: a context hash (see HttpServer::AbstractHttpRequestHandler::handleRequest() for a description of the context hash), the method definition as passed in the methods argument to this constructor, and a reference to the arguments in this call
n_dbgthis parameter is set to True, then additional information will be logged when errors occur
n_get_prefixprefix to add to derived methods with GET requests if no "." characters are in the path
n_logan optional closure or call reference to be called when logging
Exceptions
JSON-RPC-CONSTRUCTOR-ERRORmissing "name", "function", or "text" key in method hash, \c "function" key not assigned to a callable value