ThreadedAssignment calls virtual stop() upon domain disconnect

This commit is contained in:
Simon Walton 2018-07-31 15:30:33 -07:00
parent b60ea1f6a2
commit 64fc3e1091
7 changed files with 17 additions and 17 deletions

View file

@ -336,7 +336,6 @@ void Agent::scriptRequestFinished() {
} }
setFinished(true); setFinished(true);
ThreadedAssignment::aboutToFinish();
} }
request->deleteLater(); request->deleteLater();
@ -499,7 +498,6 @@ void Agent::executeScript() {
DependencyManager::destroy<RecordingScriptingInterface>(); DependencyManager::destroy<RecordingScriptingInterface>();
setFinished(true); setFinished(true);
ThreadedAssignment::aboutToFinish();
} }
QUuid Agent::getSessionUUID() const { QUuid Agent::getSessionUUID() const {
@ -827,14 +825,6 @@ void Agent::processAgentAvatarAudio() {
void Agent::aboutToFinish() { void Agent::aboutToFinish() {
setIsAvatar(false);// will stop timers for sending identity packets setIsAvatar(false);// will stop timers for sending identity packets
// If script engine not started yet then finish up, else will be done when
// script engine exits.
if (_scriptEngine) {
_scriptEngine->stop();
} else {
ThreadedAssignment::aboutToFinish();
}
// our entity tree is going to go away so tell that to the EntityScriptingInterface // our entity tree is going to go away so tell that to the EntityScriptingInterface
DependencyManager::get<EntityScriptingInterface>()->setEntityTree(nullptr); DependencyManager::get<EntityScriptingInterface>()->setEntityTree(nullptr);
@ -864,3 +854,9 @@ void Agent::aboutToFinish() {
_encoder = nullptr; _encoder = nullptr;
} }
} }
void Agent::stop() {
if (_scriptEngine) {
_scriptEngine->stop();
}
}

View file

@ -97,6 +97,12 @@ public slots:
*/ */
bool isAvatar() const { return _isAvatar; } bool isAvatar() const { return _isAvatar; }
/**jsdoc
* @function Agent.stop
* @deprecated This function is being removed from the API.
*/
Q_INVOKABLE virtual void stop() override;
private slots: private slots:
void requestScript(); void requestScript();
void scriptRequestFinished(); void scriptRequestFinished();

View file

@ -109,7 +109,6 @@ AudioMixer::AudioMixer(ReceivedMessage& message) :
void AudioMixer::aboutToFinish() { void AudioMixer::aboutToFinish() {
DependencyManager::destroy<PluginManager>(); DependencyManager::destroy<PluginManager>();
ThreadedAssignment::aboutToFinish();
} }
void AudioMixer::queueAudioPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer node) { void AudioMixer::queueAudioPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer node) {

View file

@ -72,7 +72,6 @@ void EntityServer::aboutToFinish() {
DependencyManager::get<ResourceManager>()->cleanup(); DependencyManager::get<ResourceManager>()->cleanup();
OctreeServer::aboutToFinish(); OctreeServer::aboutToFinish();
ThreadedAssignment::aboutToFinish();
} }
void EntityServer::handleEntityPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) { void EntityServer::handleEntityPacket(QSharedPointer<ReceivedMessage> message, SharedNodePointer senderNode) {

View file

@ -587,6 +587,4 @@ void EntityScriptServer::aboutToFinish() {
_codec->releaseEncoder(_encoder); _codec->releaseEncoder(_encoder);
_encoder = nullptr; _encoder = nullptr;
} }
ThreadedAssignment::aboutToFinish();
} }

View file

@ -66,6 +66,8 @@ void ThreadedAssignment::setFinished(bool isFinished) {
// call our virtual aboutToFinish method - this gives the ThreadedAssignment subclass a chance to cleanup // call our virtual aboutToFinish method - this gives the ThreadedAssignment subclass a chance to cleanup
aboutToFinish(); aboutToFinish();
emit finished();
} }
} }
} }
@ -118,7 +120,7 @@ void ThreadedAssignment::checkInWithDomainServerOrExit() {
if (_numQueuedCheckIns >= MAX_SILENT_DOMAIN_SERVER_CHECK_INS) { if (_numQueuedCheckIns >= MAX_SILENT_DOMAIN_SERVER_CHECK_INS) {
qCDebug(networking) << "At least" << MAX_SILENT_DOMAIN_SERVER_CHECK_INS << "have been queued without a response from domain-server" qCDebug(networking) << "At least" << MAX_SILENT_DOMAIN_SERVER_CHECK_INS << "have been queued without a response from domain-server"
<< "Stopping the current assignment"; << "Stopping the current assignment";
setFinished(true); stop();
} else { } else {
auto nodeList = DependencyManager::get<NodeList>(); auto nodeList = DependencyManager::get<NodeList>();
QMetaObject::invokeMethod(nodeList.data(), "sendDomainServerCheckIn"); QMetaObject::invokeMethod(nodeList.data(), "sendDomainServerCheckIn");
@ -130,5 +132,5 @@ void ThreadedAssignment::checkInWithDomainServerOrExit() {
void ThreadedAssignment::domainSettingsRequestFailed() { void ThreadedAssignment::domainSettingsRequestFailed() {
qCDebug(networking) << "Failed to retreive settings object from domain-server. Bailing on assignment."; qCDebug(networking) << "Failed to retreive settings object from domain-server. Bailing on assignment.";
setFinished(true); stop();
} }

View file

@ -25,7 +25,7 @@ public:
~ThreadedAssignment() { stop(); } ~ThreadedAssignment() { stop(); }
void setFinished(bool isFinished); void setFinished(bool isFinished);
virtual void aboutToFinish() { emit finished(); }; virtual void aboutToFinish() { };
void addPacketStatsAndSendStatsPacket(QJsonObject statsObject); void addPacketStatsAndSendStatsPacket(QJsonObject statsObject);
public slots: public slots: