5#ifdef FASTLED_HAS_NETWORKING
19class NativeHttpClient {
22 NativeHttpClient(
const asio::ip::tcp::endpoint& ep,
const ConnectionConfig& config = ConnectionConfig());
24 NativeHttpClient(
const string& host, u16 port,
const ConnectionConfig& config = ConnectionConfig());
28 NativeHttpClient(const NativeHttpClient&)
FL_NOEXCEPT = delete;
29 NativeHttpClient& operator=(const NativeHttpClient&)
FL_NOEXCEPT = delete;
35 bool isConnected() const;
36 ConnectionState getState() const;
39 int send(fl::span<const
u8> data);
40 int recv(fl::span<
u8> buffer);
43 void update(u32 currentTimeMs);
46 bool shouldSendHeartbeat(u32 currentTimeMs) const;
47 void onHeartbeatSent();
48 void onHeartbeatReceived();
51 u32 getReconnectDelayMs() const;
52 u32 getReconnectAttempts() const;
55 const asio::ip::tcp::endpoint& endpoint()
const {
return mEndpoint; }
58 asio::ip::tcp::socket& socket() {
return mSocket; }
59 const asio::ip::tcp::socket& socket()
const {
return mSocket; }
62 asio::ip::tcp::endpoint mEndpoint;
63 asio::ip::tcp::socket mSocket;
64 HttpConnection mConnection;
67 bool platformConnect();
68 void platformDisconnect();
69 bool isSocketConnected()
const;
Base definition for an LED controller.