Showing the changes to assignment-client/src/scripts/EntityScriptServer.cpp (1 of 260 files). Show all
Unified · Split
| @@ -14,7 +14,9 @@ · 13 unmodified lines | ||
| 14 | 14 | #include <mutex> |
| 15 | 15 | |
| 16 | 16 | #include <AudioConstants.h> |
| 17 | +#include <AudioScriptingInterface.h> | |
| 17 | 18 | #include <AudioInjectorManager.h> |
| 19 | +#include <AvatarHashMap.h> | |
| 18 | 20 | #include <ClientServerUtils.h> |
| 19 | 21 | #include <DebugDraw.h> |
| 20 | 22 | #include <EntityNodeData.h> |
| @@ -130,7 +132,7 @@ void EntityScriptServer::handleEntityScriptGetStatusPacket(QSharedPointer<Receiv · 109 unmodified lines | ||
| 130 | 132 | replyPacketList->writePrimitive(messageID); |
| 131 | 133 | |
| 132 | 134 | EntityScriptDetails details; |
| 133 | − if (_entitiesScriptEngine->getEntityScriptDetails(entityID, details)) { | |
| 135 | + if (_entitiesScriptManager->getEntityScriptDetails(entityID, details)) { | |
| 134 | 136 | replyPacketList->writePrimitive(true); |
| 135 | 137 | replyPacketList->writePrimitive(details.status); |
| 136 | 138 | replyPacketList->writeString(details.errorInfo); |
| @@ -175,7 +177,7 @@ void EntityScriptServer::handleSettings() { · 38 unmodified lines | ||
| 175 | 177 | } |
| 176 | 178 | |
| 177 | 179 | void EntityScriptServer::updateEntityPPS() { |
| 178 | − int numRunningScripts = _entitiesScriptEngine->getNumRunningEntityScripts(); | |
| 180 | + int numRunningScripts = _entitiesScriptManager->getNumRunningEntityScripts(); | |
| 179 | 181 | int pps; |
| 180 | 182 | if (std::numeric_limits<int>::max() / _entityPPSPerScript < numRunningScripts) { |
| 181 | 183 | qWarning() << QString("Integer multiplication would overflow, clamping to maxint: %1 * %2").arg(numRunningScripts).arg(_entityPPSPerScript); |
| @@ -236,7 +238,7 @@ void EntityScriptServer::pushLogs() { · 54 unmodified lines | ||
| 236 | 238 | |
| 237 | 239 | void EntityScriptServer::handleEntityScriptCallMethodPacket(QSharedPointer<ReceivedMessage> receivedMessage, SharedNodePointer senderNode) { |
| 238 | 240 | |
| 239 | − if (_entitiesScriptEngine && _entityViewer.getTree() && !_shuttingDown) { | |
| 241 | + if (_entitiesScriptManager && _entityViewer.getTree() && !_shuttingDown) { | |
| 240 | 242 | auto entityID = QUuid::fromRfc4122(receivedMessage->read(NUM_BYTES_RFC4122_UUID)); |
| 241 | 243 | |
| 242 | 244 | auto method = receivedMessage->readString(); |
| @@ -250,13 +252,13 @@ void EntityScriptServer::handleEntityScriptCallMethodPacket(QSharedPointer<Recei · 7 unmodified lines | ||
| 250 | 252 | params << paramString; |
| 251 | 253 | } |
| 252 | 254 | |
| 253 | − _entitiesScriptEngine->callEntityScriptMethod(entityID, method, params, senderNode->getUUID()); | |
| 255 | + _entitiesScriptManager->callEntityScriptMethod(entityID, method, params, senderNode->getUUID()); | |
| 254 | 256 | } |
| 255 | 257 | } |
| 256 | 258 | |
| 257 | 259 | |
| 258 | 260 | void EntityScriptServer::run() { |
| 259 | − DependencyManager::set<ScriptEngines>(ScriptEngine::ENTITY_SERVER_SCRIPT); | |
| 261 | + DependencyManager::set<ScriptEngines>(ScriptManager::ENTITY_SERVER_SCRIPT); | |
| 260 | 262 | DependencyManager::set<EntityScriptServerServices>(); |
| 261 | 263 | DependencyManager::set<AvatarHashMap>(); |
| 262 | 264 | |
| @@ -446,52 +448,53 @@ void EntityScriptServer::selectAudioFormat(const QString& selectedCodecName) { · 183 unmodified lines | ||
| 446 | 448 | |
| 447 | 449 | void EntityScriptServer::resetEntitiesScriptEngine() { |
| 448 | 450 | auto engineName = QString("about:Entities %1").arg(++_entitiesScriptEngineCount); |
| 449 | − auto newEngine = scriptEngineFactory(ScriptEngine::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName); | |
| 451 | + auto newManager = scriptManagerFactory(ScriptManager::ENTITY_SERVER_SCRIPT, NO_SCRIPT, engineName); | |
| 452 | + auto newEngine = newManager->engine(); | |
| 450 | 453 | |
| 451 | 454 | auto webSocketServerConstructorValue = newEngine->newFunction(WebSocketServerClass::constructor); |
| 452 | − newEngine->globalObject().setProperty("WebSocketServer", webSocketServerConstructorValue); | |
| 455 | + newEngine->globalObject()->setProperty("WebSocketServer", webSocketServerConstructorValue); | |
| 453 | 456 | |
| 454 | 457 | newEngine->registerGlobalObject("SoundCache", DependencyManager::get<SoundCacheScriptingInterface>().data()); |
| 455 | 458 | newEngine->registerGlobalObject("AvatarList", DependencyManager::get<AvatarHashMap>().data()); |
| 456 | 459 | |
| 457 | 460 | // connect this script engines printedMessage signal to the global ScriptEngines these various messages |
| 458 | 461 | auto scriptEngines = DependencyManager::get<ScriptEngines>().data(); |
| 459 | − connect(newEngine.data(), &ScriptEngine::printedMessage, scriptEngines, &ScriptEngines::onPrintedMessage); | |
| 460 | − connect(newEngine.data(), &ScriptEngine::errorMessage, scriptEngines, &ScriptEngines::onErrorMessage); | |
| 461 | − connect(newEngine.data(), &ScriptEngine::warningMessage, scriptEngines, &ScriptEngines::onWarningMessage); | |
| 462 | − connect(newEngine.data(), &ScriptEngine::infoMessage, scriptEngines, &ScriptEngines::onInfoMessage); | |
| 462 | + connect(newManager.data(), &ScriptManager::printedMessage, scriptEngines, &ScriptEngines::onPrintedMessage); | |
| 463 | + connect(newManager.data(), &ScriptManager::errorMessage, scriptEngines, &ScriptEngines::onErrorMessage); | |
| 464 | + connect(newManager.data(), &ScriptManager::warningMessage, scriptEngines, &ScriptEngines::onWarningMessage); | |
| 465 | + connect(newManager.data(), &ScriptManager::infoMessage, scriptEngines, &ScriptEngines::onInfoMessage); | |
| 463 | 466 | |
| 464 | − connect(newEngine.data(), &ScriptEngine::update, this, [this] { | |
| 467 | + connect(newManager.data(), &ScriptManager::update, this, [this] { | |
| 465 | 468 | _entityViewer.queryOctree(); |
| 466 | 469 | _entityViewer.getTree()->preUpdate(); |
| 467 | 470 | _entityViewer.getTree()->update(); |
| 468 | 471 | }); |
| 469 | 472 | |
| 470 | − scriptEngines->runScriptInitializers(newEngine); | |
| 471 | − newEngine->runInThread(); | |
| 472 | − auto newEngineSP = qSharedPointerCast<EntitiesScriptEngineProvider>(newEngine); | |
| 473 | + scriptEngines->runScriptInitializers(newManager); | |
| 474 | + newManager->runInThread(); | |
| 475 | + auto newEngineSP = qSharedPointerCast<EntitiesScriptEngineProvider>(newManager); | |
| 473 | 476 | // On the entity script server, these are the same |
| 474 | 477 | DependencyManager::get<EntityScriptingInterface>()->setPersistentEntitiesScriptEngine(newEngineSP); |
| 475 | 478 | DependencyManager::get<EntityScriptingInterface>()->setNonPersistentEntitiesScriptEngine(newEngineSP); |
| 476 | 479 | |
| 477 | − if (_entitiesScriptEngine) { | |
| 478 | − disconnect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated, | |
| 480 | + if (_entitiesScriptManager) { | |
| 481 | + disconnect(_entitiesScriptManager.data(), &ScriptManager::entityScriptDetailsUpdated, | |
| 479 | 482 | this, &EntityScriptServer::updateEntityPPS); |
| 480 | 483 | } |
| 481 | 484 | |
| 482 | − _entitiesScriptEngine.swap(newEngine); | |
| 483 | − connect(_entitiesScriptEngine.data(), &ScriptEngine::entityScriptDetailsUpdated, | |
| 485 | + _entitiesScriptManager.swap(newManager); | |
| 486 | + connect(_entitiesScriptManager.data(), &ScriptManager::entityScriptDetailsUpdated, | |
| 484 | 487 | this, &EntityScriptServer::updateEntityPPS); |
| 485 | 488 | } |
| 486 | 489 | |
| 487 | 490 | |
| 488 | 491 | void EntityScriptServer::clear() { |
| 489 | 492 | // unload and stop the engine |
| 490 | − if (_entitiesScriptEngine) { | |
| 493 | + if (_entitiesScriptManager) { | |
| 491 | 494 | // do this here (instead of in deleter) to avoid marshalling unload signals back to this thread |
| 492 | − _entitiesScriptEngine->unloadAllEntityScripts(); | |
| 493 | − _entitiesScriptEngine->stop(); | |
| 494 | − _entitiesScriptEngine->waitTillDoneRunning(); | |
| 495 | + _entitiesScriptManager->unloadAllEntityScripts(); | |
| 496 | + _entitiesScriptManager->stop(); | |
| 497 | + _entitiesScriptManager->waitTillDoneRunning(); | |
| 495 | 498 | } |
| 496 | 499 | |
| 497 | 500 | _entityViewer.clear(); |
| @@ -503,8 +506,8 @@ void EntityScriptServer::clear() { · 5 unmodified lines | ||
| 503 | 506 | } |
| 504 | 507 | |
| 505 | 508 | void EntityScriptServer::shutdownScriptEngine() { |
| 506 | − if (_entitiesScriptEngine) { | |
| 507 | − _entitiesScriptEngine->disconnectNonEssentialSignals(); // disconnect all slots/signals from the script engine, except essential | |
| 509 | + if (_entitiesScriptManager) { | |
| 510 | + _entitiesScriptManager->disconnectNonEssentialSignals(); // disconnect all slots/signals from the script engine, except essential | |
| 508 | 511 | } |
| 509 | 512 | _shuttingDown = true; |
| 510 | 513 | |
| @@ -513,7 +516,7 @@ void EntityScriptServer::shutdownScriptEngine() { · 2 unmodified lines | ||
| 513 | 516 | auto scriptEngines = DependencyManager::get<ScriptEngines>(); |
| 514 | 517 | scriptEngines->shutdownScripting(); |
| 515 | 518 | |
| 516 | − _entitiesScriptEngine.clear(); | |
| 519 | + _entitiesScriptManager.clear(); | |
| 517 | 520 | |
| 518 | 521 | auto entityScriptingInterface = DependencyManager::get<EntityScriptingInterface>(); |
| 519 | 522 | // our entity tree is going to go away so tell that to the EntityScriptingInterface |
| @@ -531,8 +534,8 @@ void EntityScriptServer::addingEntity(const EntityItemID& entityID) { · 11 unmodified lines | ||
| 531 | 534 | } |
| 532 | 535 | |
| 533 | 536 | void EntityScriptServer::deletingEntity(const EntityItemID& entityID) { |
| 534 | − if (_entityViewer.getTree() && !_shuttingDown && _entitiesScriptEngine) { | |
| 535 | − _entitiesScriptEngine->unloadEntityScript(entityID, true); | |
| 537 | + if (_entityViewer.getTree() && !_shuttingDown && _entitiesScriptManager) { | |
| 538 | + _entitiesScriptManager->unloadEntityScript(entityID, true); | |
| 536 | 539 | } |
| 537 | 540 | } |
| 538 | 541 | |
| @@ -543,20 +546,20 @@ void EntityScriptServer::entityServerScriptChanging(const EntityItemID& entityID · 4 unmodified lines | ||
| 543 | 546 | } |
| 544 | 547 | |
| 545 | 548 | void EntityScriptServer::checkAndCallPreload(const EntityItemID& entityID, bool forceRedownload) { |
| 546 | − if (_entityViewer.getTree() && !_shuttingDown && _entitiesScriptEngine) { | |
| 549 | + if (_entityViewer.getTree() && !_shuttingDown && _entitiesScriptManager) { | |
| 547 | 550 | |
| 548 | 551 | EntityItemPointer entity = _entityViewer.getTree()->findEntityByEntityItemID(entityID); |
| 549 | 552 | EntityScriptDetails details; |
| 550 | − bool isRunning = _entitiesScriptEngine->getEntityScriptDetails(entityID, details); | |
| 553 | + bool isRunning = _entitiesScriptManager->getEntityScriptDetails(entityID, details); | |
| 551 | 554 | if (entity && (forceRedownload || !isRunning || details.scriptText != entity->getServerScripts())) { |
| 552 | 555 | if (isRunning) { |
| 553 | − _entitiesScriptEngine->unloadEntityScript(entityID, true); | |
| 556 | + _entitiesScriptManager->unloadEntityScript(entityID, true); | |
| 554 | 557 | } |
| 555 | 558 | |
| 556 | 559 | QString scriptUrl = entity->getServerScripts(); |
| 557 | 560 | if (!scriptUrl.isEmpty()) { |
| 558 | 561 | scriptUrl = DependencyManager::get<ResourceManager>()->normalizeURL(scriptUrl); |
| 559 | − _entitiesScriptEngine->loadEntityScript(entityID, scriptUrl, forceRedownload); | |
| 562 | + _entitiesScriptManager->loadEntityScript(entityID, scriptUrl, forceRedownload); | |
| 560 | 563 | } |
| 561 | 564 | } |
| 562 | 565 | } |
| @@ -573,9 +576,9 @@ void EntityScriptServer::sendStatsPacket() { · 10 unmodified lines | ||
| 573 | 576 | |
| 574 | 577 | QJsonObject scriptEngineStats; |
| 575 | 578 | int numberRunningScripts = 0; |
| 576 | − const auto scriptEngine = _entitiesScriptEngine; | |
| 577 | − if (scriptEngine) { | |
| 578 | − numberRunningScripts = scriptEngine->getNumRunningEntityScripts(); | |
| 579 | + const auto scriptManager = _entitiesScriptManager; | |
| 580 | + if (scriptManager) { | |
| 581 | + numberRunningScripts = scriptManager->getNumRunningEntityScripts(); | |
| 579 | 582 | } |
| 580 | 583 | scriptEngineStats["number_running_scripts"] = numberRunningScripts; |
| 581 | 584 | statsObject["script_engine_stats"] = scriptEngineStats; |