diff --git a/libraries/voxel-server-library/src/VoxelSendThread.cpp b/libraries/voxel-server-library/src/VoxelSendThread.cpp index 9e669b4da7..4455f1e379 100644 --- a/libraries/voxel-server-library/src/VoxelSendThread.cpp +++ b/libraries/voxel-server-library/src/VoxelSendThread.cpp @@ -117,7 +117,7 @@ int VoxelSendThread::handlePacketSend(Node* node, VoxelNodeData* nodeData, int& /// Version of voxel distributor that sends the deepest LOD level at once int VoxelSendThread::deepestLevelVoxelDistributor(Node* node, VoxelNodeData* nodeData, bool viewFrustumChanged) { - _myServer->getTree()->lockForRead(); + _myServer->getServerTree().lockForRead(); int truePacketsSent = 0; int trueBytesSent = 0; @@ -360,7 +360,7 @@ int VoxelSendThread::deepestLevelVoxelDistributor(Node* node, VoxelNodeData* nod } // end if bag wasn't empty, and so we sent stuff... - _myServer->getTree()->unlock(); + _myServer->getServerTree().unlock(); return truePacketsSent; } diff --git a/libraries/voxel-server-library/src/VoxelServer.h b/libraries/voxel-server-library/src/VoxelServer.h index ca0b07dd63..f938bebd7e 100644 --- a/libraries/voxel-server-library/src/VoxelServer.h +++ b/libraries/voxel-server-library/src/VoxelServer.h @@ -48,8 +48,6 @@ public: VoxelTree& getServerTree() { return _serverTree; } JurisdictionMap* getJurisdiction() { return _jurisdiction; } - VoxelTree* getTree() { return &_serverTree; } - int getPacketsPerClientPerInterval() const { return _packetsPerClientPerInterval; } bool getSendMinimalEnvironment() const { return _sendMinimalEnvironment; } EnvironmentData* getEnvironmentData(int i) { return &_environmentData[i]; } diff --git a/libraries/voxel-server-library/src/VoxelServerPacketProcessor.cpp b/libraries/voxel-server-library/src/VoxelServerPacketProcessor.cpp index d156228544..5fd2028f50 100644 --- a/libraries/voxel-server-library/src/VoxelServerPacketProcessor.cpp +++ b/libraries/voxel-server-library/src/VoxelServerPacketProcessor.cpp @@ -86,9 +86,9 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned delete[] vertices; } - _myServer->getTree()->lockForWrite(); + _myServer->getServerTree().lockForWrite(); _myServer->getServerTree().readCodeColorBufferToTree(voxelData, destructive); - _myServer->getTree()->unlock(); + _myServer->getServerTree().unlock(); // skip to next voxel edit record in the packet voxelData += voxelDataSize; @@ -114,9 +114,9 @@ void VoxelServerPacketProcessor::processPacket(sockaddr& senderAddress, unsigned } else if (packetData[0] == PACKET_TYPE_ERASE_VOXEL) { // Send these bits off to the VoxelTree class to process them - _myServer->getTree()->lockForWrite(); + _myServer->getServerTree().lockForWrite(); _myServer->getServerTree().processRemoveVoxelBitstream((unsigned char*)packetData, packetLength); - _myServer->getTree()->unlock(); + _myServer->getServerTree().unlock(); // Make sure our Node and NodeList knows we've heard from this node. Node* node = NodeList::getInstance()->nodeWithAddress(&senderAddress); diff --git a/libraries/voxels/src/JurisdictionMap.cpp b/libraries/voxels/src/JurisdictionMap.cpp index 3da1467f46..c95a71ac75 100644 --- a/libraries/voxels/src/JurisdictionMap.cpp +++ b/libraries/voxels/src/JurisdictionMap.cpp @@ -109,8 +109,47 @@ JurisdictionMap::JurisdictionMap(unsigned char* rootOctalCode, const std::vector init(rootOctalCode, endNodes); } +void myDebugoutputBits(unsigned char byte, bool withNewLine) { + if (isalnum(byte)) { + printf("[ %d (%c): ", byte, byte); + } else { + printf("[ %d (0x%x): ", byte, byte); + } + + for (int i = 0; i < 8; i++) { + printf("%d", byte >> (7 - i) & 1); + } + printf(" ] "); + + if (withNewLine) { + printf("\n"); + } +} + + +void myDebugPrintOctalCode(const unsigned char* octalCode, bool withNewLine) { + if (!octalCode) { + printf("NULL"); + } else { + for (int i = 0; i < bytesRequiredForCodeLength(numberOfThreeBitSectionsInCode(octalCode)); i++) { + myDebugoutputBits(octalCode[i],false); + } + } + if (withNewLine) { + printf("\n"); + } +} + + JurisdictionMap::JurisdictionMap(const char* rootHexCode, const char* endNodesHexCodes) { + + qDebug("JurisdictionMap::JurisdictionMap(const char* rootHexCode=[%p] %s, const char* endNodesHexCodes=[%p] %s)\n", + rootHexCode, rootHexCode, endNodesHexCodes, endNodesHexCodes); + _rootOctalCode = hexStringToOctalCode(QString(rootHexCode)); + + qDebug("JurisdictionMap::JurisdictionMap() _rootOctalCode=%p octalCode=", _rootOctalCode); + myDebugPrintOctalCode(_rootOctalCode, true); QString endNodesHexStrings(endNodesHexCodes); QString delimiterPattern(","); @@ -120,8 +159,16 @@ JurisdictionMap::JurisdictionMap(const char* rootHexCode, const char* endNodesHe QString endNodeHexString = endNodeList.at(i); unsigned char* endNodeOctcode = hexStringToOctalCode(endNodeHexString); + + qDebug("JurisdictionMap::JurisdictionMap() endNodeList(%d)=%s\n", + i, endNodeHexString.toLocal8Bit().constData()); + //printOctalCode(endNodeOctcode); _endNodes.push_back(endNodeOctcode); + + qDebug("JurisdictionMap::JurisdictionMap() endNodeOctcode=%p octalCode=", endNodeOctcode); + myDebugPrintOctalCode(endNodeOctcode, true); + } }