3#include "mc/_HeaderOutputPredefine.h"
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"
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; }
39namespace Scripting::QuickJS {
42 public ::std::enable_shared_from_this<::Scripting::QuickJS::QuickJSRuntime> {
72 virtual ::Scripting::IRuntimeMetadata* getMetadata()
const ;
75 virtual void moveToThread() ;
78 virtual ::std::optional<::Scripting::ScriptContext> createContext(
89 virtual ::Scripting::ResultAny runString(
91 ::std::string
const& scriptName,
92 ::std::string
const& scriptData,
93 ::std::optional<::Scripting::Privilege> privilege
97 virtual ::Scripting::ResultAny call(
100 ::entt::meta_any* args,
102 ::entt::meta_type
const& expectedReturnType,
103 ::std::optional<::Scripting::Privilege> privilege
107 virtual ::Scripting::ResultAny resolve(
110 ::entt::meta_any& arg
114 virtual ::Scripting::ResultAny reject(
117 ::entt::meta_any& arg
121 virtual ::Scripting::FutureStatus
126 virtual ::Scripting::ResultAny getFutureResult(
129 ::entt::meta_type
const& expectedResultType
133 virtual ::Scripting::Result_deprecated<::Scripting::CoRoutineResult> executeCoroutines(
134 ::std::optional<::std::chrono::microseconds> timeSlice,
135 ::std::optional<::Scripting::Privilege> privilege
139 virtual bool hasPendingJobs() ;
145 virtual void disableDebugger() ;
148 virtual void startProfiler() ;
151 virtual void stopProfiler(
152 ::std::function<
void(::std::string_view)> captureCb,
153 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
157 virtual ::Scripting::RuntimeStats computeRuntimeStats()
const ;
160 virtual ::std::optional<::Scripting::TypeNameInfo>
161 getNameForType(
::Scripting::ContextId contextId, ::entt::meta_type
const& type,
bool allowUnknownTypes)
const
168 virtual void disableWatchdog() ;
171 virtual ::Scripting::IWatchdog* getWatchdog()
const ;
179 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
181 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
183 ::std::string(::std::string_view
const&, ::std::string
const&, ::std::vector<::std::string>
const&)>
207 ::std::unique_ptr<::Scripting::IRuntimeMetadata> metadata,
209 ::std::unique_ptr<::Scripting::QuickJS::MallocFunctions> mallocFns,
211 ::std::string(::std::string_view
const&, ::std::string
const&, ::std::vector<::std::string>
const&)>
240 ::std::string
const& scriptName,
241 ::std::string
const& scriptData,
242 ::std::optional<::Scripting::Privilege> privilege
245 MCNAPI ::Scripting::ResultAny
$call(
248 ::entt::meta_any* args,
250 ::entt::meta_type
const& expectedReturnType,
251 ::std::optional<::Scripting::Privilege> privilege
257 ::entt::meta_any& arg
263 ::entt::meta_any& arg
269 ::entt::meta_type
const& expectedResultType
273 ::std::optional<::std::chrono::microseconds> timeSlice,
274 ::std::optional<::Scripting::Privilege> privilege
286 ::std::function<
void(::std::string_view)> captureCb,
287 ::std::optional<::std::reference_wrapper<::std::string const>> savePathOpt
292 MCNAPI ::std::optional<::Scripting::TypeNameInfo>
Definition DependencyLocator.h:7
Definition IDebuggerTransport.h:7
Definition IDependencyLoader.h:12
Definition QuickJSRuntime.h:42
MCAPI void $moveToThread()
MCAPI void * $ctor(::Scripting::RegistryManager ®istryManager, ::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 ®istryManager, ::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
MCAPI void $disableWatchdog()
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 void $startProfiler()
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 bool $hasPendingJobs()
MCAPI::Scripting::IDebuggerController * $enableDebugger(::Scripting::IDebuggerTransport &transport)
MCAPI::Scripting::ResultAny $reject(::Scripting::ContextId contextId, ::Scripting::TypedObjectHandle<::Scripting::PromiseType > promise, ::entt::meta_any &arg)
MCAPI void $disableDebugger()
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 JSModuleDef.h:8
Definition ContextConfig.h:7
Definition ModuleBindingBundle.h:7
Definition TypedObjectHandle.h:8
Definition WatchdogSettings.h:7