LeviLamina
Loading...
Searching...
No Matches
NativeRuntime.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/IRuntime.h"
10#include "mc/deps/scripting/runtime/Result_deprecated.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace Scripting { class IBreakpointValidator; }
15namespace Scripting { class IDebuggerController; }
16namespace Scripting { class IDebuggerTransport; }
17namespace Scripting { class IDependencyLoader; }
18namespace Scripting { class IPayload; }
19namespace Scripting { class IPrinter; }
20namespace Scripting { class IWatchdog; }
21namespace Scripting { class RegistryManager; }
22namespace Scripting { class ResultAny; }
23namespace Scripting { class ScriptContext; }
24namespace Scripting { class WeakLifetimeScope; }
25namespace Scripting { struct ClosureType; }
26namespace Scripting { struct CoRoutineResult; }
27namespace Scripting { struct ContextConfig; }
28namespace Scripting { struct ContextId; }
29namespace Scripting { struct FutureType; }
30namespace Scripting { struct ModuleBindingBundle; }
31namespace Scripting { struct PromiseType; }
32namespace Scripting { struct RuntimeContextData; }
33namespace Scripting { struct RuntimeStats; }
34namespace Scripting { struct TypeNameInfo; }
35namespace Scripting { struct WatchdogSettings; }
36// clang-format on
37
38namespace Scripting {
39
40class NativeRuntime : public ::Scripting::IRuntime, public ::std::enable_shared_from_this<::Scripting::NativeRuntime> {
41public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<8, 8, ::Scripting::RegistryManager&> mRegistryManager;
45 ::ll::TypedStorage<8, 64, ::std::unordered_map<uint, ::std::unique_ptr<::Scripting::RuntimeContextData>>>
46 mContextObjects;
47 // NOLINTEND
48
49public:
50 // prevent constructor by default
51 NativeRuntime& operator=(NativeRuntime const&);
52 NativeRuntime(NativeRuntime const&);
53 NativeRuntime();
54
55public:
56 // virtual functions
57 // NOLINTBEGIN
58#ifdef LL_PLAT_S
59 virtual ~NativeRuntime() /*override*/;
60#else // LL_PLAT_C
61 virtual ~NativeRuntime() /*override*/ = default;
62#endif
63
64#ifdef LL_PLAT_S
65 virtual ::std::optional<::Scripting::ScriptContext> createContext(
68 ::Scripting::IPrinter* printer,
70 ) /*override*/;
71#else // LL_PLAT_C
72 virtual ::std::optional<::Scripting::ScriptContext> createContext(
77 ) /*override*/;
78#endif
79
80#ifdef LL_PLAT_S
81 virtual void destroyContext(::Scripting::ContextId contextId) /*override*/;
82#else // LL_PLAT_C
83 virtual void destroyContext(::Scripting::ContextId) /*override*/;
84#endif
85
86#ifdef LL_PLAT_S
87 virtual ::Scripting::ResultAny
88 run(::Scripting::ContextId contextId,
89 ::Scripting::IPayload* payload,
90 ::std::optional<::Scripting::Privilege> privilege) /*override*/;
91#else // LL_PLAT_C
92 virtual ::Scripting::ResultAny
93 run(::Scripting::ContextId, ::Scripting::IPayload*, ::std::optional<::Scripting::Privilege>) /*override*/;
94#endif
95
96 virtual ::Scripting::ResultAny call(
99 ::entt::meta_any*,
100 uint,
101 ::entt::meta_type const&,
102 ::std::optional<::Scripting::Privilege>
103 ) /*override*/;
104
105 virtual ::Scripting::ResultAny resolve(
108 ::entt::meta_any&
109 ) /*override*/;
110
111 virtual ::Scripting::ResultAny reject(
114 ::entt::meta_any&
115 ) /*override*/;
116
117 virtual ::Scripting::FutureStatus
119 /*override*/;
120
121 virtual ::Scripting::ResultAny getFutureResult(
124 ::entt::meta_type const&
125 ) const /*override*/;
126
127 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
128 executeCoroutines(::std::optional<::Scripting::Privilege>) /*override*/;
129
130 virtual bool hasPendingJobs() /*override*/;
131
132 virtual ::Scripting::IDebuggerController*
134
135 virtual void disableDebugger() /*override*/;
136
137 virtual void startProfiler() /*override*/;
138
139 virtual void stopProfiler(
140 ::std::function<void(::std::string_view)>,
141 ::std::optional<::std::reference_wrapper<::std::string const>>
142 ) /*override*/;
143
144 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
145
146 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings) /*override*/;
147
148 virtual void disableWatchdog() /*override*/;
149
150 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
151
152 virtual ::std::optional<::Scripting::TypeNameInfo>
153 getNameForType(::Scripting::ContextId, ::entt::meta_type const&, bool) const /*override*/;
154 // NOLINTEND
155
156public:
157 // member functions
158 // NOLINTBEGIN
159#ifdef LL_PLAT_S
160 MCAPI explicit NativeRuntime(::Scripting::RegistryManager& registryManager);
161
162 MCAPI ::Scripting::ResultAny runFunction(
163 ::Scripting::ContextId contextId,
164 ::std::function<::Scripting::ResultAny(
171 )> const& function
172 );
173#endif
174 // NOLINTEND
175
176public:
177 // constructor thunks
178 // NOLINTBEGIN
179#ifdef LL_PLAT_S
180 MCAPI void* $ctor(::Scripting::RegistryManager& registryManager);
181#endif
182 // NOLINTEND
183
184public:
185 // destructor thunk
186 // NOLINTBEGIN
187 MCAPI void $dtor();
188 // NOLINTEND
189
190public:
191 // virtual function thunks
192 // NOLINTBEGIN
193#ifdef LL_PLAT_S
194 MCAPI ::std::optional<::Scripting::ScriptContext> $createContext(
197 ::Scripting::IPrinter* printer,
199 );
200
201 MCAPI void $destroyContext(::Scripting::ContextId contextId);
202
203 MCAPI ::Scripting::ResultAny $run(
204 ::Scripting::ContextId contextId,
205 ::Scripting::IPayload* payload,
206 ::std::optional<::Scripting::Privilege> privilege
207 );
208
209 MCFOLD ::Scripting::ResultAny $call(
212 ::entt::meta_any*,
213 uint,
214 ::entt::meta_type const&,
215 ::std::optional<::Scripting::Privilege>
216 );
217
218 MCFOLD ::Scripting::ResultAny
220
221 MCFOLD ::Scripting::ResultAny
223
224 MCFOLD ::Scripting::FutureStatus
226
227 MCFOLD ::Scripting::ResultAny $getFutureResult(
230 ::entt::meta_type const&
231 ) const;
232
233 MCFOLD ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
234 $executeCoroutines(::std::optional<::Scripting::Privilege>);
235
236 MCFOLD bool $hasPendingJobs();
237
238 MCFOLD ::Scripting::IDebuggerController*
240
241 MCFOLD void $disableDebugger();
242
243 MCFOLD void $startProfiler();
244
245 MCFOLD void $stopProfiler(
246 ::std::function<void(::std::string_view)>,
247 ::std::optional<::std::reference_wrapper<::std::string const>>
248 );
249
250 MCAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
251
252 MCFOLD ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings);
253
254 MCFOLD void $disableWatchdog();
255
256 MCFOLD ::Scripting::IWatchdog* $getWatchdog() const;
257
258 MCAPI ::std::optional<::Scripting::TypeNameInfo>
259 $getNameForType(::Scripting::ContextId, ::entt::meta_type const&, bool) const;
260#endif
261
262
263 // NOLINTEND
264};
265
266} // namespace Scripting
Definition IBreakpointValidator.h:7
Definition IDebuggerController.h:7
Definition IDebuggerTransport.h:7
Definition IDependencyLoader.h:12
Definition IPayload.h:18
Definition IPrinter.h:13
Definition IRuntime.h:37
Definition IWatchdog.h:16
Definition NativeRuntime.h:40
Definition RegistryManager.h:13
Definition ResultAny.h:7
Definition ScriptContext.h:20
Definition WeakLifetimeScope.h:14
Definition ClosureType.h:7
Definition CoRoutineResult.h:7
Definition ContextConfig.h:20
Definition ContextId.h:7
Definition FutureType.h:7
Definition ModuleBindingBundle.h:15
Definition PromiseType.h:7
Definition RuntimeContextData.h:17
Definition RuntimeStats.h:7
Definition TypeNameInfo.h:7
Definition TypedObjectHandle.h:8
Definition WatchdogSettings.h:7