mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-30 12:50:58 +00:00
Add RPC API
This commit is contained in:
1 parent
9cacf443e1
commit
0dabc45780
13 files changed
+332
-75
No files matched your search
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
#include "json.h"
|
||||
|
||||
// JSON-RPC request descriptor
|
||||
struct mg_rpc_req {
|
||||
struct mg_str frame; // Request, e.g. {"id":1,"method":"add","params":[1,2]}
|
||||
mg_pfn_t pfn; // Response printing function
|
||||
void *pfn_data; // Response printing function data
|
||||
void *fn_data; // Endpoint handler data
|
||||
};
|
||||
|
||||
void mg_rpc_add(void **head, struct mg_str method_pattern,
|
||||
void (*handler)(struct mg_rpc_req *), void *handler_data);
|
||||
void mg_rpc_free(void **head);
|
||||
void mg_rpc_process(void **head, struct mg_str json, mg_pfn_t pfn, void *pfnd);
|
||||
|
||||
// Helper functions to print result or error frame
|
||||
void mg_rpc_ok(struct mg_rpc_req *, const char *fmt, ...);
|
||||
void mg_rpc_vok(struct mg_rpc_req *, const char *fmt, va_list *ap);
|
||||
void mg_rpc_err(struct mg_rpc_req *, int code, const char *fmt, ...);
|
||||
void mg_rpc_verr(struct mg_rpc_req *, int code, const char *fmt, va_list *);
|
||||
void mg_rpc_list(struct mg_rpc_req *r);
|
||||
Reference in new issue
Block a user