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

Class Server

src/fl/remote/rpc/server.h:27–92  ·  view source on GitHub ↗

* @brief JSON-RPC server with callback-based I/O * * Coordinates JSON-RPC request/response flow between source and sink callbacks. * Provides generic I/O coordination layer for JSON-RPC servers. * * Usage: * Server server( * []() { return getJsonRpcRequest(); }, // RequestSource * [](const json& r) { sendJsonRpcResponse(r); } // ResponseSink * ); * server.setReques

Source from the content-addressed store, hash-verified

25 * server.update(); // pull + push
26 */
27class Server {
28public:
29 using RequestSource = fl::function<fl::optional<fl::json>()>;
30 using ResponseSink = fl::function<void(const fl::json&)>;
31 using RequestHandler = fl::function<fl::json(const fl::json&)>;
32
33 /**
34 * @brief Default constructor
35 *
36 * Creates Server with no-op callbacks. Use setRequestSource/setResponseSink
37 * to configure I/O, or call setRequestHandler() manually.
38 */
39 Server() FL_NOEXCEPT;
40
41 /**
42 * @brief Construct with I/O callbacks
43 * @param source Function that returns next JSON-RPC request (or nullopt if none)
44 * @param sink Function that handles outgoing JSON-RPC responses
45 */
46 Server(RequestSource source, ResponseSink sink);
47
48 virtual ~Server() FL_NOEXCEPT = default;
49
50 // Non-copyable but movable
51 Server(const Server&) FL_NOEXCEPT = delete;
52 Server& operator=(const Server&) FL_NOEXCEPT = delete;
53 Server(Server&&) FL_NOEXCEPT = default;
54 Server& operator=(Server&&) FL_NOEXCEPT = default;
55
56 /**
57 * @brief Set request handler
58 * @param handler Function that processes JSON-RPC requests and returns responses
59 */
60 void setRequestHandler(RequestHandler handler);
61
62 /**
63 * @brief Set request source callback
64 */
65 void setRequestSource(RequestSource source);
66
67 /**
68 * @brief Set response sink callback
69 */
70 void setResponseSink(ResponseSink sink);
71
72 /**
73 * @brief Main update: pull + push
74 */
75 size_t update();
76
77 /**
78 * @brief Pull requests from source, process, queue responses
79 */
80 size_t pull();
81
82 /**
83 * @brief Push queued responses to sink
84 */

Callers 1

mcp_server.pyFile · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected