qospacketqueue.h
755 Bytes
#ifndef QOSPACKETQUEUE_H
#define QOSPACKETQUEUE_H
#include "list"
#include "forward_declarations.h"
#include "types.h"
class QoSPacketQueue
{
std::list<std::shared_ptr<MqttPacket>> 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<MqttPacket> queuePacket(const MqttPacket &p, uint16_t id, char new_max_qos);
std::shared_ptr<MqttPacket> queuePacket(const Publish &pub, uint16_t id);
std::list<std::shared_ptr<MqttPacket>>::const_iterator begin() const;
std::list<std::shared_ptr<MqttPacket>>::const_iterator end() const;
};
#endif // QOSPACKETQUEUE_H