Restore const, make helper memebers mutable

This commit is contained in:
Atlante45 2015-07-28 16:02:33 -07:00
parent 8ebdb6d154
commit 64e1281d47
7 changed files with 19 additions and 19 deletions

View file

@ -262,7 +262,7 @@ void LimitedNodeList::fillPacketHeader(const NLPacket& packet, const QUuid& conn
} }
} }
qint64 LimitedNodeList::sendUnreliablePacket(NLPacket& packet, const Node& destinationNode) { qint64 LimitedNodeList::sendUnreliablePacket(const NLPacket& packet, const Node& destinationNode) {
if (!destinationNode.getActiveSocket()) { if (!destinationNode.getActiveSocket()) {
return 0; return 0;
} }
@ -270,7 +270,7 @@ qint64 LimitedNodeList::sendUnreliablePacket(NLPacket& packet, const Node& desti
return sendUnreliablePacket(packet, *destinationNode.getActiveSocket(), destinationNode.getConnectionSecret()); return sendUnreliablePacket(packet, *destinationNode.getActiveSocket(), destinationNode.getConnectionSecret());
} }
qint64 LimitedNodeList::sendUnreliablePacket(NLPacket& packet, const HifiSockAddr& sockAddr, qint64 LimitedNodeList::sendUnreliablePacket(const NLPacket& packet, const HifiSockAddr& sockAddr,
const QUuid& connectionSecret) { const QUuid& connectionSecret) {
Q_ASSERT_X(!packet.isReliable(), "LimitedNodeList::sendUnreliablePacket", Q_ASSERT_X(!packet.isReliable(), "LimitedNodeList::sendUnreliablePacket",
"Trying to send a reliable packet unreliably."); "Trying to send a reliable packet unreliably.");

View file

@ -116,8 +116,8 @@ public:
PacketReceiver& getPacketReceiver() { return *_packetReceiver; } PacketReceiver& getPacketReceiver() { return *_packetReceiver; }
qint64 sendUnreliablePacket(NLPacket& packet, const Node& destinationNode); qint64 sendUnreliablePacket(const NLPacket& packet, const Node& destinationNode);
qint64 sendUnreliablePacket(NLPacket& packet, const HifiSockAddr& sockAddr, qint64 sendUnreliablePacket(const NLPacket& packet, const HifiSockAddr& sockAddr,
const QUuid& connectionSecret = QUuid()); const QUuid& connectionSecret = QUuid());
qint64 sendPacket(std::unique_ptr<NLPacket> packet, const Node& destinationNode); qint64 sendPacket(std::unique_ptr<NLPacket> packet, const Node& destinationNode);

View file

@ -112,7 +112,7 @@ Packet& Packet::operator=(Packet&& other) {
return *this; return *this;
} }
void Packet::setSequenceNumber(SequenceNumber sequenceNumber) { void Packet::writeSequenceNumber(SequenceNumber sequenceNumber) const {
_sequenceNumber = sequenceNumber; _sequenceNumber = sequenceNumber;
writeHeader(); writeHeader();
} }
@ -122,7 +122,7 @@ static const uint32_t RELIABILITY_BIT_MASK = 1 << (sizeof(Packet::SequenceNumber
static const uint32_t MESSAGE_BIT_MASK = 1 << (sizeof(Packet::SequenceNumberAndBitField) - 3); static const uint32_t MESSAGE_BIT_MASK = 1 << (sizeof(Packet::SequenceNumberAndBitField) - 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;
void Packet::readHeader() { void Packet::readHeader() const {
SequenceNumberAndBitField seqNumBitField = *reinterpret_cast<SequenceNumberAndBitField*>(_packet.get()); SequenceNumberAndBitField seqNumBitField = *reinterpret_cast<SequenceNumberAndBitField*>(_packet.get());
Q_ASSERT_X((bool) (seqNumBitField & CONTROL_BIT_MASK), Q_ASSERT_X((bool) (seqNumBitField & CONTROL_BIT_MASK),
"Packet::readHeader()", "This should be a data packet"); "Packet::readHeader()", "This should be a data packet");
@ -131,7 +131,7 @@ void Packet::readHeader() {
_sequenceNumber = SequenceNumber{ seqNumBitField & ~BIT_FIELD_MASK }; // Remove the bit field _sequenceNumber = SequenceNumber{ seqNumBitField & ~BIT_FIELD_MASK }; // Remove the bit field
} }
void Packet::writeHeader() { void Packet::writeHeader() const {
// grab pointer to current SequenceNumberAndBitField // grab pointer to current SequenceNumberAndBitField
SequenceNumberAndBitField* seqNumBitField = reinterpret_cast<SequenceNumberAndBitField*>(_packet.get()); SequenceNumberAndBitField* seqNumBitField = reinterpret_cast<SequenceNumberAndBitField*>(_packet.get());

View file

@ -52,7 +52,7 @@ public:
bool isReliable() const { return _isReliable; } bool isReliable() const { return _isReliable; }
SequenceNumber getSequenceNumber() const { return _sequenceNumber; } SequenceNumber getSequenceNumber() const { return _sequenceNumber; }
void setSequenceNumber(SequenceNumber sequenceNumber); void writeSequenceNumber(SequenceNumber sequenceNumber) const;
protected: protected:
Packet(qint64 size, bool isReliable = false, bool isPartOfMessage = false); Packet(qint64 size, bool isReliable = false, bool isPartOfMessage = false);
@ -63,13 +63,15 @@ protected:
Packet& operator=(const Packet& other); Packet& operator=(const Packet& other);
Packet& operator=(Packet&& other); Packet& operator=(Packet&& other);
private:
// Header readers - these read data to member variables after pulling packet off wire // Header readers - these read data to member variables after pulling packet off wire
void readHeader(); void readHeader() const;
void writeHeader(); void writeHeader() const;
bool _isReliable { false }; // Simple holders to prevent multiple reading and bitwise ops
bool _isPartOfMessage { false }; mutable bool _isReliable { false };
SequenceNumber _sequenceNumber; mutable bool _isPartOfMessage { false };
mutable SequenceNumber _sequenceNumber;
}; };
} // namespace udt } // namespace udt

View file

@ -139,7 +139,7 @@ void SendQueue::sendNextPacket() {
if (_nextPacket) { if (_nextPacket) {
// Write packet's sequence number and send it off // Write packet's sequence number and send it off
_nextPacket->setSequenceNumber(getNextSequenceNumber()); _nextPacket->writeSequenceNumber(getNextSequenceNumber());
sendPacket(*_nextPacket); sendPacket(*_nextPacket);
// Insert the packet we have just sent in the sent list // Insert the packet we have just sent in the sent list

View file

@ -67,11 +67,11 @@ void Socket::setBufferSizes(int numBytes) {
} }
} }
qint64 Socket::writePacket(Packet& packet, const HifiSockAddr& sockAddr) { qint64 Socket::writePacket(const Packet& packet, const HifiSockAddr& sockAddr) {
Q_ASSERT_X(!packet.isReliable(), "Socket::writePacket", "Cannot send a reliable packet unreliably"); Q_ASSERT_X(!packet.isReliable(), "Socket::writePacket", "Cannot send a reliable packet unreliably");
// write the correct sequence number to the Packet here // write the correct sequence number to the Packet here
packet.setSequenceNumber(_currentUnreliableSequenceNumber); packet.writeSequenceNumber(_currentUnreliableSequenceNumber);
return writeDatagram(packet.getData(), packet.getDataSize(), sockAddr); return writeDatagram(packet.getData(), packet.getDataSize(), sockAddr);
} }

View file

@ -44,7 +44,7 @@ public:
quint16 localPort() const { return _udpSocket.localPort(); } quint16 localPort() const { return _udpSocket.localPort(); }
// Simple functions writing to the socket with no processing // Simple functions writing to the socket with no processing
qint64 writePacket(Packet& packet, const HifiSockAddr& sockAddr); qint64 writePacket(const Packet& packet, const HifiSockAddr& sockAddr);
qint64 writePacket(std::unique_ptr<Packet> packet, const HifiSockAddr& sockAddr); qint64 writePacket(std::unique_ptr<Packet> packet, const HifiSockAddr& sockAddr);
qint64 writeDatagram(const char* data, qint64 size, const HifiSockAddr& sockAddr); qint64 writeDatagram(const char* data, qint64 size, const HifiSockAddr& sockAddr);
qint64 writeDatagram(const QByteArray& datagram, const HifiSockAddr& sockAddr); qint64 writeDatagram(const QByteArray& datagram, const HifiSockAddr& sockAddr);
@ -72,8 +72,6 @@ private:
SequenceNumber _currentUnreliableSequenceNumber; SequenceNumber _currentUnreliableSequenceNumber;
std::unordered_map<HifiSockAddr, BasePacketHandler> _unfilteredHandlers; std::unordered_map<HifiSockAddr, BasePacketHandler> _unfilteredHandlers;
std::unordered_map<HifiSockAddr, SequenceNumber> _packetSequenceNumbers;
std::unordered_map<HifiSockAddr, Connection*> _connectionsHash; std::unordered_map<HifiSockAddr, Connection*> _connectionsHash;
int32_t _synInterval = 10; // 10ms int32_t _synInterval = 10; // 10ms