5#if !defined(USE_ESP32) && !defined(USE_ESP8266) && !defined(USE_RP2040) && !defined(USE_LIBRETINY) && \
6 (defined(USE_SOCKET_IMPL_LWIP_SOCKETS) || defined(USE_SOCKET_IMPL_BSD_SOCKETS))
27 [[nodiscard]]
bool connect(
const char *host, uint16_t port);
29 [[nodiscard]]
bool connected()
const {
return connected_; }
30 size_t write(
const char *data,
size_t len);
33 connect_cb_ = std::move(cb);
37 disconnect_cb_ = std::move(cb);
38 disconnect_arg_ = arg;
42 data_cb_ = std::move(cb);
46 error_cb_ = std::move(cb);
54 std::unique_ptr<esphome::socket::Socket> socket_;
57 void *connect_arg_{
nullptr};
59 void *disconnect_arg_{
nullptr};
61 void *data_arg_{
nullptr};
63 void *error_arg_{
nullptr};
65 bool connected_{
false};
66 bool connecting_{
false};
AsyncClient API for platforms using sockets (ESP-IDF, host, etc.) NOTE: This class is NOT thread-safe...
void onConnect(AcConnectHandler cb, void *arg=nullptr)
std::function< void(void *, AsyncClient *, void *data, size_t len)> AcDataHandler
void onError(AcErrorHandler cb, void *arg=nullptr)
bool connect(const char *host, uint16_t port)
void onDisconnect(AcConnectHandler cb, void *arg=nullptr)
void onData(AcDataHandler cb, void *arg=nullptr)
Set data callback. NOTE: data pointer is only valid during callback execution.
std::function< void(void *, AsyncClient *, int8_t error)> AcErrorHandler
std::function< void(void *, AsyncClient *)> AcConnectHandler
size_t write(const char *data, size_t len)