|
FastLED 3.9.15
|
JSON-RPC server with callback-based I/O.
Coordinates JSON-RPC request/response flow between source and sink callbacks. Provides generic I/O coordination layer for JSON-RPC servers.
Usage: Server server( []() { return getJsonRpcRequest(); }, // RequestSource [](const json& r) { sendJsonRpcResponse(r); } // ResponseSink ); server.setRequestHandler([](const json& req) { return processJsonRpc(req); }); server.update(); // pull + push
#include <server.h>
Inheritance diagram for fl::Server:
Collaboration diagram for fl::Server:Public Types | |
| using | RequestHandler = fl::function<fl::json(const fl::json&)> |
| using | RequestSource = fl::function<fl::optional<fl::json>()> |
| using | ResponseSink = fl::function<void(const fl::json&)> |
Public Member Functions | |
| Server () FL_NOEXCEPT | |
| Default constructor. | |
| Server (const Server &) FL_NOEXCEPT=delete | |
| Server (RequestSource source, ResponseSink sink) | |
| Construct with I/O callbacks. | |
| Server (Server &&) FL_NOEXCEPT=default | |
| virtual | ~Server () FL_NOEXCEPT=default |
| Server & | operator= (const Server &) FL_NOEXCEPT=delete |
| Server & | operator= (Server &&) FL_NOEXCEPT=default |
| size_t | pull () |
| Pull requests from source, process, queue responses. | |
| size_t | push () |
| Push queued responses to sink. | |
| void | setRequestHandler (RequestHandler handler) |
| Set request handler. | |
| void | setRequestSource (RequestSource source) |
| Set request source callback. | |
| void | setResponseSink (ResponseSink sink) |
| Set response sink callback. | |
| size_t | update () |
| Main update: pull + push. | |
Protected Attributes | |
| fl::vector< fl::json > | mOutgoingQueue |
| RequestHandler | mRequestHandler |
| RequestSource | mRequestSource |
| ResponseSink | mResponseSink |