565 lines · 23.0 KB · C++
RawDownload
    }} void EntityScriptServer::sendStatsPacket() { } void EntityScriptServer::handleOctreePacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {    auto packetType = message->getType();     if (packetType == PacketType::OctreeStats) {         int statsMessageLength = OctreeHeadlessViewer::parseOctreeStats(message, senderNode);        if (message->getSize() > statsMessageLength) {            // pull out the piggybacked packet and create a new QSharedPointer<NLPacket> for it            int piggyBackedSizeWithHeader = message->getSize() - statsMessageLength;             auto buffer = std::unique_ptr<char[]>(new char[piggyBackedSizeWithHeader]);            memcpy(buffer.get(), message->getRawMessage() + statsMessageLength, piggyBackedSizeWithHeader);             auto newPacket = NLPacket::fromReceivedPacket(std::move(buffer), piggyBackedSizeWithHeader, message->getSenderSockAddr());            message = QSharedPointer<ReceivedMessage>::create(*newPacket);        } else {            return; // bail since no piggyback data        }         packetType = message->getType();    } // fall through to piggyback message     if (packetType == PacketType::EntityData) {        _entityViewer.processDatagram(*message, senderNode);    } else if (packetType == PacketType::EntityErase) {        _entityViewer.processEraseMessage(*message, senderNode);    }} void EntityScriptServer::handleJurisdictionPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {    NodeType_t nodeType;    message->peekPrimitive(&nodeType);     // PacketType_JURISDICTION, first byte is the node type...    if (nodeType == NodeType::EntityServer) {        DependencyManager::get<EntityScriptingInterface>()->getJurisdictionListener()->        queueReceivedPacket(message, senderNode);    }} void EntityScriptServer::aboutToFinish() {    shutdownScriptEngine();     // our entity tree is going to go away so tell that to the EntityScriptingInterface    DependencyManager::get<EntityScriptingInterface>()->setEntityTree(nullptr);     ResourceManager::cleanup();     // cleanup the AudioInjectorManager (and any still running injectors)    DependencyManager::destroy<AudioInjectorManager>();    DependencyManager::destroy<ScriptEngines>();     // cleanup codec & encoder    if (_codec && _encoder) {        _codec->releaseEncoder(_encoder);        _encoder = nullptr;    }}

Lines 501–565 of 565. Previous lines