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 IDebuggerController; }
18namespace Scripting { class IDebuggerTransport; }
19namespace Scripting { class IDependencyLoader; }
20namespace Scripting { class IPrinter; }
21namespace Scripting { class IWatchdog; }
22namespace Scripting { class RegistryManager; }
23namespace Scripting { class ResultAny; }
24namespace Scripting { class ScriptContext; }
25namespace Scripting { struct ClosureType; }
26namespace Scripting { struct CoRoutineResult; }
27namespace Scripting { struct ContextConfig; }
28namespace Scripting { struct ContextId; }
29namespace Scripting { struct FutureType; }
30namespace Scripting { struct IRuntimeMetadata; }
31namespace Scripting { struct ModuleBindingBundle; }
32namespace Scripting { struct PromiseType; }
33namespace Scripting { struct RuntimeStats; }
34namespace Scripting { struct TypeNameInfo; }
35namespace Scripting { struct WatchdogSettings; }
36namespace Scripting::QuickJS { struct MallocFunctions; }
37// clang-format on
38
39namespace Scripting::QuickJS {
40
42 public ::std::enable_shared_from_this<::Scripting::QuickJS::QuickJSRuntime> {
43public:
44 // member variables
45 // NOLINTBEGIN
57 // NOLINTEND
58
59public:
60 // prevent constructor by default
61 QuickJSRuntime& operator=(QuickJSRuntime const&);
64
65public:
66 // virtual functions
67 // NOLINTBEGIN
68 // vIndex: 0
69 virtual ~QuickJSRuntime() /*override*/;
70
71 // vIndex: 1
72 virtual ::Scripting::IRuntimeMetadata* getMetadata() const /*override*/;
73
74 // vIndex: 2
75 virtual void moveToThread() /*override*/;
76
77 // vIndex: 3
78 virtual ::std::optional<::Scripting::ScriptContext> createContext(
81 ::Scripting::IPrinter* printer,
82 ::Scripting::ContextConfig const& config
83 ) /*override*/;
84
85 // vIndex: 4
86 virtual void destroyContext(::Scripting::ContextId contextId) /*override*/;
87
88 // vIndex: 22
89 virtual ::Scripting::ResultAny runString(
90 ::Scripting::ContextId contextId,
91 ::std::string const& scriptName,
92 ::std::string const& scriptData,
93 ::std::optional<::Scripting::Privilege> privilege
94 ) /*override*/;
95
96 // vIndex: 6
97 virtual ::Scripting::ResultAny call(
98 ::Scripting::ContextId contextId,
100 ::entt::meta_any* args,
101 uint argc,
102 ::entt::meta_type const& expectedReturnType,
103 ::std::optional<::Scripting::Privilege> privilege
104 ) /*override*/;
105
106 // vIndex: 7
107 virtual ::Scripting::ResultAny resolve(
108 ::Scripting::ContextId contextId,
110 ::entt::meta_any& arg
111 ) /*override*/;
112
113 // vIndex: 8
114 virtual ::Scripting::ResultAny reject(
115 ::Scripting::ContextId contextId,
117 ::entt::meta_any& arg
118 ) /*override*/;
119
120 // vIndex: 9
121 virtual ::Scripting::FutureStatus
123 /*override*/;
124
125 // vIndex: 10
126 virtual ::Scripting::ResultAny getFutureResult(
127 ::Scripting::ContextId contextId,
129 ::entt::meta_type const& expectedResultType
130 ) const /*override*/;
131
132 // vIndex: 11
133 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult> executeCoroutines(
134 ::std::optional<::std::chrono::microseconds> timeSlice,
135 ::std::optional<::Scripting::Privilege> privilege
136 ) /*override*/;
137
138 // vIndex: 12
139 virtual bool hasPendingJobs() /*override*/;
140
141 // vIndex: 13
142 virtual ::Scripting::IDebuggerController* enableDebugger(::Scripting::IDebuggerTransport& transport) /*override*/;
143
144 // vIndex: 14
145 virtual void disableDebugger() /*override*/;
146
147 // vIndex: 15
148 virtual void startProfiler() /*override*/;
149
150 // vIndex: 16
151 virtual void stopProfiler(
152 ::std::function<void(::std::string_view)> captureCb,
153 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
154 ) /*override*/;
155
156 // vIndex: 17
157 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
158
159 // vIndex: 21
160 virtual ::std::optional<::Scripting::TypeNameInfo>
161 getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const
162 /*override*/;
163
164 // vIndex: 18
165 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings settings) /*override*/;
166
167 // vIndex: 19
168 virtual void disableWatchdog() /*override*/;
169
170 // vIndex: 20
171 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
172 // NOLINTEND
173
174public:
175 // member functions
176 // NOLINTBEGIN
178 ::Scripting::RegistryManager& registryManager,
179 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
181 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
182 ::std::function<
183 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
184 normalizerFn
185 );
186 // NOLINTEND
187
188public:
189 // static functions
190 // NOLINTBEGIN
191 MCNAPI static int
192 _moduleImportAllowed(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
193
194 MCNAPI static ::JSModuleDef* _moduleLoader(::JSContext* ctx, char const* moduleName, void* opaque);
195
196 MCNAPI static char*
197 _moduleNameNormalizer(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
198
199 MCNAPI static void _onProfilerCapture(void* opaque, char const* capture);
200 // NOLINTEND
201
202public:
203 // constructor thunks
204 // NOLINTBEGIN
205 MCNAPI void* $ctor(
206 ::Scripting::RegistryManager& registryManager,
207 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
209 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
210 ::std::function<
211 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
212 normalizerFn
213 );
214 // NOLINTEND
215
216public:
217 // destructor thunk
218 // NOLINTBEGIN
219 MCNAPI void $dtor();
220 // NOLINTEND
221
222public:
223 // virtual function thunks
224 // NOLINTBEGIN
225 MCNAPI ::Scripting::IRuntimeMetadata* $getMetadata() const;
226
227 MCNAPI void $moveToThread();
228
229 MCNAPI ::std::optional<::Scripting::ScriptContext> $createContext(
232 ::Scripting::IPrinter* printer,
233 ::Scripting::ContextConfig const& config
234 );
235
237
238 MCNAPI ::Scripting::ResultAny $runString(
239 ::Scripting::ContextId contextId,
240 ::std::string const& scriptName,
241 ::std::string const& scriptData,
242 ::std::optional<::Scripting::Privilege> privilege
243 );
244
245 MCNAPI ::Scripting::ResultAny $call(
246 ::Scripting::ContextId contextId,
248 ::entt::meta_any* args,
249 uint argc,
250 ::entt::meta_type const& expectedReturnType,
251 ::std::optional<::Scripting::Privilege> privilege
252 );
253
254 MCNAPI ::Scripting::ResultAny $resolve(
255 ::Scripting::ContextId contextId,
257 ::entt::meta_any& arg
258 );
259
260 MCNAPI ::Scripting::ResultAny $reject(
261 ::Scripting::ContextId contextId,
263 ::entt::meta_any& arg
264 );
265
266 MCNAPI ::Scripting::ResultAny $getFutureResult(
267 ::Scripting::ContextId contextId,
269 ::entt::meta_type const& expectedResultType
270 ) const;
271
272 MCNAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult> $executeCoroutines(
273 ::std::optional<::std::chrono::microseconds> timeSlice,
274 ::std::optional<::Scripting::Privilege> privilege
275 );
276
277 MCNAPI bool $hasPendingJobs();
278
279 MCNAPI ::Scripting::IDebuggerController* $enableDebugger(::Scripting::IDebuggerTransport& transport);
280
281 MCNAPI void $disableDebugger();
282
283 MCNAPI void $startProfiler();
284
285 MCNAPI void $stopProfiler(
286 ::std::function<void(::std::string_view)> captureCb,
287 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
288 );
289
290 MCNAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
291
292 MCNAPI ::std::optional<::Scripting::TypeNameInfo>
293 $getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const;
294
295 MCNAPI ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings settings);
296
297 MCNAPI void $disableWatchdog();
298
299 MCNAPI ::Scripting::IWatchdog* $getWatchdog() const;
300 // NOLINTEND
301
302public:
303 // vftables
304 // NOLINTBEGIN
305 MCNAPI static void** $vftable();
306 // NOLINTEND
307};
308
309} // namespace Scripting::QuickJS
Definition DependencyLocator.h:7
Definition IDebuggerTransport.h:7
Definition IDependencyLoader.h:12
Definition IPrinter.h:13
Definition QuickJSRuntime.h:42
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 ::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::IDebuggerController * $enableDebugger(::Scripting::IDebuggerTransport &transport)
MCAPI::Scripting::ResultAny $reject(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::PromiseType > promise, ::entt::meta_any &arg)
MCAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult > $executeCoroutines(::std::optional<::std::chrono::microseconds > timeSlice, ::std::optional<::Scripting::Privilege > privilege)
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)
Definition RegistryManager.h:12
Definition StringBasedRuntime.h:18
Definition JSContext.h:5
Definition JSModuleDef.h:8
Definition ContextConfig.h:7
Definition ContextId.h:7
Definition ModuleBindingBundle.h:7
Definition TypedObjectHandle.h:8
Definition WatchdogSettings.h:7
Definition ctx.h:5
Definition Alias.h:14