mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-08-09 16:52:10 +02:00
Fix bandwidth calculations not including the full size of reliable ordered messages
For reliable ordered messages, we were: * only tracking bandwidth for the first few packets of a message IF a message handler opted in to receiving pending (unfinished) messages. * tracking the entire thing all at once, when the entire messages was received.
This commit is contained in:
parent
b6620f128b
commit
473a7e9593
1 changed files with 18 additions and 2 deletions
|
@ -215,6 +215,15 @@ void PacketReceiver::handleVerifiedPacket(std::unique_ptr<udt::Packet> packet) {
|
||||||
_inPacketCount += 1;
|
_inPacketCount += 1;
|
||||||
_inByteCount += nlPacket->size();
|
_inByteCount += nlPacket->size();
|
||||||
|
|
||||||
|
SharedNodePointer matchingNode;
|
||||||
|
NodeType_t nodeType = NodeType::Unassigned;
|
||||||
|
if (!nlPacket->getSourceID().isNull()) {
|
||||||
|
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
matchingNode = nodeList->nodeWithUUID(nlPacket->getSourceID());
|
||||||
|
nodeType = matchingNode->getType();
|
||||||
|
}
|
||||||
|
emit dataReceived(nodeType, nlPacket->getPayloadSize());
|
||||||
|
|
||||||
handleVerifiedMessage(receivedMessage, true);
|
handleVerifiedMessage(receivedMessage, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,6 +233,15 @@ void PacketReceiver::handleVerifiedMessagePacket(std::unique_ptr<udt::Packet> pa
|
||||||
_inPacketCount += 1;
|
_inPacketCount += 1;
|
||||||
_inByteCount += nlPacket->size();
|
_inByteCount += nlPacket->size();
|
||||||
|
|
||||||
|
SharedNodePointer matchingNode;
|
||||||
|
NodeType_t nodeType = NodeType::Unassigned;
|
||||||
|
if (!nlPacket->getSourceID().isNull()) {
|
||||||
|
auto nodeList = DependencyManager::get<LimitedNodeList>();
|
||||||
|
matchingNode = nodeList->nodeWithUUID(nlPacket->getSourceID());
|
||||||
|
nodeType = matchingNode->getType();
|
||||||
|
}
|
||||||
|
emit dataReceived(nodeType, nlPacket->getPayloadSize());
|
||||||
|
|
||||||
auto key = std::pair<HifiSockAddr, udt::Packet::MessageNumber>(nlPacket->getSenderSockAddr(), nlPacket->getMessageNumber());
|
auto key = std::pair<HifiSockAddr, udt::Packet::MessageNumber>(nlPacket->getSenderSockAddr(), nlPacket->getMessageNumber());
|
||||||
auto it = _pendingMessages.find(key);
|
auto it = _pendingMessages.find(key);
|
||||||
QSharedPointer<ReceivedMessage> message;
|
QSharedPointer<ReceivedMessage> message;
|
||||||
|
@ -294,7 +312,6 @@ void PacketReceiver::handleVerifiedMessage(QSharedPointer<ReceivedMessage> recei
|
||||||
PacketType packetType = receivedMessage->getType();
|
PacketType packetType = receivedMessage->getType();
|
||||||
|
|
||||||
if (matchingNode) {
|
if (matchingNode) {
|
||||||
emit dataReceived(matchingNode->getType(), receivedMessage->getSize());
|
|
||||||
matchingNode->recordBytesReceived(receivedMessage->getSize());
|
matchingNode->recordBytesReceived(receivedMessage->getSize());
|
||||||
|
|
||||||
QMetaMethod metaMethod = listener.method;
|
QMetaMethod metaMethod = listener.method;
|
||||||
|
@ -326,7 +343,6 @@ void PacketReceiver::handleVerifiedMessage(QSharedPointer<ReceivedMessage> recei
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// qDebug() << "Got verified unsourced packet list: " << QString(nlPacketList->getMessage());
|
// qDebug() << "Got verified unsourced packet list: " << QString(nlPacketList->getMessage());
|
||||||
emit dataReceived(NodeType::Unassigned, receivedMessage->getSize());
|
|
||||||
|
|
||||||
// one final check on the QPointer before we invoke
|
// one final check on the QPointer before we invoke
|
||||||
if (listener.object) {
|
if (listener.object) {
|
||||||
|
|
Loading…
Reference in a new issue