diff --git a/include/mqtt_client.h b/include/mqtt_client.h index 203bdab..192f5d0 100644 --- a/include/mqtt_client.h +++ b/include/mqtt_client.h @@ -348,6 +348,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 fed7e7b..7dcd3d5 100644 --- a/mqtt_client.c +++ b/mqtt_client.c @@ -1757,3 +1757,22 @@ static void esp_mqtt_client_dispatch_tls_error(esp_mqtt_client_handle_t client) #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; +}