12 #ifndef hifi_PacketQueue_h
13 #define hifi_PacketQueue_h
26 using MessageNumber = uint32_t;
29 using Mutex = std::recursive_mutex;
30 using LockGuard = std::lock_guard<Mutex>;
31 using PacketPointer = std::unique_ptr<Packet>;
32 using PacketListPointer = std::unique_ptr<PacketList>;
33 using RawChannel = std::list<PacketPointer>;
34 using Channel = std::unique_ptr<RawChannel>;
35 using Channels = std::list<Channel>;
38 PacketQueue(MessageNumber messageNumber = 0);
39 void queuePacket(PacketPointer packet);
40 void queuePacketList(PacketListPointer packetList);
43 PacketPointer takePacket();
45 Mutex& getLock() {
return _packetsLock; }
47 MessageNumber getCurrentMessageNumber()
const {
return _currentMessageNumber; }
50 MessageNumber getNextMessageNumber();
52 MessageNumber _currentMessageNumber { 0 };
54 mutable Mutex _packetsLock;
57 Channels::iterator _currentChannel;
58 unsigned int _channelsVisitedCount { 0 };