31 Event(
const esp_mqtt_event_t &event)
33 data(event.data, event.data + event.data_len),
34 total_data_len(event.total_data_len),
35 current_data_offset(event.current_data_offset),
36 topic(event.topic, event.topic_len),
41 session_present(event.session_present),
42 error_handle(*event.error_handle) {}
59 void set_will(
const char *topic, uint8_t qos,
bool retain,
const char *payload)
final {
68 this->
host_ = ip.str();
90 void set_on_publish(std::function<on_publish_user_callback_t> &&callback)
final {
98 esp_mqtt_client_start(
handler_.get());
104 esp_mqtt_client_disconnect(
handler_.get());
108 return esp_mqtt_client_subscribe(
handler_.get(), topic, qos) != -1;
110 bool unsubscribe(
const char *topic)
final {
return esp_mqtt_client_unsubscribe(
handler_.get(), topic) != -1; }
112 bool publish(
const char *topic,
const char *payload,
size_t length, uint8_t qos,
bool retain)
final {
113#if defined(USE_MQTT_IDF_ENQUEUE)
116 return esp_mqtt_client_enqueue(
handler_.get(), topic, payload,
length, qos, retain,
true) != -1;
120 return esp_mqtt_client_publish(
handler_.get(), topic, payload,
length, qos, retain) != -1;
138 void operator()(esp_mqtt_client *client_handler) { esp_mqtt_client_destroy(client_handler); }
void set_keep_alive(uint16_t keep_alive) final
void set_on_message(std::function< on_message_callback_t > &&callback) final
CallbackManager< on_connect_callback_t > on_connect_
CallbackManager< on_disconnect_callback_t > on_disconnect_
void set_ca_certificate(const std::string &cert)
std::queue< Event > mqtt_events_
CallbackManager< on_message_callback_t > on_message_
static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data)
static - Dispatch event to instance method
void set_client_id(const char *client_id) final
optional< std::string > ca_certificate_
CallbackManager< on_subscribe_callback_t > on_subscribe_
void set_on_publish(std::function< on_publish_user_callback_t > &&callback) final
void set_server(const char *host, uint16_t port) final
void set_cl_key(const std::string &key)
void set_on_connect(std::function< on_connect_callback_t > &&callback) final
void set_will(const char *topic, uint8_t qos, bool retain, const char *payload) final
bool subscribe(const char *topic, uint8_t qos) final
void set_server(network::IPAddress ip, uint16_t port) final
void set_cl_certificate(const std::string &cert)
CallbackManager< on_unsubscribe_callback_t > on_unsubscribe_
esp_mqtt_client_config_t mqtt_cfg_
void set_skip_cert_cn_check(bool skip_check)
void set_on_unsubscribe(std::function< on_unsubscribe_callback_t > &&callback) final
bool publish(const char *topic, const char *payload, size_t length, uint8_t qos, bool retain) final
CallbackManager< on_publish_user_callback_t > on_publish_
void set_clean_session(bool clean_session) final
bool unsubscribe(const char *topic) final
static const size_t MQTT_BUFFER_SIZE
void set_on_subscribe(std::function< on_subscribe_callback_t > &&callback) final
optional< std::string > cl_key_
void mqtt_event_handler_(const Event &event)
bool connected() const final
optional< std::string > cl_certificate_
void set_on_disconnect(std::function< on_disconnect_callback_t > &&callback) final
void set_credentials(const char *username, const char *password) final
std::unique_ptr< esp_mqtt_client, MqttClientDeleter > ClientHandler_
virtual bool publish(const char *topic, const char *payload, size_t length, uint8_t qos, bool retain)=0
Providing packet encoding functions for exchanging data with a remote host.
esp_mqtt_event_id_t event_id
esp_mqtt_error_codes_t error_handle
Event(const esp_mqtt_event_t &event)
void operator()(esp_mqtt_client *client_handler)