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 | } | ||