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()) {
return 0;
}
@ -270,7 +270,7 @@ qint64 LimitedNodeList::sendUnreliablePacket(NLPacket& packet, const Node& desti
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) {
Q_ASSERT_X(!packet.isReliable(), "LimitedNodeList::sendUnreliablePacket",
"Trying to send a reliable packet unreliably.");

View file

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

View file

@ -112,7 +112,7 @@ Packet& Packet::operator=(Packet&& other) {
return *this;
}
void Packet::setSequenceNumber(SequenceNumber sequenceNumber) {
void Packet::writeSequenceNumber(SequenceNumber sequenceNumber) const {
_sequenceNumber = sequenceNumber;
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 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());
Q_ASSERT_X((bool) (seqNumBitField & CONTROL_BIT_MASK),
"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
}
void Packet::writeHeader() {
void Packet::writeHeader() const {
// grab pointer to current SequenceNumberAndBitField
SequenceNumberAndBitField* seqNumBitField = reinterpret_cast<SequenceNumberAndBitField*>(_packet.get());

View file

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

View file

@ -139,7 +139,7 @@ void SendQueue::sendNextPacket() {
if (_nextPacket) {
// Write packet's sequence number and send it off
_nextPacket->setSequenceNumber(getNextSequenceNumber());
_nextPacket->writeSequenceNumber(getNextSequenceNumber());
sendPacket(*_nextPacket);
// 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");
// write the correct sequence number to the Packet here
packet.setSequenceNumber(_currentUnreliableSequenceNumber);
packet.writeSequenceNumber(_currentUnreliableSequenceNumber);
return writeDatagram(packet.getData(), packet.getDataSize(), sockAddr);
}

View file

@ -44,7 +44,7 @@ public:
quint16 localPort() const { return _udpSocket.localPort(); }
// 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 writeDatagram(const char* data, qint64 size, const HifiSockAddr& sockAddr);
qint64 writeDatagram(const QByteArray& datagram, const HifiSockAddr& sockAddr);
@ -72,8 +72,6 @@ private:
SequenceNumber _currentUnreliableSequenceNumber;
std::unordered_map<HifiSockAddr, BasePacketHandler> _unfilteredHandlers;
std::unordered_map<HifiSockAddr, SequenceNumber> _packetSequenceNumbers;
std::unordered_map<HifiSockAddr, Connection*> _connectionsHash;
int32_t _synInterval = 10; // 10ms