diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp index c1c564b58c..52407f78d5 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.cpp @@ -212,4 +212,4 @@ void SingleSenderStats::trackInboundPacket(unsigned short int incomingSequence, _totalLockWaitTime += lockWaitTime; _totalElementsInPacket += editsInPacket; _totalPackets++; -} +} \ No newline at end of file diff --git a/assignment-client/src/octree/OctreeInboundPacketProcessor.h b/assignment-client/src/octree/OctreeInboundPacketProcessor.h index 3e3f5f2dcb..82471bcddf 100644 --- a/assignment-client/src/octree/OctreeInboundPacketProcessor.h +++ b/assignment-client/src/octree/OctreeInboundPacketProcessor.h @@ -35,7 +35,6 @@ public: void trackInboundPacket(unsigned short int incomingSequence, quint64 transitTime, int editsInPacket, quint64 processTime, quint64 lockWaitTime); - const QSet& getMissingSequenceNumbers() const { return _missingSequenceNumbers; } quint64 _totalTransitTime; @@ -72,7 +71,6 @@ public: void resetStats(); NodeToSenderStatsMap& getSingleSenderStats() { return _singleSenderStats; } - const NodeToSenderStatsMap& getSingleSenderStats() const { return _singleSenderStats; } protected: virtual void processPacket(const SharedNodePointer& sendingNode, const QByteArray& packet); diff --git a/assignment-client/src/octree/OctreeSendThread.cpp b/assignment-client/src/octree/OctreeSendThread.cpp index 6b1119fca1..cb149b1d96 100644 --- a/assignment-client/src/octree/OctreeSendThread.cpp +++ b/assignment-client/src/octree/OctreeSendThread.cpp @@ -85,7 +85,6 @@ bool OctreeSendThread::process() { if (nodeData && !nodeData->isShuttingDown()) { bool viewFrustumChanged = nodeData->updateCurrentViewFrustum(); packetDistributor(nodeData, viewFrustumChanged); - sendNack(nodeData); } } } @@ -112,75 +111,6 @@ bool OctreeSendThread::process() { return isStillRunning(); // keep running till they terminate us } - -int OctreeSendThread::sendNack(OctreeQueryNode* nodeData) { - - // if we're shutting down, then exit early - if (nodeData->isShuttingDown()) { - return 0; - } - - const OctreeInboundPacketProcessor* myServerPacketProcessor = _myServer->getInboundPacketProcessor(); - - // if there are packets from _node that are waiting to be processed, - // don't send a NACK since the missing packets may be among those waiting packets. - if (myServerPacketProcessor->hasPacketsToProcessFrom(_node)) { - return 0; - } - - // lock unlock required ????????? prolly: _singleSenderStats may have our node's entry deleted during this or something - // maybe just make a copy instead!! - - // lock - - const QSet missingSequenceNumbersFromNode = myServerPacketProcessor - ->getSingleSenderStats().at(_node->getUUID()).getMissingSequenceNumbers(); - - // check if there are any sequence numbers that need to be nacked - int numSequenceNumbersAvailable = missingSequenceNumbersFromNode.size(); - if (numSequenceNumbersAvailable == 0) { - //unlock - return 0; - } - - // construct nack packet - - char packet[MAX_PACKET_SIZE]; - - char* dataAt = packet; - int bytesRemaining = MAX_PACKET_SIZE; - - // pack header - int numBytesPacketHeader = populatePacketHeader(packet, PacketTypeOctreeEditNack); - dataAt += numBytesPacketHeader; - bytesRemaining -= numBytesPacketHeader; - int numSequenceNumbersRoomFor = (bytesRemaining - sizeof(uint16_t)) / sizeof(unsigned short int); - - // calculate and pack the number of sequence numbers - uint16_t numSequenceNumbers = std::min(numSequenceNumbersAvailable, numSequenceNumbersRoomFor); - uint16_t* numSequenceNumbersAt = (uint16_t*)dataAt; - *numSequenceNumbersAt = numSequenceNumbers; - dataAt += sizeof(uint16_t); - - // pack sequence numbers - QSet::const_iterator begin = missingSequenceNumbersFromNode.begin(), end = missingSequenceNumbersFromNode.end(); - for (QSet::const_iterator i = begin; i != end; i++) { - unsigned short int* sequenceNumberAt = (unsigned short int*)dataAt; - *sequenceNumberAt = *i; - dataAt += sizeof(unsigned short int); - } - - // send it - OctreeServer::didCallWriteDatagram(this); - NodeList::getInstance()->writeDatagram((char*)packet, dataAt - packet, _node); - - return 1; -} - - - - - quint64 OctreeSendThread::_usleepTime = 0; quint64 OctreeSendThread::_usleepCalls = 0; diff --git a/assignment-client/src/octree/OctreeSendThread.h b/assignment-client/src/octree/OctreeSendThread.h index 041b44577c..d8eed27802 100644 --- a/assignment-client/src/octree/OctreeSendThread.h +++ b/assignment-client/src/octree/OctreeSendThread.h @@ -50,8 +50,6 @@ private: int handlePacketSend(OctreeQueryNode* nodeData, int& trueBytesSent, int& truePacketsSent); int packetDistributor(OctreeQueryNode* nodeData, bool viewFrustumChanged); - - int sendNack(OctreeQueryNode* nodeData); OctreePacketData _packetData; diff --git a/assignment-client/src/octree/OctreeServer.h b/assignment-client/src/octree/OctreeServer.h index 39536c0981..5595d139be 100644 --- a/assignment-client/src/octree/OctreeServer.h +++ b/assignment-client/src/octree/OctreeServer.h @@ -51,8 +51,6 @@ public: int getPacketsPerClientPerSecond() const { return getPacketsPerClientPerInterval() * INTERVALS_PER_SECOND; } int getPacketsTotalPerInterval() const { return _packetsTotalPerInterval; } int getPacketsTotalPerSecond() const { return getPacketsTotalPerInterval() * INTERVALS_PER_SECOND; } - - const OctreeInboundPacketProcessor* getInboundPacketProcessor() const { return _octreeInboundPacketProcessor; } static int getCurrentClientCount() { return _clientCount; } static void clientConnected() { _clientCount++; } diff --git a/libraries/networking/src/PacketHeaders.h b/libraries/networking/src/PacketHeaders.h index d7c6bdead6..8ac5333d10 100644 --- a/libraries/networking/src/PacketHeaders.h +++ b/libraries/networking/src/PacketHeaders.h @@ -66,8 +66,7 @@ enum PacketType { PacketTypeModelAddOrEdit, PacketTypeModelErase, PacketTypeModelAddResponse, - PacketTypeOctreeDataNack, - PacketTypeOctreeEditNack, + PacketTypeOctreeDataNack }; typedef char PacketVersion;