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>
134 executeCoroutines(::std::optional<::std::chrono::microseconds> timeSlice) /*override*/;
135
136 // vIndex: 12
137 virtual bool hasPendingJobs() /*override*/;
138
139 // vIndex: 13
140 virtual ::Scripting::IDebuggerController* enableDebugger(::Scripting::IDebuggerTransport& transport) /*override*/;
141
142 // vIndex: 14
143 virtual void disableDebugger() /*override*/;
144
145 // vIndex: 15
146 virtual void startProfiler() /*override*/;
147
148 // vIndex: 16
149 virtual void stopProfiler(
150 ::std::function<void(::std::string_view)> captureCb,
151 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
152 ) /*override*/;
153
154 // vIndex: 17
155 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
156
157 // vIndex: 21
158 virtual ::std::optional<::Scripting::TypeNameInfo>
159 getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const
160 /*override*/;
161
162 // vIndex: 18
163 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings settings) /*override*/;
164
165 // vIndex: 19
166 virtual void disableWatchdog() /*override*/;
167
168 // vIndex: 20
169 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
170 // NOLINTEND
171
172public:
173 // member functions
174 // NOLINTBEGIN
175 MCAPI QuickJSRuntime(
176 ::Scripting::RegistryManager& registryManager,
177 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
179 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
180 ::std::function<
181 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
182 normalizerFn
183 );
184 // NOLINTEND
185
186public:
187 // static functions
188 // NOLINTBEGIN
189 MCAPI static ::JSModuleDef* _moduleLoader(::JSContext* ctx, char const* moduleName, void* opaque);
190
191 MCAPI static char*
192 _moduleNameNormalizer(::JSContext* ctx, char const* baseName, char const* moduleName, void* opaque);
193
194 MCAPI static void _onProfilerCapture(void* opaque, char const* capture);
195 // NOLINTEND
196
197public:
198 // constructor thunks
199 // NOLINTBEGIN
200 MCAPI void* $ctor(
201 ::Scripting::RegistryManager& registryManager,
202 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
204 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
205 ::std::function<
206 ::std::string(::std::string_view const&, ::std::string const&, ::std::vector<::std::string> const&)>
207 normalizerFn
208 );
209 // NOLINTEND
210
211public:
212 // destructor thunk
213 // NOLINTBEGIN
214 MCAPI void $dtor();
215 // NOLINTEND
216
217public:
218 // virtual function thunks
219 // NOLINTBEGIN
220 MCFOLD ::Scripting::IRuntimeMetadata* $getMetadata() const;
221
222 MCAPI void $moveToThread();
223
224 MCAPI ::std::optional<::Scripting::ScriptContext> $createContext(
227 ::Scripting::IPrinter* printer,
228 ::Scripting::ContextConfig const& config
229 );
230
231 MCAPI void $destroyContext(::Scripting::ContextId contextId);
232
233 MCAPI ::Scripting::ResultAny $runString(
234 ::Scripting::ContextId contextId,
235 ::std::string const& scriptName,
236 ::std::string const& scriptData,
237 ::std::optional<::Scripting::Privilege> privilege
238 );
239
240 MCAPI ::Scripting::ResultAny $call(
241 ::Scripting::ContextId contextId,
243 ::entt::meta_any* args,
244 uint argc,
245 ::entt::meta_type const& expectedReturnType,
246 ::std::optional<::Scripting::Privilege> privilege
247 );
248
249 MCAPI ::Scripting::ResultAny $resolve(
250 ::Scripting::ContextId contextId,
252 ::entt::meta_any& arg
253 );
254
255 MCAPI ::Scripting::ResultAny $reject(
256 ::Scripting::ContextId contextId,
258 ::entt::meta_any& arg
259 );
260
261 MCAPI ::Scripting::ResultAny $getFutureResult(
262 ::Scripting::ContextId contextId,
264 ::entt::meta_type const& expectedResultType
265 ) const;
266
267 MCAPI ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
268 $executeCoroutines(::std::optional<::std::chrono::microseconds> timeSlice);
269
270 MCAPI bool $hasPendingJobs();
271
272 MCAPI ::Scripting::IDebuggerController* $enableDebugger(::Scripting::IDebuggerTransport& transport);
273
274 MCAPI void $disableDebugger();
275
276 MCAPI void $startProfiler();
277
278 MCAPI void $stopProfiler(
279 ::std::function<void(::std::string_view)> captureCb,
280 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
281 );
282
283 MCAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
284
285 MCAPI ::std::optional<::Scripting::TypeNameInfo>
286 $getNameForType(::Scripting::ContextId contextId, ::entt::meta_type const& type, bool allowUnknownTypes) const;
287
288 MCAPI ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings settings);
289
290 MCAPI void $disableWatchdog();
291
292 MCFOLD ::Scripting::IWatchdog* $getWatchdog() const;
293 // NOLINTEND
294
295public:
296 // vftables
297 // NOLINTBEGIN
298 MCAPI static void** $vftable();
299 // NOLINTEND
300};
301
302} // namespace Scripting::QuickJS
Definition DependencyLocator.h:7
Definition IDebuggerTransport.h:7
Definition IDependencyLoader.h:13
Definition IPrinter.h:12
Definition QuickJSRuntime.h:42
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