LeviLamina
Loading...
Searching...
No Matches
QuickJSRuntime.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/scripting/lifetime_registry/TypedObjectHandle.h"
7#include "mc/deps/scripting/reflection/Privilege.h"
8#include "mc/deps/scripting/runtime/FutureStatus.h"
9#include "mc/deps/scripting/runtime/Result_deprecated.h"
10#include "mc/deps/scripting/runtime/StringBasedRuntime.h"
11
12// auto generated forward declare list
13// clang-format off
14struct JSContext;
15struct JSModuleDef;
16namespace Scripting { class DependencyLocator; }
17namespace Scripting { class IBreakpointValidator; }
18namespace Scripting { class IDebuggerController; }
19namespace Scripting { class IDebuggerTransport; }
20namespace Scripting { class IDependencyLoader; }
21namespace Scripting { class IPrinter; }
22namespace Scripting { class IWatchdog; }
23namespace Scripting { class RegistryManager; }
24namespace Scripting { class ResultAny; }
25namespace Scripting { class ScriptContext; }
26namespace Scripting { struct ClosureType; }
27namespace Scripting { struct CoRoutineResult; }
28namespace Scripting { struct ContextConfig; }
29namespace Scripting { struct ContextId; }
30namespace Scripting { struct FutureType; }
31namespace Scripting { struct IRuntimeMetadata; }
32namespace Scripting { struct ModuleBindingBundle; }
33namespace Scripting { struct PromiseType; }
34namespace Scripting { struct RuntimeStats; }
35namespace Scripting { struct TypeNameInfo; }
36namespace Scripting { struct WatchdogSettings; }
37namespace Scripting::QuickJS { struct MallocFunctions; }
38// clang-format on
39
40namespace Scripting::QuickJS {
41
42class QuickJSRuntime : public ::Scripting::StringBasedRuntime,
43 public ::std::enable_shared_from_this<::Scripting::QuickJS::QuickJSRuntime> {
44public:
45 // member variables
46 // NOLINTBEGIN
59 // NOLINTEND
60
61public:
62 // prevent constructor by default
63 QuickJSRuntime& operator=(QuickJSRuntime const&);
64 QuickJSRuntime(QuickJSRuntime const&);
65 QuickJSRuntime();
66
67public:
68 // virtual functions
69 // NOLINTBEGIN
70 virtual ~QuickJSRuntime() /*override*/;
71
72 virtual ::Scripting::IRuntimeMetadata* getMetadata() const /*override*/;
73
74 virtual void moveToThread() /*override*/;
75
76 virtual ::std::optional<::Scripting::ScriptContext> createContext(
79 ::Scripting::IPrinter* printer,
80 ::Scripting::ContextConfig const& config
81 ) /*override*/;
82
83 virtual void destroyContext(::Scripting::ContextId contextId) /*override*/;
84
85 virtual ::Scripting::ResultAny runString(
86 ::Scripting::ContextId contextId,
87 ::std::string const& scriptName,
88 ::std::string const& scriptData,
89 ::std::optional<::Scripting::Privilege> privilege
90 ) /*override*/;
91
92 virtual ::Scripting::ResultAny call(
93 ::Scripting::ContextId contextId,
95 ::entt::meta_any* args,
96 uint argc,
97 ::entt::meta_type const& expectedReturnType,
98 ::std::optional<::Scripting::Privilege> privilege
99 ) /*override*/;
100
101 virtual ::Scripting::ResultAny resolve(
102 ::Scripting::ContextId contextId,
104 ::entt::meta_any& arg
105 ) /*override*/;
106
107 virtual ::Scripting::ResultAny reject(
108 ::Scripting::ContextId contextId,
110 ::entt::meta_any& arg
111 ) /*override*/;
112
113 virtual ::Scripting::FutureStatus
115 /*override*/;
116
117 virtual ::Scripting::ResultAny getFutureResult(
118 ::Scripting::ContextId contextId,
120 ::entt::meta_type const& expectedResultType
121 ) const /*override*/;
122
123 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
124 executeCoroutines(::std::optional<::Scripting::Privilege> privilege) /*override*/;
125
126 virtual bool hasPendingJobs() /*override*/;
127
128 virtual ::Scripting::IDebuggerController* enableDebugger(
131 ) /*override*/;
132
133 virtual void disableDebugger() /*override*/;
134
135 virtual void startProfiler() /*override*/;
136
137 virtual void stopProfiler(
138 ::std::function<void(::std::string_view)> captureCb,
139 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
140 ) /*override*/;
141
142 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
143
144 virtual ::std::optional<::Scripting::TypeNameInfo>
145 getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const
146 /*override*/;
147
148 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings settings) /*override*/;
149
150 virtual void disableWatchdog() /*override*/;
151
152 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
153 // NOLINTEND
154
155public:
156 // member functions
157 // NOLINTBEGIN
159 ::Scripting::RegistryManager& registryManager,
160 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
162 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
163 ::std::function<
164 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
165 normalizerFn
166 );
167 // NOLINTEND
168
169public:
170 // static functions
171 // NOLINTBEGIN
172 MCNAPI static int
173 _moduleImportAllowed(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
174
175 MCNAPI static ::JSModuleDef* _moduleLoader(::JSContext* ctx, char const* moduleName, void* opaque);
176
177 MCNAPI static char*
178 _moduleNameNormalizer(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
179
180 MCNAPI static void _onProfilerCapture(void* opaque, char const* capture);
181 // NOLINTEND
182
183public:
184 // constructor thunks
185 // NOLINTBEGIN
186 MCNAPI void* $ctor(
187 ::Scripting::RegistryManager& registryManager,
188 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
190 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
191 ::std::function<
192 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
193 normalizerFn
194 );
195 // NOLINTEND
196
197public:
198 // destructor thunk
199 // NOLINTBEGIN
200 MCNAPI void $dtor();
201 // NOLINTEND
202
203public:
204 // virtual function thunks
205 // NOLINTBEGIN
206 MCNAPI ::Scripting::IRuntimeMetadata* $getMetadata() const;
207
208 MCNAPI void $moveToThread();
209
210 MCNAPI ::std::optional<::Scripting::ScriptContext> $createContext(
213 ::Scripting::IPrinter* printer,
214 ::Scripting::ContextConfig const& config
215 );
216
218
219 MCNAPI ::Scripting::ResultAny $runString(
220 ::Scripting::ContextId contextId,
221 ::std::string const& scriptName,
222 ::std::string const& scriptData,
223 ::std::optional<::Scripting::Privilege> privilege
224 );
225
226 MCNAPI ::Scripting::ResultAny $call(
227 ::Scripting::ContextId contextId,
229 ::entt::meta_any* args,
230 uint argc,
231 ::entt::meta_type const& expectedReturnType,
232 ::std::optional<::Scripting::Privilege> privilege
233 );
234
235 MCNAPI ::Scripting::ResultAny $resolve(
236 ::Scripting::ContextId contextId,
238 ::entt::meta_any& arg
239 );
240
241 MCNAPI ::Scripting::ResultAny $reject(
242 ::Scripting::ContextId contextId,
244 ::entt::meta_any& arg
245 );
246
247 MCNAPI ::Scripting::ResultAny $getFutureResult(
248 ::Scripting::ContextId contextId,
250 ::entt::meta_type const& expectedResultType
251 ) const;
252
253 MCNAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
254 $executeCoroutines(::std::optional<::Scripting::Privilege> privilege);
255
256 MCNAPI bool $hasPendingJobs();
257
258 MCNAPI ::Scripting::IDebuggerController*
260
261 MCNAPI void $disableDebugger();
262
263 MCNAPI void $startProfiler();
264
265 MCNAPI void $stopProfiler(
266 ::std::function<void(::std::string_view)> captureCb,
267 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
268 );
269
270 MCNAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
271
272 MCNAPI ::std::optional<::Scripting::TypeNameInfo>
273 $getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const;
274
275 MCNAPI ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings settings);
276
277 MCNAPI void $disableWatchdog();
278
279 MCNAPI ::Scripting::IWatchdog* $getWatchdog() const;
280
281
282 // NOLINTEND
283
284public:
285 // vftables
286 // NOLINTBEGIN
287 MCNAPI static void** $vftable();
288 // NOLINTEND
289};
290
291} // namespace Scripting::QuickJS
Definition DependencyLocator.h:7
Definition IBreakpointValidator.h:7
Definition IDebuggerController.h:7
Definition IDebuggerTransport.h:7
Definition IDependencyLoader.h:12
Definition IPrinter.h:13
Definition IWatchdog.h:16
MCAPI void * $ctor(::Scripting::RegistryManager &registryManager, ::std::unique_ptr<::Scripting::IRuntimeMetadata > metadata, ::Scripting::DependencyLocator *locator, ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions > mallocFns, ::std::function< ::std::string(::std::string_view const &, ::std::string const &, ::std::vector<::std::string > const &)> normalizerFn)
MCAPI::Scripting::IWatchdog * $getWatchdog() const
static MCAPI int _moduleImportAllowed(::JSContext *ctx, char const *baseName, char const *moduleName, void *opaque)
static MCAPI void _onProfilerCapture(void *opaque, char const *capture)
MCAPI QuickJSRuntime(::Scripting::RegistryManager &registryManager, ::std::unique_ptr<::Scripting::IRuntimeMetadata > metadata, ::Scripting::DependencyLocator *locator, ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions > mallocFns, ::std::function< ::std::string(::std::string_view const &, ::std::string const &, ::std::vector<::std::string > const &)> normalizerFn)
static MCAPI ::JSModuleDef * _moduleLoader(::JSContext *ctx, char const *moduleName, void *opaque)
MCAPI::Scripting::IRuntimeMetadata * $getMetadata() const
MCAPI ::std::optional<::Scripting::TypeNameInfo > $getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const &type, bool allowUnknownTypes) const
static MCAPI void ** $vftable()
static MCAPI char * _moduleNameNormalizer(::JSContext *ctx, char const *baseName, char const *moduleName, void *opaque)
MCAPI void $destroyContext(::Scripting::ContextId contextId)
MCAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult > $executeCoroutines(::std::optional<::Scripting::Privilege > privilege)
MCAPI ::std::optional<::Scripting::ScriptContext > $createContext(::Scripting::ModuleBindingBundle &&bindings, ::Scripting::IDependencyLoader *loader, ::Scripting::IPrinter *printer, ::Scripting::ContextConfig const &config)
MCAPI::Scripting::ResultAny $resolve(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::PromiseType > promise, ::entt::meta_any &arg)
MCAPI::Scripting::IWatchdog * $enableWatchdog(::Scripting::WatchdogSettings settings)
MCAPI::Scripting::RuntimeStats $computeRuntimeStats() const
MCAPI::Scripting::ResultAny $runString(::Scripting::ContextId contextId, ::std::string const &scriptName, ::std::string const &scriptData, ::std::optional<::Scripting::Privilege > privilege)
MCAPI::Scripting::ResultAny $getFutureResult(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::FutureType > futureHandle, ::entt::meta_type const &expectedResultType) const
MCAPI::Scripting::ResultAny $reject(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::PromiseType > promise, ::entt::meta_any &arg)
MCAPI void $stopProfiler(::std::function< void(::std::string_view)> captureCb, ::std::optional<::std::reference_wrapper<::std::string const > > savePathOpt)
MCAPI::Scripting::ResultAny $call(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::ClosureType > closureHandle, ::entt::meta_any *args, uint argc, ::entt::meta_type const &expectedReturnType, ::std::optional<::Scripting::Privilege > privilege)
MCAPI::Scripting::IDebuggerController * $enableDebugger(::Scripting::IDebuggerTransport &transport, ::Scripting::IBreakpointValidator &validator)
Definition RegistryManager.h:12
Definition ResultAny.h:7
Definition ScriptContext.h:16
Definition StringBasedRuntime.h:18
Definition JSContext.h:5
Definition JSModuleDef.h:8
Definition ClosureType.h:7
Definition CoRoutineResult.h:7
Definition ContextConfig.h:20
Definition ContextId.h:7
Definition FutureType.h:7
Definition IRuntimeMetadata.h:7
Definition ModuleBindingBundle.h:15
Definition PromiseType.h:7
Definition MallocFunctions.h:7
Definition RuntimeStats.h:7
Definition TypeNameInfo.h:7
Definition TypedObjectHandle.h:8
Definition WatchdogSettings.h:7
Definition ctx.h:5
Definition Alias.h:14