History

Update EntityScriptClient to receive more status information

Ryan Huffman committed 9 years ago

Commit fa289331 parent cbb55a02 files · +26 −10Browse files

Showing the changes to libraries/networking/src/EntityScriptClient.cpp (1 of 2 files). Show all

Unified · Split

libraries/networking/src/EntityScriptClient.cpp+19−7
@@ -1,6 +1,7 @@
11 #include "EntityScriptClient.h"
22 #include "NodeList.h"
33 #include "NetworkLogging.h"
4+#include "EntityScriptUtils.h"
45
56 #include <QThread>
67
@@ -15,9 +16,12 @@ GetScriptStatusRequest::~GetScriptStatusRequest() { · 8 unmodified lines
1516
1617 void GetScriptStatusRequest::start() {
1718 auto client = DependencyManager::get<EntityScriptClient>();
18− qDebug() << "Sending script status request";
19− client->getEntityServerScriptStatus(_entityID, [this](bool responseReceived) {
20− qDebug() << "Received script status request";
19+ client->getEntityServerScriptStatus(_entityID, [this](bool responseReceived, bool isRunning, EntityScriptStatus status, QString errorInfo) {
20+ this->responseReceived = responseReceived;
21+ this->isRunning = isRunning;
22+ this->status = status;
23+ this->errorInfo = errorInfo;
24+
2125 emit finished(this);
2226 });
2327 }
@@ -84,7 +88,7 @@ MessageID EntityScriptClient::getEntityServerScriptStatus(QUuid entityID, GetScr · 60 unmodified lines
8488 }
8589 }
8690
87− callback(false);
91+ callback(false, false, ERROR_LOADING_SCRIPT, "");
8892 return INVALID_MESSAGE_ID;
8993 }
9094
@@ -92,9 +96,17 @@ void EntityScriptClient::handleGetScriptStatusReply(QSharedPointer<ReceivedMessa · 1 unmodified line
9296 Q_ASSERT(QThread::currentThread() == thread());
9397
9498 MessageID messageID;
99+ bool isKnown { false };
100+ EntityScriptStatus status = ERROR_LOADING_SCRIPT;
101+ QString errorInfo { "" };
102+
95103 message->readPrimitive(&messageID);
104+ message->readPrimitive(&isKnown);
96105
97− auto status = message->readString();
106+ if (isKnown) {
107+ message->readPrimitive(&status);
108+ errorInfo = message->readString();
109+ }
98110
99111 // Check if we have any pending requests for this node
100112 auto messageMapIt = _pendingEntityScriptStatusRequests.find(senderNode);
@@ -107,7 +119,7 @@ void EntityScriptClient::handleGetScriptStatusReply(QSharedPointer<ReceivedMessa · 6 unmodified lines
107119 auto requestIt = messageCallbackMap.find(messageID);
108120 if (requestIt != messageCallbackMap.end()) {
109121 auto callback = requestIt->second;
110− callback(true);
122+ callback(true, isKnown, status, errorInfo);
111123 messageCallbackMap.erase(requestIt);
112124 }
113125
@@ -145,7 +157,7 @@ void EntityScriptClient::forceFailureOfPendingRequests(SharedNodePointer node) { · 31 unmodified lines
145157 auto messageMapIt = _pendingEntityScriptStatusRequests.find(node);
146158 if (messageMapIt != _pendingEntityScriptStatusRequests.end()) {
147159 for (const auto& value : messageMapIt->second) {
148− value.second(false);
160+ value.second(false, false, ERROR_LOADING_SCRIPT, "");
149161 }
150162 messageMapIt->second.clear();
151163 }