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 getFutureStatus(
114 ::Scripting::ContextId contextId,
116 ) const /*override*/;
117
118 virtual ::Scripting::ResultAny getFutureResult(
119 ::Scripting::ContextId contextId,
121 ::entt::meta_type const& expectedResultType
122 ) const /*override*/;
123
124 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
125 executeCoroutines(::std::optional<::Scripting::Privilege> privilege) /*override*/;
126
127 virtual bool hasPendingJobs() /*override*/;
128
129 virtual ::Scripting::IDebuggerController* enableDebugger(
132 ) /*override*/;
133
134 virtual void disableDebugger() /*override*/;
135
136 virtual void startProfiler() /*override*/;
137
138 virtual void stopProfiler(
139 ::std::function<void(::std::string_view)> captureCb,
140 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
141 ) /*override*/;
142
143 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
144
145 virtual ::std::optional<::Scripting::TypeNameInfo>
146 getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const
147 /*override*/;
148
149 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings settings) /*override*/;
150
151 virtual void disableWatchdog() /*override*/;
152
153 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
154 // NOLINTEND
155
156public:
157 // member functions
158 // NOLINTBEGIN
160 ::Scripting::RegistryManager& registryManager,
161 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
163 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
164 ::std::function<
165 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
166 normalizerFn
167 );
168 // NOLINTEND
169
170public:
171 // static functions
172 // NOLINTBEGIN
173 MCNAPI static int
174 _moduleImportAllowed(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
175
176 MCNAPI static ::JSModuleDef* _moduleLoader(::JSContext* ctx, char const* moduleName, void* opaque);
177
178 MCNAPI static char*
179 _moduleNameNormalizer(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
180
181 MCNAPI static void _onProfilerCapture(void* opaque, char const* capture);
182 // NOLINTEND
183
184public:
185 // constructor thunks
186 // NOLINTBEGIN
187 MCNAPI void* $ctor(
188 ::Scripting::RegistryManager& registryManager,
189 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
191 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
192 ::std::function<
193 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
194 normalizerFn
195 );
196 // NOLINTEND
197
198public:
199 // destructor thunk
200 // NOLINTBEGIN
201 MCNAPI void $dtor();
202 // NOLINTEND
203
204public:
205 // virtual function thunks
206 // NOLINTBEGIN
207 MCNAPI ::Scripting::IRuntimeMetadata* $getMetadata() const;
208
209 MCNAPI void $moveToThread();
210
211 MCNAPI ::std::optional<::Scripting::ScriptContext> $createContext(
214 ::Scripting::IPrinter* printer,
215 ::Scripting::ContextConfig const& config
216 );
217
219
220 MCNAPI ::Scripting::ResultAny $runString(
221 ::Scripting::ContextId contextId,
222 ::std::string const& scriptName,
223 ::std::string const& scriptData,
224 ::std::optional<::Scripting::Privilege> privilege
225 );
226
227 MCNAPI ::Scripting::ResultAny $call(
228 ::Scripting::ContextId contextId,
230 ::entt::meta_any* args,
231 uint argc,
232 ::entt::meta_type const& expectedReturnType,
233 ::std::optional<::Scripting::Privilege> privilege
234 );
235
236 MCNAPI ::Scripting::ResultAny $resolve(
237 ::Scripting::ContextId contextId,
239 ::entt::meta_any& arg
240 );
241
242 MCNAPI ::Scripting::ResultAny $reject(
243 ::Scripting::ContextId contextId,
245 ::entt::meta_any& arg
246 );
247
248 MCNAPI ::Scripting::FutureStatus $getFutureStatus(
249 ::Scripting::ContextId contextId,
251 ) const;
252
253 MCNAPI ::Scripting::ResultAny $getFutureResult(
254 ::Scripting::ContextId contextId,
256 ::entt::meta_type const& expectedResultType
257 ) const;
258
259 MCNAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
260 $executeCoroutines(::std::optional<::Scripting::Privilege> privilege);
261
262 MCNAPI bool $hasPendingJobs();
263
264 MCNAPI ::Scripting::IDebuggerController*
266
267 MCNAPI void $disableDebugger();
268
269 MCNAPI void $startProfiler();
270
271 MCNAPI void $stopProfiler(
272 ::std::function<void(::std::string_view)> captureCb,
273 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
274 );
275
276 MCNAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
277
278 MCNAPI ::std::optional<::Scripting::TypeNameInfo>
279 $getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const;
280
281 MCNAPI ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings settings);
282
283 MCNAPI void $disableWatchdog();
284
285 MCNAPI ::Scripting::IWatchdog* $getWatchdog() const;
286
287
288 // NOLINTEND
289
290public:
291 // vftables
292 // NOLINTBEGIN
293 MCNAPI static void** $vftable();
294 // NOLINTEND
295};
296
297} // 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::FutureStatus $getFutureStatus(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::FutureType > futureHandle) const
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