FastLED 3.9.15
Loading...
Searching...
No Matches

◆ Remote() [1/3]

fl::Remote::Remote ( RequestSource source,
ResponseSink sink )

Construct with I/O callbacks.

Parameters
sourceFunction that returns next JSON-RPC request (or nullopt if none)
sinkFunction that handles outgoing JSON-RPC responses

Example (Serial): fl::Remote remote( [&]() { return parseJsonRpcFromSerial(); }, [](const fl::json& r) { writeJsonRpcToSerial(r); } );

Example (HTTP Streaming): auto transport = fl::make_shared<HttpStreamClient>("localhost", 8080); fl::Remote remote( [&transport]() { return transport->readRequest(); }, [&transport](const fl::json& r) { transport->writeResponse(r); } ); // In main loop: transport->update(millis()); remote.update(millis());

Definition at line 253 of file remote.cpp.hpp.

254 : Server(fl::move(source), fl::move(sink))
255{
256 // Set request handler to processRpc
257 setRequestHandler([this](const fl::json& request) {
258 return processRpc(request);
259 });
260
261 // Set response sink on Rpc for async ACKs
262 mRpc.setResponseSink([this](const fl::json& response) {
263 // Send response directly via Server's response sink
264 if (mResponseSink) {
265 mResponseSink(response);
266 }
267 });
268}
fl::Rpc mRpc
Definition remote.h:206
fl::json processRpc(const fl::json &request)
Process JSON-RPC request (with optional "timestamp" field for scheduling) Returns JSON-RPC response: ...
void setRequestHandler(RequestHandler handler)
Set request handler.
Server() FL_NOEXCEPT
Default constructor.
ResponseSink mResponseSink
Definition server.h:89
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
Definition s16x16x4.h:28

References fl::Server::Server(), fl::move(), fl::Server::mResponseSink, mRpc, processRpc(), and fl::Server::setRequestHandler().

Referenced by Remote(), Remote(), fl::WLED::WLED(), fl::WLED::WLED(), operator=(), and operator=().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: