47 std::uint32_t
getAck()
const;
62 static bool isPacketinAck(std::uint32_t sequence, std::uint32_t ack,
63 std::uint32_t ackBits);
66 std::uint32_t _nextSequence;
67 bool _hasReceivedPacket;
68 std::uint32_t _lastReceived;
69 std::uint32_t _receivedBits;
Generates outgoing sequence numbers and tracks received ones.
Definition PacketTracker.hpp:23
PacketReceiveRes onPacketReceived(std::uint32_t sequence)
Records a received sequence number.
Definition PacketTracker.cpp:10
static bool isPacketinAck(std::uint32_t sequence, std::uint32_t ack, std::uint32_t ackBits)
Tells whether an ack and its bitfield cover a sequence number.
Definition PacketTracker.cpp:46
std::uint32_t getAck() const
Returns the latest received sequence number.
Definition PacketTracker.cpp:61
std::uint32_t getAckBits() const
Returns the bitfield of the 32 sequences before the latest one.
Definition PacketTracker.cpp:65
PacketTracker()
Creates a tracker whose first sequence number is 1.
Definition PacketTracker.cpp:4
std::uint32_t getNextSequence()
Returns the sequence number for the next outgoing packet.
Definition PacketTracker.cpp:8
PacketReceiveRes
Classification of a received packet sequence number.
Definition PacketTracker.hpp:13
@ New
Newer than every packet received so far.
@ Out
Older than the latest one but inside the 32 packet window.
@ TooOld
Older than the 32 packet window.