Qore json Module  1.8.1
JsonRpcHandler::JsonRpcHandler Class Reference

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

Inherits AbstractHttpRequestHandler.

Public Member Methods

 constructor (HttpServer::AbstractAuthenticator n_auth, list< auto > 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, auto logopt, auto 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.3"
 implementation of the handler
 
const InternalMethods = ...
 internal methods of the handler (introspection)
 
const JRE_ParseError = -32700
 JSON-RPC Error Code: Parse Error.
 
const JRE_InvalidRequest = -32600
 JSON-RPC Error Code: Invalid Request.
 
const JRE_MethodNotFound = -32601
 JSON-RPC Error Code: Method not found.
 
const JRE_InvalidParams = -32602
 JSON-RPC Error Code: Invalid Params.
 
const JRE_InternalError = -32603
 JSON-RPC Error Code: Internal error.
 

Private Member Methods

final addMethodInternal (hash< auto > h)
 @conf nodoc
 

Detailed Description

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

Member Function Documentation

◆ addMethod()

JsonRpcHandler::JsonRpcHandler::addMethod ( string  name,
code  func,
string  text,
string  help,
auto  logopt,
auto  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

◆ constructor()

JsonRpcHandler::JsonRpcHandler::constructor ( HttpServer::AbstractAuthenticator  n_auth,
list< auto >  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

The documentation for this class was generated from the following file: