#ifndef QOSPACKETQUEUE_H #define QOSPACKETQUEUE_H #include "list" #include "forward_declarations.h" #include "types.h" class QoSPacketQueue { std::list> queue; // Using list because it's easiest to maintain order [MQTT-4.6.0-6] ssize_t qosQueueBytes = 0; public: void erase(const uint16_t packet_id); size_t size() const; size_t getByteSize() const; std::shared_ptr queuePacket(const MqttPacket &p, uint16_t id); std::shared_ptr queuePacket(const Publish &pub, uint16_t id); std::list>::const_iterator begin() const; std::list>::const_iterator end() const; }; #endif // QOSPACKETQUEUE_H