mirror of
https://github.com/lubosz/overte.git
synced 2025-04-23 20:34:07 +02:00
Implement Packet::setSequenceNumber
This commit is contained in:
parent
71004ef519
commit
ca99699674
3 changed files with 8 additions and 2 deletions
|
@ -112,6 +112,11 @@ Packet& Packet::operator=(Packet&& other) {
|
|||
return *this;
|
||||
}
|
||||
|
||||
void Packet::setSequenceNumber(SequenceNumber sequenceNumber) {
|
||||
_sequenceNumber = sequenceNumber;
|
||||
writeHeader();
|
||||
}
|
||||
|
||||
static const uint32_t CONTROL_BIT_MASK = 1 << (sizeof(Packet::SequenceNumberAndBitField) - 1);
|
||||
static const uint32_t RELIABILITY_BIT_MASK = 1 << (sizeof(Packet::SequenceNumberAndBitField) - 2);
|
||||
static const uint32_t MESSAGE_BIT_MASK = 1 << (sizeof(Packet::SequenceNumberAndBitField) - 3);
|
||||
|
@ -130,6 +135,7 @@ void Packet::writeHeader() {
|
|||
// grab pointer to current SequenceNumberAndBitField
|
||||
SequenceNumberAndBitField* seqNumBitField = reinterpret_cast<SequenceNumberAndBitField*>(_packet.get());
|
||||
|
||||
// 0 for data packets
|
||||
*seqNumBitField &= ~CONTROL_BIT_MASK;
|
||||
|
||||
if (_isPartOfMessage) {
|
||||
|
|
|
@ -52,7 +52,7 @@ public:
|
|||
bool isReliable() const { return _isReliable; }
|
||||
SequenceNumber getSequenceNumber() const { return _sequenceNumber; }
|
||||
|
||||
void setSequenceNumber();
|
||||
void setSequenceNumber(SequenceNumber sequenceNumber);
|
||||
|
||||
protected:
|
||||
Packet(qint64 size, bool isReliable = false, bool isPartOfMessage = false);
|
||||
|
|
|
@ -131,7 +131,7 @@ void SendQueue::sendNextPacket() {
|
|||
_lastSendTimestamp = sendTime;
|
||||
|
||||
if (_nextPacket) {
|
||||
_nextPacket->writeSequenceNumber(++_currentSequenceNumber);
|
||||
_nextPacket->setSequenceNumber(++_currentSequenceNumber);
|
||||
sendPacket(*_nextPacket);
|
||||
_atomicCurrentSequenceNumber.store((uint32_t) _currentSequenceNumber);
|
||||
|
||||
|
|
Loading…
Reference in a new issue