diff --git a/include/mqtt_client.h b/include/mqtt_client.h index 431086c..2d8c376 100644 --- a/include/mqtt_client.h +++ b/include/mqtt_client.h @@ -358,6 +358,14 @@ esp_err_t esp_mqtt_set_config(esp_mqtt_client_handle_t client, const esp_mqtt_cl */ esp_err_t esp_mqtt_client_register_event(esp_mqtt_client_handle_t client, esp_mqtt_event_id_t event, esp_event_handler_t event_handler, void* event_handler_arg); +/** + * @brief Get outbox size + * + * @param client mqtt client handle + * @return outbox size + */ +int esp_mqtt_client_get_outbox_size(esp_mqtt_client_handle_t client); + #ifdef __cplusplus } #endif //__cplusplus diff --git a/mqtt_client.c b/mqtt_client.c index 46fdebc..f1221da 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -1761,3 +1761,22 @@ static void esp_mqtt_client_dispatch_transport_error(esp_mqtt_client_handle_t cl #endif esp_mqtt_dispatch_event_with_msgid(client); } + +int esp_mqtt_client_get_outbox_size(esp_mqtt_client_handle_t client) +{ + int outbox_size = 0; + + if (client == NULL) { + return 0; + } + + MQTT_API_LOCK(client); + + if (client->outbox) { + outbox_size = outbox_get_size(client->outbox); + } + + MQTT_API_UNLOCK(client); + + return outbox_size; +}