Qore JsonRpcHandler Module Reference  1.1
 All Classes Namespaces Functions Variables Pages
JsonRpcHandler::JsonRpcHandler Class Reference

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

Inherits AbstractHttpRequestHandler.

Public Member Functions

 constructor (AbstractAuthenticator auth, list methods, *code getLogMessage, bool dbg=False, *string get_prefix, *code 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
 

Public Attributes

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

Private Member Functions

final addMethodInternal (hash h)
 nodoc
 

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 ( AbstractAuthenticator  auth,
list  methods,
*code  getLogMessage,
bool  dbg = False,
*string  get_prefix,
*code  log 
)

creates the handler with the given method list

Parameters
authan authentication object (use new AbstractAuthenticator() for no authentication)
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
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 h ash), the method definition as passed in the methods argument to this constructor, and a reference to the arguments in this call
dbgthis parameter is set to True, then additional information will be logged when errors occur
get_prefixprefix to add to derived methods with GET requests if no "." characters are in the path
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