mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 22:16:39 +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 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 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;
|
static const uint32_t MESSAGE_NUMBER_MASK = ~PACKET_POSITION_MASK;
|
||||||
|
|
||||||
void Packet::readHeader() const {
|
void Packet::readHeader() const {
|
||||||
|
@ -139,7 +140,7 @@ void Packet::readHeader() const {
|
||||||
if (_isPartOfMessage) {
|
if (_isPartOfMessage) {
|
||||||
MessageNumberAndBitField* messageNumberAndBitField = seqNumBitField + 1;
|
MessageNumberAndBitField* messageNumberAndBitField = seqNumBitField + 1;
|
||||||
_messageNumber = *messageNumberAndBitField & MESSAGE_NUMBER_MASK;
|
_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* messageNumberAndBitField = seqNumBitField + 1;
|
||||||
*messageNumberAndBitField = _messageNumber;
|
*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
|
// NOTE: The SequenceNumber is only actually 29 bits to leave room for a bit field
|
||||||
using SequenceNumberAndBitField = uint32_t;
|
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 MessageNumber = uint32_t;
|
||||||
using MessageNumberAndBitField = uint32_t;
|
using MessageNumberAndBitField = uint32_t;
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ private:
|
||||||
// Simple holders to prevent multiple reading and bitwise ops
|
// Simple holders to prevent multiple reading and bitwise ops
|
||||||
mutable bool _isReliable { false };
|
mutable bool _isReliable { false };
|
||||||
mutable bool _isPartOfMessage { false };
|
mutable bool _isPartOfMessage { false };
|
||||||
mutable SequenceNumber _sequenceNumber;
|
mutable SequenceNumber _sequenceNumber { 0 };
|
||||||
mutable PacketPosition _packetPosition { PacketPosition::ONLY };
|
mutable PacketPosition _packetPosition { PacketPosition::ONLY };
|
||||||
mutable MessageNumber _messageNumber { 0 };
|
mutable MessageNumber _messageNumber { 0 };
|
||||||
};
|
};
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
using namespace udt;
|
using namespace udt;
|
||||||
|
|
||||||
|
|
||||||
PacketQueue::MessageNumber PacketQueue::getNextMessageNumber() {
|
MessageNumber PacketQueue::getNextMessageNumber() {
|
||||||
static const MessageNumber MAX_MESSAGE_NUMBER = MessageNumber(1) << MESSAGE_NUMBER_BITS;
|
static const MessageNumber MAX_MESSAGE_NUMBER = MessageNumber(1) << MESSAGE_NUMBER_BITS;
|
||||||
_currentMessageNumber = (_currentMessageNumber + 1) % MAX_MESSAGE_NUMBER;
|
_currentMessageNumber = (_currentMessageNumber + 1) % MAX_MESSAGE_NUMBER;
|
||||||
return _currentMessageNumber;
|
return _currentMessageNumber;
|
||||||
|
|
Loading…
Reference in a new issue