Showing the changes to libraries/script-engine/src/ConsoleScriptingInterface.cpp (1 of 8 files). Show all
Unified · Split
| @@ -0,0 +1,137 @@ | ||
| 1 | +// | |
| 2 | +// ConsoleScriptingInterface.cpp | |
| 3 | +// libraries/script-engine/src | |
| 4 | +// | |
| 5 | +// Created by volansystech on 6/1/17. | |
| 6 | +// Copyright 2014 High Fidelity, Inc. | |
| 7 | +// | |
| 8 | +// ConsoleScriptingInterface is responsible to print logs | |
| 9 | +// using "console" object on debug Window and Logs/log file with proper tags. | |
| 10 | +// Used in Javascripts file. | |
| 11 | +// | |
| 12 | +// Distributed under the Apache License, Version 2.0. | |
| 13 | +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html | |
| 14 | +// | |
| 15 | + | |
| 16 | +#include "ConsoleScriptingInterface.h" | |
| 17 | +#include "ScriptEngine.h" | |
| 18 | + | |
| 19 | +void ConsoleScriptingInterface::info(QString message) { | |
| 20 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 21 | + scriptEngine->scriptInfoMessage(message); | |
| 22 | + } | |
| 23 | +} | |
| 24 | + | |
| 25 | +void ConsoleScriptingInterface::log(QString message) { | |
| 26 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 27 | + scriptEngine->scriptPrintedMessage(message); | |
| 28 | + } | |
| 29 | +} | |
| 30 | + | |
| 31 | +void ConsoleScriptingInterface::debug(QString message) { | |
| 32 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 33 | + scriptEngine->scriptPrintedMessage(message); | |
| 34 | + } | |
| 35 | +} | |
| 36 | + | |
| 37 | +void ConsoleScriptingInterface::warn(QString message) { | |
| 38 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 39 | + scriptEngine->scriptWarningMessage(message); | |
| 40 | + } | |
| 41 | +} | |
| 42 | + | |
| 43 | +void ConsoleScriptingInterface::error(QString message) { | |
| 44 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 45 | + scriptEngine->scriptErrorMessage(message); | |
| 46 | + } | |
| 47 | +} | |
| 48 | + | |
| 49 | +void ConsoleScriptingInterface::exception(QString message) { | |
| 50 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 51 | + scriptEngine->scriptErrorMessage(message); | |
| 52 | + } | |
| 53 | +} | |
| 54 | + | |
| 55 | +void ConsoleScriptingInterface::time(QString labelName) { | |
| 56 | + QDateTime date; | |
| 57 | + std::string val_string = "2017-06-06 11:15:00.000"; | |
| 58 | + QString d = QString::fromStdString(val_string.substr(0, 19)); | |
| 59 | + date = QDateTime::fromString(d, "yyyy-MM-dd HH:mm:ss"); | |
| 60 | + qDebug() << d; | |
| 61 | + qDebug() << d.length() << date.toUTC(); | |
| 62 | + | |
| 63 | + QDateTime _currentTime = QDateTime::currentDateTime().toUTC(); | |
| 64 | + _listOfTimeValues.insert(labelName, date.toUTC()); | |
| 65 | +} | |
| 66 | + | |
| 67 | +void ConsoleScriptingInterface::timeEnd(QString labelName) { | |
| 68 | + QDateTime _dateTimeOfLabel; | |
| 69 | + QString message; | |
| 70 | + qint64 millisecondsDiff = 0; | |
| 71 | + | |
| 72 | + bool _labelInList = _listOfTimeValues.contains(labelName); | |
| 73 | + | |
| 74 | + //Check if not exist items in list | |
| 75 | + if (!_labelInList) { | |
| 76 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 77 | + message = "No such label found " + labelName; | |
| 78 | + scriptEngine->scriptErrorMessage(message); | |
| 79 | + } | |
| 80 | + return; | |
| 81 | + } | |
| 82 | + QDateTime _currentDateTimeValue = QDateTime::currentDateTime().toUTC(); | |
| 83 | + _dateTimeOfLabel = _listOfTimeValues.value(labelName); | |
| 84 | + | |
| 85 | + if (!_dateTimeOfLabel.isNull()) { | |
| 86 | + _listOfTimeValues.remove(labelName); | |
| 87 | + } | |
| 88 | + | |
| 89 | + if (_dateTimeOfLabel.toString(TIME_FORMAT) == _currentDateTimeValue.toString(TIME_FORMAT)) { | |
| 90 | + millisecondsDiff = _dateTimeOfLabel.msecsTo(_currentDateTimeValue); | |
| 91 | + message = QString::number(millisecondsDiff) + " ms"; | |
| 92 | + } else { | |
| 93 | + message = secondsToString(_dateTimeOfLabel.secsTo(_currentDateTimeValue)); | |
| 94 | + } | |
| 95 | + | |
| 96 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 97 | + scriptEngine->scriptPrintedMessage("Time : " + message); | |
| 98 | + } | |
| 99 | +} | |
| 100 | + | |
| 101 | +QString ConsoleScriptingInterface::secondsToString(qint64 seconds) | |
| 102 | +{ | |
| 103 | + qint64 days = seconds / DAY; | |
| 104 | + QTime timeDuration = QTime(0, 0).addSecs(seconds % DAY); | |
| 105 | + | |
| 106 | + return QString("%1 days, %2 hours, %3 minutes, %4 seconds") | |
| 107 | + .arg(QString::number(days)).arg(QString::number(timeDuration.hour())).arg(QString::number(timeDuration.minute())).arg(QString::number(timeDuration.second())); | |
| 108 | +} | |
| 109 | + | |
| 110 | +void ConsoleScriptingInterface::asserts(bool condition, QString message) { | |
| 111 | + if (!condition) { | |
| 112 | + QString assertFailed = "Assertion failed"; | |
| 113 | + if (message.isEmpty()) { | |
| 114 | + message = assertFailed; | |
| 115 | + } else { | |
| 116 | + if (typeid(message) != typeid(QString)) { | |
| 117 | + message = assertFailed; | |
| 118 | + } else { | |
| 119 | + message = assertFailed + " " + message; | |
| 120 | + } | |
| 121 | + } | |
| 122 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 123 | + scriptEngine->scriptErrorMessage(message); | |
| 124 | + } | |
| 125 | + } | |
| 126 | +} | |
| 127 | + | |
| 128 | +void ConsoleScriptingInterface::trace(QString labelName) { | |
| 129 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 130 | + scriptEngine->scriptErrorMessage(labelName); | |
| 131 | + } | |
| 132 | +} | |
| 133 | +void ConsoleScriptingInterface::clear() { | |
| 134 | + if (ScriptEngine* scriptEngine = qobject_cast<ScriptEngine*>(engine())) { | |
| 135 | + scriptEngine->clearConsole(); | |
| 136 | + } | |
| 137 | +} | |