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

◆ scheduleFunction()

void fl::Remote::scheduleFunction ( u32 timestamp,
u32 receivedAt,
const fl::json & jsonRpcRequest )
protected

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

195 {
196 // Make explicit copy for capture (avoid reference issues)
197 fl::json requestCopy = jsonRpcRequest;
198 fl::string funcName = requestCopy["method"].as_string().value_or("unknown");
199
200 // Wrap RPC execution in lambda and schedule it
201 mScheduler.schedule(timestamp, [this, requestCopy, timestamp, receivedAt, funcName]() {
202 u32 executedAt = fl::millis();
203
204 // Execute JSON-RPC request
205 fl::json response = mRpc.handle(requestCopy);
206
207 // Record result with timing metadata
208 if (response.contains("result") && requestCopy.contains("method")) {
209 recordResult(funcName, response["result"], timestamp, receivedAt, executedAt, true);
210 }
211 });
212
213 FL_DBG("Scheduled RPC: " << funcName << " at " << timestamp);
214}
void recordResult(const fl::string &funcName, const fl::json &result, u32 scheduledAt, u32 receivedAt, u32 executedAt, bool wasScheduled)
fl::net::RpcScheduler mScheduler
Definition remote.h:209
fl::Rpc mRpc
Definition remote.h:206
bool contains(size_t idx) const FL_NOEXCEPT
Definition json.h:625
fl::optional< fl::string > as_string() const FL_NOEXCEPT
Definition json.h:282
#define FL_DBG
Definition log.h:388
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.

References fl::json::as_string(), fl::json::contains(), FL_DBG, fl::millis(), mRpc, mScheduler, and recordResult().

Referenced by processRpc().

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