29 void set_will(
const char *topic, uint8_t qos,
bool retain,
const char *payload)
final {
38 this->
host_ = ip.str();
60 void set_on_publish(std::function<on_publish_user_callback_t> &&callback)
final {
68 esp_mqtt_client_start(
handler_.get());
74 esp_mqtt_client_disconnect(
handler_.get());
77 bool subscribe(
const char *topic, uint8_t qos)
final {
78 return esp_mqtt_client_subscribe(
handler_.get(), topic, qos) != -1;
80 bool unsubscribe(
const char *topic)
final {
return esp_mqtt_client_unsubscribe(
handler_.get(), topic) != -1; }
82 bool publish(
const char *topic,
const char *payload,
size_t length, uint8_t qos,
bool retain)
final {
83 #if defined(USE_MQTT_IDF_ENQUEUE) 86 return esp_mqtt_client_enqueue(
handler_.get(), topic, payload, length, qos, retain,
true) != -1;
90 return esp_mqtt_client_publish(
handler_.get(), topic, payload, length, qos, retain) != -1;
103 static void mqtt_event_handler(
void *handler_args, esp_event_base_t base, int32_t event_id,
void *event_data);
106 void operator()(esp_mqtt_client *client_handler) { esp_mqtt_client_destroy(client_handler); }
void set_on_connect(std::function< on_connect_callback_t > &&callback) final
CallbackManager< on_subscribe_callback_t > on_subscribe_
bool connected() const final
void set_on_unsubscribe(std::function< on_unsubscribe_callback_t > &&callback) final
void set_on_message(std::function< on_message_callback_t > &&callback) final
void operator()(esp_mqtt_client *client_handler)
void set_server(network::IPAddress ip, uint16_t port) final
void mqtt_event_handler_(const esp_mqtt_event_t &event)
CallbackManager< on_unsubscribe_callback_t > on_unsubscribe_
optional< std::string > ca_certificate_
void set_clean_session(bool clean_session) final
CallbackManager< on_publish_user_callback_t > on_publish_
CallbackManager< on_message_callback_t > on_message_
void set_credentials(const char *username, const char *password) final
bool unsubscribe(const char *topic) final
CallbackManager< on_connect_callback_t > on_connect_
void set_skip_cert_cn_check(bool skip_check)
void set_on_publish(std::function< on_publish_user_callback_t > &&callback) final
bool publish(const char *topic, const char *payload, size_t length, uint8_t qos, bool retain) final
esp_mqtt_client_config_t mqtt_cfg_
void set_on_disconnect(std::function< on_disconnect_callback_t > &&callback) final
void set_keep_alive(uint16_t keep_alive) final
bool subscribe(const char *topic, uint8_t qos) final
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_ca_certificate(const std::string &cert)
void set_client_id(const char *client_id) final
std::queue< esp_mqtt_event_t > mqtt_events_
void set_will(const char *topic, uint8_t qos, bool retain, const char *payload) final
void set_on_subscribe(std::function< on_subscribe_callback_t > &&callback) final
void set_server(const char *host, uint16_t port) final
CallbackManager< on_disconnect_callback_t > on_disconnect_
static const size_t MQTT_BUFFER_SIZE
virtual bool publish(const char *topic, const char *payload, size_t length, uint8_t qos, bool retain)=0
std::unique_ptr< esp_mqtt_client, MqttClientDeleter > ClientHandler_