diff --git a/libraries/script-engine/src/ScriptMessage.cpp b/libraries/script-engine/src/ScriptMessage.cpp new file mode 100644 index 0000000000..b80b1e3c56 --- /dev/null +++ b/libraries/script-engine/src/ScriptMessage.cpp @@ -0,0 +1,22 @@ +// +// ScriptMessage.h +// libraries/script-engine/src/v8/FastScriptValueUtils.cpp +// +// Created by dr Karol Suprynowicz on 2023/09/24. +// Copyright 2023 Overte e.V. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#include "ScriptMessage.h" + +QJsonObject ScriptMessage::toJson() { + QJsonObject object; + object["message"] = _messageContent; + object["lineNumber"] = _lineNumber; + object["fileName"] = _fileName; + object["type"] = scriptTypeToString(_scriptType); + object["severity"] = severityToString(_severity); + return object; +} \ No newline at end of file diff --git a/libraries/script-engine/src/ScriptMessage.h b/libraries/script-engine/src/ScriptMessage.h new file mode 100644 index 0000000000..adf92d7683 --- /dev/null +++ b/libraries/script-engine/src/ScriptMessage.h @@ -0,0 +1,57 @@ +// +// ScriptMessage.h +// libraries/script-engine/src/v8/FastScriptValueUtils.cpp +// +// Created by dr Karol Suprynowicz on 2023/09/24. +// Copyright 2023 Overte e.V. +// +// Distributed under the Apache License, Version 2.0. +// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html +// + +#ifndef OVERTE_SCRIPTMESSAGE_H +#define OVERTE_SCRIPTMESSAGE_H + +// Used to store script messages on entity script server before transmitting them to clients who subscribed to them. +// EntityServerScriptLog packet type is used. +// In the future will also be used for storing assignment client script messages before transmission + +#include +#include + +class ScriptMessage { +public: + enum class ScriptType { + TYPE_NONE, + TYPE_ENTITY_SCRIPT + }; + enum class Severity { + SEVERITY_NONE, + SEVERITY_PRINT, + SEVERITY_INFO, + SEVERITY_DEBUG, + SEVERITY_WARNING, + SEVERITY_ERROR + }; + + static QString scriptTypeToString(ScriptType scriptType); + static QString severityToString(Severity severity); + + static ScriptType scriptTypeFromString(ScriptType scriptType); + static Severity severityFromString(Severity severity); + + ScriptMessage() {}; + ScriptMessage(QString messageContent, QString fileName, int lineNumber, ScriptType scriptType, Severity severity) + : _messageContent(messageContent), _fileName(fileName), _lineNumber(lineNumber), _scriptType(scriptType) {} + + QJsonObject toJson(); + +private: + QString _messageContent; + QString _fileName; + int _lineNumber {-1}; + ScriptType _scriptType {ScriptType::TYPE_NONE}; + Severity _severity {Severity::SEVERITY_NONE}; +}; + +#endif //OVERTE_SCRIPTMESSAGE_H