FastLED 3.10.8
Loading...
Searching...
No Matches

◆ Remote() [2/4]

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

Construct with I/O callbacks, including streamed response output.

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

316 : Server(fl::move(source), fl::move(sink))
317{
318#if FL_PLATFORM_HAS_LARGE_MEMORY
319 setResponseStreamSink(fl::move(streamSink));
320#else
321 (void)streamSink;
322#endif
323
324 // Set request handler to processRpc
325 setRequestHandler([this](const fl::json& request) {
326 return processRpc(request);
327 });
328
329 // Set response sink on Rpc for async ACKs
330 mRpc.setResponseSink([this](const fl::json& response) {
331 // Send response directly via Server's response sink
332 if (mResponseSink) {
333 mResponseSink(response);
334 }
335 });
336
337#if FL_PLATFORM_HAS_LARGE_MEMORY
338 mRpc.setResponseStreamSink([this](fl::JsonStreamCallback writeJson) {
339 if (mResponseStreamSink) {
340 mResponseStreamSink(fl::move(writeJson));
341 }
342 });
343#endif
344}
fl::json processRpc(const fl::json &request) FL_NO_EXCEPT
Process JSON-RPC request (with optional "timestamp" field for scheduling) Returns JSON-RPC response: ...
fl::Rpc mRpc
Definition remote.h:225
void setRequestHandler(RequestHandler handler) FL_NO_EXCEPT
Set request handler.
Server() FL_NO_EXCEPT
Default constructor.
void setResponseStreamSink(ResponseStreamSink sink) FL_NO_EXCEPT
Set streaming response sink callback.
ResponseSink mResponseSink
Definition server.h:99
constexpr remove_reference< T >::type && move(T &&t) FL_NO_EXCEPT
Definition move.h:30
fl::function< void(fl::JsonStreamWriter &)> JsonStreamCallback

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

+ Here is the call graph for this function: