From 6d5031290c90b22f2729f67f7a58784091029e50 Mon Sep 17 00:00:00 2001 From: proddy Date: Fri, 8 Jan 2021 21:02:48 +0100 Subject: [PATCH] replace list with deque --- src/mqtt.cpp | 2 +- src/mqtt.h | 11 +++-------- src/telegram.h | 25 +++++++------------------ 3 files changed, 11 insertions(+), 27 deletions(-) diff --git a/src/mqtt.cpp b/src/mqtt.cpp index d9a2806dd..2c14dd4ae 100644 --- a/src/mqtt.cpp +++ b/src/mqtt.cpp @@ -40,7 +40,7 @@ uint8_t Mqtt::ha_climate_format_; bool Mqtt::ha_enabled_; // static emsesp::queue mqtt_messages_ = emsesp::queue(MAX_MQTT_MESSAGES); -std::list Mqtt::mqtt_messages_; +std::deque Mqtt::mqtt_messages_; std::vector Mqtt::mqtt_subfunctions_; diff --git a/src/mqtt.h b/src/mqtt.h index 03c6cf6f9..57efbe3b2 100644 --- a/src/mqtt.h +++ b/src/mqtt.h @@ -24,7 +24,7 @@ #include #include -#include +#include #include #include @@ -108,12 +108,7 @@ class Mqtt { static void publish_ha(const std::string & topic, const JsonObject & payload); static void publish_ha(const __FlashStringHelper * topic, const JsonObject & payload); - static void register_mqtt_ha_sensor(uint8_t type, - uint8_t tag, - const __FlashStringHelper * name, - const uint8_t device_type, - const __FlashStringHelper * entity, - const uint8_t uom); + static void register_mqtt_ha_sensor(uint8_t type, uint8_t tag, const __FlashStringHelper * name, const uint8_t device_type, const __FlashStringHelper * entity, const uint8_t uom); static void register_command(const uint8_t device_type, const __FlashStringHelper * cmd, cmdfunction_p cb); static void show_topic_handlers(uuid::console::Shell & shell, const uint8_t device_type); @@ -204,7 +199,7 @@ class Mqtt { packet_id_ = 0; } }; - static std::list mqtt_messages_; + static std::deque mqtt_messages_; private: static uuid::log::Logger logger_; diff --git a/src/telegram.h b/src/telegram.h index 6a12a029d..fca7e8b75 100644 --- a/src/telegram.h +++ b/src/telegram.h @@ -20,6 +20,7 @@ #define EMSESP_TELEGRAM_H #include +#include // UART drivers #if defined(ESP8266) @@ -57,13 +58,7 @@ namespace emsesp { class Telegram { public: - Telegram(const uint8_t operation, - const uint8_t src, - const uint8_t dest, - const uint16_t type_id, - const uint8_t offset, - const uint8_t * message_data, - const uint8_t message_length); + Telegram(const uint8_t operation, const uint8_t src, const uint8_t dest, const uint16_t type_id, const uint8_t offset, const uint8_t * message_data, const uint8_t message_length); ~Telegram() = default; const uint8_t operation; // is Operation mode @@ -242,7 +237,7 @@ class RxService : public EMSbus { } }; - const std::list queue() const { + const std::deque queue() const { return rx_telegrams_; } @@ -264,7 +259,7 @@ class RxService : public EMSbus { uint32_t telegram_count_ = 0; // # Rx received uint32_t telegram_error_count_ = 0; // # Rx CRC errors std::shared_ptr rx_telegram; // the incoming Rx telegram - std::list rx_telegrams_; // the Rx Queue + std::deque rx_telegrams_; // the Rx Queue // emsesp::queue rx_telegrams_ = emsesp::queue(MAX_RX_TELEGRAMS); // the Rx Queue }; @@ -278,13 +273,7 @@ class TxService : public EMSbus { void start(); void send(); - void add(const uint8_t operation, - const uint8_t dest, - const uint16_t type_id, - const uint8_t offset, - uint8_t * message_data, - const uint8_t message_length, - const bool front = false); + void add(const uint8_t operation, const uint8_t dest, const uint16_t type_id, const uint8_t offset, uint8_t * message_data, const uint8_t message_length, const bool front = false); void add(const uint8_t operation, const uint8_t * data, const uint8_t length, const bool front = false); void read_request(const uint16_t type_id, const uint8_t dest, const uint8_t offset = 0); void send_raw(const char * telegram_data); @@ -366,7 +355,7 @@ class TxService : public EMSbus { } }; - const std::list queue() const { + const std::deque queue() const { return tx_telegrams_; } @@ -389,7 +378,7 @@ class TxService : public EMSbus { #endif private: - std::list tx_telegrams_; // the Tx queue + std::deque tx_telegrams_; // the Tx queue // emsesp::queue tx_telegrams_ = emsesp::queue(MAX_TX_TELEGRAMS); // the Tx Queue uint32_t telegram_read_count_ = 0; // # Tx successful reads