summaryrefslogtreecommitdiff
path: root/jsonrpc.h
blob: 1a113ef9d57ce717b72f5503b43ea1bd386a37c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <jansson.h>

#define JSONRPC_PARSE_ERROR -32700
#define JSONRPC_INVALID_REQUEST -32600
#define JSONRPC_METHOD_NOT_FOUND -32601
#define JSONRPC_INVALID_PARAMS -32602
#define JSONRPC_INTERNAL_ERROR -32603

extern json_t *jsonrpc_async_dummy;

typedef int (*jsonrpc_method_prototype)(void *apparg, json_t *json_params, json_t **result);
struct jsonrpc_method_entry_t
{
	const char *name;
	jsonrpc_method_prototype funcptr;
	const char *params_spec;
};
char *jsonrpc_handler(void *apparg, const char *input, size_t input_len, struct jsonrpc_method_entry_t method_table[]);

json_t *jsonrpc_result_response(json_t *json_id, json_t *json_result);
json_t *jsonrpc_error_object(int code, json_t *data);