MCPcopy Create free account
hub / github.com/FastLED/FastLED / scheduleFunction

Method scheduleFunction

src/fl/remote/remote.cpp.hpp:195–214  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193}
194
195void Remote::scheduleFunction(u32 timestamp, u32 receivedAt, const fl::json& jsonRpcRequest) {
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}
215
216void Remote::recordResult(const fl::string& funcName, const fl::json& result, u32 scheduledAt, u32 receivedAt, u32 executedAt, bool wasScheduled) {
217 mResults.push_back({funcName, result, scheduledAt, receivedAt, executedAt, wasScheduled});

Callers

nothing calls this directly

Calls 6

value_orMethod · 0.80
scheduleMethod · 0.80
millisFunction · 0.50
as_stringMethod · 0.45
handleMethod · 0.45
containsMethod · 0.45

Tested by

no test coverage detected