FastLED 3.10.8
Loading...
Searching...
No Matches
server.h
Go to the documentation of this file.
1#pragma once
2
3#include "fl/stl/json.h"
4#include "fl/stl/function.h"
5#include "fl/stl/optional.h"
6#include "fl/stl/vector.h"
7#include "fl/stl/noexcept.h"
10
11namespace fl {
12
29class Server {
30public:
32 using ResponseSink = fl::function<void(const fl::json&)>;
34
42
49
50 virtual ~Server() FL_NO_EXCEPT = default;
51
52 // Non-copyable but movable
53 Server(const Server&) FL_NO_EXCEPT = delete;
54 Server& operator=(const Server&) FL_NO_EXCEPT = delete;
56 Server& operator=(Server&&) FL_NO_EXCEPT = default;
57
63
68
73
81
85 size_t update() FL_NO_EXCEPT;
86
90 size_t pull() FL_NO_EXCEPT;
91
95 size_t push() FL_NO_EXCEPT;
96
97protected:
101#if FL_PLATFORM_HAS_LARGE_MEMORY
102 ResponseStreamSink mResponseStreamSink;
103#endif
105};
106
107} // namespace fl
void setRequestSource(RequestSource source) FL_NO_EXCEPT
Set request source callback.
fl::vector< fl::json > mOutgoingQueue
Definition server.h:104
fl::function< fl::optional< fl::json >()> RequestSource
Definition server.h:31
void setRequestHandler(RequestHandler handler) FL_NO_EXCEPT
Set request handler.
size_t update() FL_NO_EXCEPT
Main update: pull + push.
void setResponseSink(ResponseSink sink) FL_NO_EXCEPT
Set response sink callback.
Server() FL_NO_EXCEPT
Default constructor.
size_t pull() FL_NO_EXCEPT
Pull requests from source, process, queue responses.
RequestHandler mRequestHandler
Definition server.h:100
RequestSource mRequestSource
Definition server.h:98
void setResponseStreamSink(ResponseStreamSink sink) FL_NO_EXCEPT
Set streaming response sink callback.
size_t push() FL_NO_EXCEPT
Push queued responses to sink.
fl::function< void(const fl::json &)> ResponseSink
Definition server.h:32
fl::function< fl::json(const fl::json &)> RequestHandler
Definition server.h:33
ResponseSink mResponseSink
Definition server.h:99
FastLED's Elegant JSON Library: fl::json
u8 u8 fract8 blur_amount FL_NO_EXCEPT
Definition blur.h:186
fl::function< void(fl::JsonStreamCallback)> ResponseStreamSink
Base definition for an LED controller.
Definition crgb.hpp:179