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 virtual ~NativeRuntime() /*override*/ = default;
59
60 virtual ::std::optional<::Scripting::ScriptContext> createContext(
63 ::Scripting::IPrinter* printer,
65 ) /*override*/;
66
67 virtual void destroyContext(::Scripting::ContextId contextId) /*override*/;
68
69 virtual ::Scripting::ResultAny
70 run(::Scripting::ContextId contextId,
71 ::Scripting::IPayload* payload,
72 ::std::optional<::Scripting::Privilege> privilege) /*override*/;
73
74 virtual ::Scripting::ResultAny call(
77 ::entt::meta_any*,
78 uint,
79 ::entt::meta_type const&,
80 ::std::optional<::Scripting::Privilege>
81 ) /*override*/;
82
83 virtual ::Scripting::ResultAny resolve(
86 ::entt::meta_any&
87 ) /*override*/;
88
89 virtual ::Scripting::ResultAny reject(
92 ::entt::meta_any&
93 ) /*override*/;
94
95 virtual ::Scripting::FutureStatus
97 /*override*/;
98
99 virtual ::Scripting::ResultAny getFutureResult(
102 ::entt::meta_type const&
103 ) const /*override*/;
104
105 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
106 executeCoroutines(::std::optional<::Scripting::Privilege>) /*override*/;
107
108 virtual bool hasPendingJobs() /*override*/;
109
110 virtual ::Scripting::IDebuggerController*
112
113 virtual void disableDebugger() /*override*/;
114
115 virtual void startProfiler() /*override*/;
116
117 virtual void stopProfiler(
118 ::std::function<void(::std::string_view)>,
119 ::std::optional<::std::reference_wrapper<::std::string const>>
120 ) /*override*/;
121
122 virtual ::Scripting::RuntimeStats computeRuntimeStats() const /*override*/;
123
124 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings) /*override*/;
125
126 virtual void disableWatchdog() /*override*/;
127
128 virtual ::Scripting::IWatchdog* getWatchdog() const /*override*/;
129
130 virtual ::std::optional<::Scripting::TypeNameInfo>
131 getNameForType(::Scripting::ContextId, ::entt::meta_type const&, bool) const /*override*/;
132 // NOLINTEND
133
134public:
135 // member functions
136 // NOLINTBEGIN
137 MCAPI_S explicit NativeRuntime(::Scripting::RegistryManager& registryManager);
138
139 MCAPI_S ::Scripting::ResultAny runFunction(
140 ::Scripting::ContextId contextId,
141 ::std::function<::Scripting::ResultAny(
148 )> const& function
149 );
150 // NOLINTEND
151
152public:
153 // constructor thunks
154 // NOLINTBEGIN
155 MCAPI_S void* $ctor(::Scripting::RegistryManager& registryManager);
156 // NOLINTEND
157
158public:
159 // virtual function thunks
160 // NOLINTBEGIN
161#ifdef LL_PLAT_S
162 MCAPI ::std::optional<::Scripting::ScriptContext> $createContext(
165 ::Scripting::IPrinter* printer,
167 );
168
169 MCAPI void $destroyContext(::Scripting::ContextId contextId);
170
171 MCAPI ::Scripting::ResultAny $run(
172 ::Scripting::ContextId contextId,
173 ::Scripting::IPayload* payload,
174 ::std::optional<::Scripting::Privilege> privilege
175 );
176
177 MCFOLD ::Scripting::ResultAny $call(
180 ::entt::meta_any*,
181 uint,
182 ::entt::meta_type const&,
183 ::std::optional<::Scripting::Privilege>
184 );
185
186 MCFOLD ::Scripting::ResultAny
188
189 MCFOLD ::Scripting::ResultAny
191
192 MCFOLD ::Scripting::FutureStatus
194
195 MCFOLD ::Scripting::ResultAny $getFutureResult(
198 ::entt::meta_type const&
199 ) const;
200
201 MCFOLD ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
202 $executeCoroutines(::std::optional<::Scripting::Privilege>);
203
204 MCFOLD bool $hasPendingJobs();
205
206 MCFOLD ::Scripting::IDebuggerController*
208
209 MCFOLD void $disableDebugger();
210
211 MCFOLD void $startProfiler();
212
213 MCFOLD void $stopProfiler(
214 ::std::function<void(::std::string_view)>,
215 ::std::optional<::std::reference_wrapper<::std::string const>>
216 );
217
218 MCAPI ::Scripting::RuntimeStats $computeRuntimeStats() const;
219
220 MCFOLD ::Scripting::IWatchdog* $enableWatchdog(::Scripting::WatchdogSettings);
221
222 MCFOLD void $disableWatchdog();
223
224 MCFOLD ::Scripting::IWatchdog* $getWatchdog() const;
225
226 MCAPI ::std::optional<::Scripting::TypeNameInfo>
227 $getNameForType(::Scripting::ContextId, ::entt::meta_type const&, bool) const;
228#endif
229
230
231 // NOLINTEND
232};
233
234} // 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:12
Definition ResultAny.h:7
Definition ScriptContext.h:16
Definition WeakLifetimeScope.h:7
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