Overte C++ Documentation
Scriptable.h
1
//
2
// Scriptable.h
3
// libraries/script-engine/src
4
//
5
// Created by Heather Anderson on 5/1/21.
6
// Copyright 2021 Vircadia contributors.
7
// Copyright 2023 Overte e.V.
8
//
9
// Distributed under the Apache License, Version 2.0.
10
// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
11
// SPDX-License-Identifier: Apache-2.0
12
//
13
16
17
#ifndef hifi_Scriptable_h
18
#define hifi_Scriptable_h
19
20
#include <memory>
21
22
#include "ScriptContext.h"
23
#include "ScriptValue.h"
24
25
class
ScriptEngine
;
26
using
ScriptEnginePointer = std::shared_ptr<ScriptEngine>;
27
29
class
Scriptable
{
30
public
:
31
static
inline
ScriptEnginePointer engine();
32
static
ScriptContext
* context();
33
static
inline
ScriptValue
thisObject();
34
static
inline
int
argumentCount();
35
static
inline
ScriptValue
argument(
int
index);
36
37
static
void
setContext(
ScriptContext
* context);
38
};
39
40
ScriptEnginePointer Scriptable::engine() {
41
ScriptContext
* scriptContext = context();
42
return
scriptContext ? scriptContext->engine() :
nullptr
;
43
}
44
45
ScriptValue
Scriptable::thisObject() {
46
ScriptContext
* scriptContext = context();
47
return
scriptContext ? scriptContext->thisObject() :
ScriptValue
();
48
}
49
50
int
Scriptable::argumentCount() {
51
ScriptContext
* scriptContext = context();
52
return
scriptContext ? scriptContext->argumentCount() : 0;
53
}
54
55
ScriptValue
Scriptable::argument(
int
index) {
56
ScriptContext
* scriptContext = context();
57
return
scriptContext ? scriptContext->argument(index) :
ScriptValue
();
58
}
59
60
#endif
// hifi_Scriptable_h
61
ScriptContext
[ScriptInterface] Provides an engine-independent interface for QScriptContext
Definition:
ScriptContext.h:55
ScriptEngine
Provides an engine-independent interface for a scripting engine.
Definition:
ScriptEngine.h:93
ScriptValue
[ScriptInterface] Provides an engine-independent interface for QScriptValue
Definition:
ScriptValue.h:40
Scriptable
[ScriptInterface] Provides an engine-independent interface for QScriptable
Definition:
Scriptable.h:29
libraries
script-engine
src
Scriptable.h
Generated by
1.9.1