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

◆ pull()

size_t fl::Server::pull ( )

Pull requests from source, process, queue responses.

Definition at line 38 of file server.cpp.hpp.

38 {
40 return 0;
41 }
42
43 size_t processed = 0;
44
45 // Pull JSON-RPC requests from source until none available
46 while (auto optRequest = mRequestSource()) {
47 fl::json request = fl::move(*optRequest);
48
49 // Process request through handler
50 fl::json response = mRequestHandler(request);
51
52 // Queue response (skip scheduled acknowledgments and async skip markers)
53 bool isScheduledAck = response.contains("scheduled") && response["scheduled"].as_bool().value_or(false);
54 bool isAsyncSkip = response.contains("__skip") && response["__skip"].as_bool().value_or(false);
55 if (!response.is_null() && !isScheduledAck && !isAsyncSkip) {
56 mOutgoingQueue.push_back(fl::move(response));
57 }
58
59 processed++;
60 }
61
62 return processed;
63}
fl::vector< fl::json > mOutgoingQueue
Definition server.h:91
RequestHandler mRequestHandler
Definition server.h:90
RequestSource mRequestSource
Definition server.h:88
constexpr remove_reference< T >::type && move(T &&t) FL_NOEXCEPT
Definition s16x16x4.h:28

References mOutgoingQueue, fl::fl::move(), mRequestHandler, and mRequestSource.

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

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