Qore YamlRpcHandler Module Reference  1.0
 All Classes Namespaces Functions Variables Pages

Introduction

This module implements server-side support for a proprietary RPC-based protocol using YAML for serialization/deserialization of message data.

This module provides the YamlRpcHandler class which can be used to provide an RPC handler for the HttpServer class provided by the HttpServer module.

See the YamlRpcClient module for a description of the YAML-RPC protocol implemented here.

Example Usage

%requires HttpServer
%requires YamlRpcHandler
%requires Mime
const ApiMethods = (
("name": "^sys\\.shutdown\$",
"text": "sys.shutdown",
"function": sub () { background $http.stop(); return "OK"; },
"help": "shuts down this server",
"logopt": 0,
),
);
# a logging closure
my code $log = sub (string $str) {printf("%y: %s\n", now_us(), $str);};
# our bind address
const Bind = 8888;
my YamlRpcHandler $yamlRpcHandler(new AbstractAuthenticator(), $api);
our HttpServer $http($log, $log);
$http.addListener(Bind);
$http.setHandler("yamlrpc", "", MimeTypeYamlRpc, $yamlRpcHandler);
$http.setDefaultHandler("yamlrpc", $yamlRpcHandler);
$log("now listening on %s\n", Bind);
$http.waitStop();