History

Add log window to the ESS log

Atlante45 committed 9 years ago

Commit 19112181 parent 2962dd611 files · +203 −77Browse files

Showing the changes to assignment-client/src/scripts/EntityScriptServer.cpp (1 of 11 files). Show all

Unified · Split

assignment-client/src/scripts/EntityScriptServer.cpp+71−30
@@ -185,12 +185,20 @@ void EntityScriptServer::handleEntityServerScriptLogPacket(QSharedPointer<Receiv · 184 unmodified lines
185 if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {185 if (senderNode->getCanRez() || senderNode->getCanRezTmp()) {
186 bool enable = false;186 bool enable = false;
187 message->readPrimitive(&enable);187 message->readPrimitive(&enable);
188 qInfo() << "======== Got log packet:" << enable;188
189 auto senderUUID = senderNode->getUUID();
190 auto it = _logListeners.find(senderUUID);
189 191
190 if (enable) {192 if (enable) {
191 _logListeners.insert(senderNode->getUUID());193 if (it == std::end(_logListeners)) {
194 _logListeners.insert(senderUUID);
195 qInfo() << "Node" << senderUUID << "subscribed to log stream";
196 }
192 } else {197 } else {
193 _logListeners.erase(senderNode->getUUID());198 if (it != std::end(_logListeners)) {
199 _logListeners.erase(it);
200 qInfo() << "Node" << senderUUID << "unsubscribed from log stream";
201 }
194 }202 }
195 }203 }
196}204}
@@ -290,9 +298,67 @@ void EntityScriptServer::run() { · 93 unmodified lines
290 connect(tree, &EntityTree::entityServerScriptChanging, this, &EntityScriptServer::entityServerScriptChanging, Qt::QueuedConnection);298 connect(tree, &EntityTree::entityServerScriptChanging, this, &EntityScriptServer::entityServerScriptChanging, Qt::QueuedConnection);
291}299}
292 300
301void EntityScriptServer::cleanupOldKilledListeners() {
302 auto threshold = usecTimestampNow() - 5 * USECS_PER_SECOND;
303 using ValueType = std::pair<QUuid, quint64>;
304 auto it = std::remove_if(std::begin(_killedListeners), std::end(_killedListeners), [&](ValueType value) {
305 return value.second < threshold;
306 });
307 _killedListeners.erase(it, std::end(_killedListeners));
308}
309
293void EntityScriptServer::nodeActivated(SharedNodePointer activatedNode) {310void EntityScriptServer::nodeActivated(SharedNodePointer activatedNode) {
294 if (activatedNode->getType() == NodeType::AudioMixer) {311 switch (activatedNode->getType()) {
295 negotiateAudioFormat();312 case NodeType::AudioMixer:
313 negotiateAudioFormat();
314 break;
315 case NodeType::Agent: {
316 auto activatedNodeUUID = activatedNode->getUUID();
317 using ValueType = std::pair<QUuid, quint64>;
318 auto it = std::find_if(std::begin(_killedListeners), std::end(_killedListeners), [&](ValueType value) {
319 return value.first == activatedNodeUUID;
320 });
321 if (it != std::end(_killedListeners)) {
322 _killedListeners.erase(it);
323 _logListeners.insert(activatedNodeUUID);
324 }
325 break;
326 }
327 default:
328 // Do nothing
329 break;
330 }
331}
332
333void EntityScriptServer::nodeKilled(SharedNodePointer killedNode) {
334 switch (killedNode->getType()) {
335 case NodeType::EntityServer: {
336 if (!_shuttingDown) {
337 if (_entitiesScriptEngine) {
338 _entitiesScriptEngine->unloadAllEntityScripts();
339 _entitiesScriptEngine->stop();
340 }
341
342 resetEntitiesScriptEngine();
343
344 _entityViewer.clear();
345 }
346 break;
347 }
348 case NodeType::Agent: {
349 cleanupOldKilledListeners();
350
351 auto killedNodeUUID = killedNode->getUUID();
352 auto it = _logListeners.find(killedNodeUUID);
353 if (it != std::end(_logListeners)) {
354 _logListeners.erase(killedNodeUUID);
355 _killedListeners.emplace_back(killedNodeUUID, usecTimestampNow());
356 }
357 break;
358 }
359 default:
360 // Do nothing
361 break;
296 }362 }
297}363}
298 364
@@ -433,31 +499,6 @@ void EntityScriptServer::checkAndCallPreload(const EntityItemID& entityID, const · 134 unmodified lines
433 }499 }
434}500}
435 501
436void EntityScriptServer::nodeKilled(SharedNodePointer killedNode) {
437 switch (killedNode->getType()) {
438 case NodeType::EntityServer: {
439 if (!_shuttingDown) {
440 if (_entitiesScriptEngine) {
441 _entitiesScriptEngine->unloadAllEntityScripts();
442 _entitiesScriptEngine->stop();
443 }
444
445 resetEntitiesScriptEngine();
446
447 _entityViewer.clear();
448 }
449 break;
450 }
451 case NodeType::Agent: {
452 _logListeners.erase(killedNode->getUUID());
453 break;
454 }
455 default:
456 // Do nothing
457 break;
458 }
459}
460
461void EntityScriptServer::sendStatsPacket() {502void EntityScriptServer::sendStatsPacket() {
462 503
463}504}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t