Julian GroßFix copyright headersae7d2293 years agoHistory
62 lines · 1.6 KB · C
RawDownload
////  Scriptable.h//  libraries/script-engine/src////  Created by Heather Anderson on 5/1/21.//  Copyright 2021 Vircadia contributors.//  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//  SPDX-License-Identifier: Apache-2.0// /// @addtogroup ScriptEngine/// @{ #ifndef hifi_Scriptable_h#define hifi_Scriptable_h #include <memory> #include "ScriptContext.h"#include "ScriptValue.h" class ScriptEngine;using ScriptEnginePointer = std::shared_ptr<ScriptEngine>; /// [ScriptInterface] Provides an engine-independent interface for QScriptableclass Scriptable {public:    static inline ScriptEnginePointer engine();    static ScriptContext* context();    static inline ScriptValue thisObject();    static inline int argumentCount();    static inline ScriptValue argument(int index);     static void setContext(ScriptContext* context);}; ScriptEnginePointer Scriptable::engine() {    ScriptContext* scriptContext = context();    return scriptContext ? scriptContext->engine() : nullptr;} ScriptValue Scriptable::thisObject() {    ScriptContext* scriptContext = context();    return scriptContext ? scriptContext->thisObject() : ScriptValue();} int Scriptable::argumentCount() {    ScriptContext* scriptContext = context();    return scriptContext ? scriptContext->argumentCount() : 0;} ScriptValue Scriptable::argument(int index) {    ScriptContext* scriptContext = context();    return scriptContext ? scriptContext->argument(index) : ScriptValue();} #endif // hifi_Scriptable_h /// @}