mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 13:33:30 +02:00
Magic number
This commit is contained in:
parent
91c779ddd8
commit
f1a9aba704
3 changed files with 7 additions and 6 deletions
|
@ -124,7 +124,8 @@ static const uint32_t RELIABILITY_BIT_MASK = uint32_t(1) << (SEQUENCE_NUMBER_BIT
|
|||
static const uint32_t MESSAGE_BIT_MASK = uint32_t(1) << (SEQUENCE_NUMBER_BITS - 3);
|
||||
static const uint32_t BIT_FIELD_MASK = CONTROL_BIT_MASK | RELIABILITY_BIT_MASK | MESSAGE_BIT_MASK;
|
||||
|
||||
static const uint32_t PACKET_POSITION_MASK = uint32_t(0x03) << 30;
|
||||
static const uint8_t PACKET_POSITION_OFFSET = 30;
|
||||
static const uint32_t PACKET_POSITION_MASK = uint32_t(0x03) << PACKET_POSITION_OFFSET;
|
||||
static const uint32_t MESSAGE_NUMBER_MASK = ~PACKET_POSITION_MASK;
|
||||
|
||||
void Packet::readHeader() const {
|
||||
|
@ -139,7 +140,7 @@ void Packet::readHeader() const {
|
|||
if (_isPartOfMessage) {
|
||||
MessageNumberAndBitField* messageNumberAndBitField = seqNumBitField + 1;
|
||||
_messageNumber = *messageNumberAndBitField & MESSAGE_NUMBER_MASK;
|
||||
_packetPosition = static_cast<PacketPosition>(*messageNumberAndBitField >> 30);
|
||||
_packetPosition = static_cast<PacketPosition>(*messageNumberAndBitField >> PACKET_POSITION_OFFSET);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,6 +165,6 @@ void Packet::writeHeader() const {
|
|||
|
||||
MessageNumberAndBitField* messageNumberAndBitField = seqNumBitField + 1;
|
||||
*messageNumberAndBitField = _messageNumber;
|
||||
*messageNumberAndBitField |= _packetPosition << 30;
|
||||
*messageNumberAndBitField |= _packetPosition << PACKET_POSITION_OFFSET;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ public:
|
|||
// NOTE: The SequenceNumber is only actually 29 bits to leave room for a bit field
|
||||
using SequenceNumberAndBitField = uint32_t;
|
||||
|
||||
// NOTE: The MessageNumber is only actually 29 bits to leave room for a bit field
|
||||
// NOTE: The MessageNumber is only actually 30 bits to leave room for a bit field
|
||||
using MessageNumber = uint32_t;
|
||||
using MessageNumberAndBitField = uint32_t;
|
||||
|
||||
|
@ -83,7 +83,7 @@ private:
|
|||
// Simple holders to prevent multiple reading and bitwise ops
|
||||
mutable bool _isReliable { false };
|
||||
mutable bool _isPartOfMessage { false };
|
||||
mutable SequenceNumber _sequenceNumber;
|
||||
mutable SequenceNumber _sequenceNumber { 0 };
|
||||
mutable PacketPosition _packetPosition { PacketPosition::ONLY };
|
||||
mutable MessageNumber _messageNumber { 0 };
|
||||
};
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
using namespace udt;
|
||||
|
||||
|
||||
PacketQueue::MessageNumber PacketQueue::getNextMessageNumber() {
|
||||
MessageNumber PacketQueue::getNextMessageNumber() {
|
||||
static const MessageNumber MAX_MESSAGE_NUMBER = MessageNumber(1) << MESSAGE_NUMBER_BITS;
|
||||
_currentMessageNumber = (_currentMessageNumber + 1) % MAX_MESSAGE_NUMBER;
|
||||
return _currentMessageNumber;
|
||||
|
|
Loading…
Reference in a new issue