FastLED 3.9.15
Loading...
Searching...
No Matches
fl::Server Class Reference

Detailed Description

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

Definition at line 27 of file server.h.

#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
 
Serveroperator= (const Server &) FL_NOEXCEPT=delete
 
Serveroperator= (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::jsonmOutgoingQueue
 
RequestHandler mRequestHandler
 
RequestSource mRequestSource
 
ResponseSink mResponseSink
 

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