LeviLamina
Loading...
Searching...
No Matches
IRuntime.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
11// auto generated forward declare list
12// clang-format off
13namespace Scripting { class IBreakpointValidator; }
14namespace Scripting { class IDebuggerController; }
15namespace Scripting { class IDebuggerTransport; }
16namespace Scripting { class IDependencyLoader; }
17namespace Scripting { class IPayload; }
18namespace Scripting { class IPrinter; }
19namespace Scripting { class IWatchdog; }
20namespace Scripting { class ResultAny; }
21namespace Scripting { class ScriptContext; }
22namespace Scripting { struct ClosureType; }
23namespace Scripting { struct CoRoutineResult; }
24namespace Scripting { struct ContextConfig; }
25namespace Scripting { struct ContextId; }
26namespace Scripting { struct FutureType; }
27namespace Scripting { struct IRuntimeMetadata; }
28namespace Scripting { struct ModuleBindingBundle; }
29namespace Scripting { struct PromiseType; }
30namespace Scripting { struct RuntimeStats; }
31namespace Scripting { struct TypeNameInfo; }
32namespace Scripting { struct WatchdogSettings; }
33// clang-format on
34
35namespace Scripting {
36
37class IRuntime {
38public:
39 // virtual functions
40 // NOLINTBEGIN
41 virtual ~IRuntime() = default;
42
43 virtual ::Scripting::IRuntimeMetadata* getMetadata() const;
44
45 virtual void moveToThread();
46
47 virtual ::std::optional<::Scripting::ScriptContext> createContext(
52 ) = 0;
53
54 virtual void destroyContext(::Scripting::ContextId) = 0;
55
56 virtual ::Scripting::ResultAny
57 run(::Scripting::ContextId, ::Scripting::IPayload*, ::std::optional<::Scripting::Privilege>) = 0;
58
59 virtual ::Scripting::ResultAny call(
62 ::entt::meta_any*,
63 uint,
64 ::entt::meta_type const&,
65 ::std::optional<::Scripting::Privilege>
66 ) = 0;
67
68 virtual ::Scripting::ResultAny
70
71 virtual ::Scripting::ResultAny
73
74 virtual ::Scripting::FutureStatus
76
77 virtual ::Scripting::ResultAny getFutureResult(
80 ::entt::meta_type const&
81 ) const = 0;
82
83 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult>
84 executeCoroutines(::std::optional<::Scripting::Privilege>) = 0;
85
86 virtual bool hasPendingJobs() = 0;
87
88 virtual ::Scripting::IDebuggerController*
90
91 virtual void disableDebugger() = 0;
92
93 virtual void startProfiler() = 0;
94
95 virtual void stopProfiler(
96 ::std::function<void(::std::string_view)>,
97 ::std::optional<::std::reference_wrapper<::std::string const>>
98 ) = 0;
99
100 virtual ::Scripting::RuntimeStats computeRuntimeStats() const = 0;
101
102 virtual ::Scripting::IWatchdog* enableWatchdog(::Scripting::WatchdogSettings) = 0;
103
104 virtual void disableWatchdog() = 0;
105
106 virtual ::Scripting::IWatchdog* getWatchdog() const = 0;
107
108 virtual ::std::optional<::Scripting::TypeNameInfo>
109 getNameForType(::Scripting::ContextId, ::entt::meta_type const&, bool) const = 0;
110 // NOLINTEND
111
112public:
113 // virtual function thunks
114 // NOLINTBEGIN
115#ifdef LL_PLAT_S
116 MCFOLD ::Scripting::IRuntimeMetadata* $getMetadata() const;
117
118 MCFOLD void $moveToThread();
119#endif
120
121
122 // NOLINTEND
123};
124
125} // 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 ResultAny.h:7
Definition ScriptContext.h:16
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 RuntimeStats.h:7
Definition TypeNameInfo.h:7
Definition TypedObjectHandle.h:8
Definition WatchdogSettings.h:7