NetServer::NetServer(uint16_t port,QObject *parent) : QObject(parent) { // // TCP Server // net_tcp_server=new QTcpServer(this); connect(net_tcp_server,SIGNAL(newConnection()), this,SLOT(newConnectionData())); if(!net_tcp_server->listen(QHostAddress::Any,port)) { syslog(LOG_WARNING,"unable to bind LWCP port %u",port); } // // Connection Mappers // net_tcp_ready_mapper=new QSignalMapper(this); connect(net_tcp_ready_mapper,SIGNAL(mapped(int)), this,SLOT(readyReadData(int))); net_tcp_discon_mapper=new QSignalMapper(this); connect(net_tcp_discon_mapper,SIGNAL(mapped(int)), this,SLOT(disconnectedData(int))); // // Garbage Collection Timer // net_garbage_timer=new QTimer(this); net_garbage_timer->setSingleShot(true); connect(net_garbage_timer,SIGNAL(timeout()),this,SLOT(garbageData())); }
void OctreeTests::modelItemTests() { #if 0 // TODO - repair/replace these bool verbose = true; //verbose = true; EntityTreeElementExtraEncodeData modelTreeElementExtraEncodeData; int testsTaken = 0; int testsPassed = 0; int testsFailed = 0; if (verbose) { qDebug() << "******************************************************************************************"; } qDebug() << "OctreeTests::modelItemTests()"; EncodeBitstreamParams params; OctreePacketData packetData; EntityItem entityItem; entityItem.setID(1042); entityItem.setModelURL("http://foo.com/foo.fbx"); bool appendResult = entityItem.appendEntityData(&packetData, params, &modelTreeElementExtraEncodeData); int bytesWritten = packetData.getUncompressedSize(); if (verbose) { qDebug() << "Test 1: bytesRead == bytesWritten ..."; qDebug() << "appendResult=" << appendResult; qDebug() << "bytesWritten=" << bytesWritten; } { ReadBitstreamToTreeParams args; EntityItem modelItemFromBuffer; const unsigned char* data = packetData.getUncompressedData(); int bytesLeftToRead = packetData.getUncompressedSize(); int bytesRead = modelItemFromBuffer.readEntityDataFromBuffer(data, bytesLeftToRead, args); if (verbose) { qDebug() << "bytesRead=" << bytesRead; qDebug() << "modelItemFromBuffer.getID()=" << modelItemFromBuffer.getID(); qDebug() << "modelItemFromBuffer.getModelURL()=" << modelItemFromBuffer.getModelURL(); } QCOMPARE(bytesRead, bytesWritten); if (verbose) { qDebug() << "Test 2: modelItemFromBuffer.getModelURL() == 'http://foo.com/foo.fbx'"; } QCOMPARE(modelItemFromBuffer.getModelURL(), "http://foo.com/foo.fbx"); } // TEST 3: // Reset the packet, fill it with data so that EntityItem header won't fit, and verify that we don't let it fit { packetData.reset(); int remainingSpace = 10; int almostFullOfData = MAX_OCTREE_UNCOMRESSED_PACKET_SIZE - remainingSpace; QByteArray garbageData(almostFullOfData, 0); packetData.appendValue(garbageData); appendResult = entityItem.appendEntityData(&packetData, params, &modelTreeElementExtraEncodeData); bytesWritten = packetData.getUncompressedSize() - almostFullOfData; if (verbose) { qDebug() << "Test 3: attempt to appendEntityData in nearly full packetData ..."; qDebug() << "appendResult=" << appendResult; qDebug() << "bytesWritten=" << bytesWritten; } QCOMPARE(appendResult, false); QCOMPARE(bytesWritten, 0); } // TEST 4: // Reset the packet, fill it with data so that some of EntityItem won't fit, and verify that we write what can fit { packetData.reset(); int remainingSpace = 50; int almostFullOfData = MAX_OCTREE_UNCOMRESSED_PACKET_SIZE - remainingSpace; QByteArray garbageData(almostFullOfData, 0); packetData.appendValue(garbageData); appendResult = entityItem.appendEntityData(&packetData, params, &modelTreeElementExtraEncodeData); bytesWritten = packetData.getUncompressedSize() - almostFullOfData; if (verbose) { qDebug() << "Test 4: attempt to appendEntityData in nearly full packetData which some should fit ..."; qDebug() << "appendResult=" << appendResult; qDebug() << "bytesWritten=" << bytesWritten; } QCOMPARE(appendResult, true); ReadBitstreamToTreeParams args; EntityItem modelItemFromBuffer; const unsigned char* data = packetData.getUncompressedData() + almostFullOfData; int bytesLeftToRead = packetData.getUncompressedSize() - almostFullOfData; int bytesRead = modelItemFromBuffer.readEntityDataFromBuffer(data, bytesLeftToRead, args); if (verbose) { qDebug() << "Test 5: partial EntityItem written ... bytesRead == bytesWritten..."; qDebug() << "bytesRead=" << bytesRead; qDebug() << "modelItemFromBuffer.getID()=" << modelItemFromBuffer.getID(); qDebug() << "modelItemFromBuffer.getModelURL()=" << modelItemFromBuffer.getModelURL(); } QCOMPARE(bytesRead, bytesWritten); if (verbose) { qDebug() << "Test 6: partial EntityItem written ... getModelURL() NOT SET ..."; } QCOMPARE(modelItemFromBuffer.getModelURL(), ""); } if (verbose) { qDebug() << "******************************************************************************************"; } QCOMPARE(testsPassed, testsTaken); if (verbose) { qDebug() << "******************************************************************************************"; } #endif }