LeviLamina
Loading...
Searching...
No Matches
ScriptEngine.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace Scripting { class IDependencyLoader; }
8namespace Scripting { class IModuleBindingFactory; }
9namespace Scripting { class IPrinter; }
10namespace Scripting { class IRuntime; }
11namespace Scripting { class RegistryManager; }
12namespace Scripting { struct ContextConfig; }
13namespace Scripting { struct ModuleDescriptor; }
14namespace Scripting { struct ScriptContextResult; }
15namespace Scripting { struct SupportedBindingModule; }
16namespace Scripting { struct Version; }
17namespace mce { class UUID; }
18// clang-format on
19
20namespace Scripting {
21
22class ScriptEngine {
23public:
24 // member variables
25 // NOLINTBEGIN
30 // NOLINTEND
31
32public:
33 // prevent constructor by default
34 ScriptEngine& operator=(ScriptEngine const&);
35 ScriptEngine(ScriptEngine const&);
36 ScriptEngine();
37
38public:
39 // member functions
40 // NOLINTBEGIN
41 MCNAPI explicit ScriptEngine(::Scripting::RegistryManager* registryManager);
42
43 MCNAPI ::Scripting::IModuleBindingFactory* _getModuleBindingFactoryByName(::std::string const& name) const;
44
45 MCNAPI void addModuleBindingFactory(::std::unique_ptr<::Scripting::IModuleBindingFactory> moduleBindingFactory);
46
47#ifdef LL_PLAT_S
48 MCNAPI void clearRuntimeFactory();
49#endif
50
51 MCNAPI ::Scripting::ScriptContextResult createScriptingContext(
52 ::Scripting::ContextConfig const& config,
53 ::Scripting::ModuleDescriptor const& forModule,
54 ::std::vector<::Scripting::ModuleDescriptor> const& dependencies,
57 );
58
59 MCNAPI ::std::optional<::Scripting::Version>
60 getLatestVersionOfModuleWithPreRelease(::std::string const& name, ::std::string_view preRelease) const;
61
62 MCNAPI ::std::optional<::Scripting::ModuleDescriptor> getModuleDescriptor(::mce::UUID uuid) const;
63
64 MCNAPI ::std::optional<::Scripting::ModuleDescriptor> getModuleDescriptorByName(::std::string const& name) const;
65
66 MCNAPI ::Scripting::RegistryManager& getRegistryManager();
67
68 MCNAPI ::std::vector<::Scripting::SupportedBindingModule> getSupportedBindingModules() const;
69
70 MCNAPI bool hasModuleBindingFactoryByName(::std::string const& name) const;
71
72 MCNAPI void setRuntimeFactory(
73 ::std::function<::std::shared_ptr<::Scripting::IRuntime>(
75 ::std::vector<::Scripting::ModuleDescriptor> const&
76 )> factoryFn
77 );
78
79 MCNAPI ~ScriptEngine();
80 // NOLINTEND
81
82public:
83 // constructor thunks
84 // NOLINTBEGIN
85 MCNAPI void* $ctor(::Scripting::RegistryManager* registryManager);
86 // NOLINTEND
87
88public:
89 // destructor thunk
90 // NOLINTBEGIN
91 MCNAPI void $dtor();
92 // NOLINTEND
93};
94
95} // namespace Scripting
Definition IDependencyLoader.h:12
Definition IModuleBindingFactory.h:16
Definition IPrinter.h:13
Definition IRuntime.h:37
Definition RegistryManager.h:13
MCAPI bool hasModuleBindingFactoryByName(::std::string const &name) const
MCAPI ::std::optional<::Scripting::ModuleDescriptor > getModuleDescriptorByName(::std::string const &name) const
MCAPI ::std::vector<::Scripting::SupportedBindingModule > getSupportedBindingModules() const
MCAPI::Scripting::RegistryManager & getRegistryManager()
MCAPI ::std::optional<::Scripting::ModuleDescriptor > getModuleDescriptor(::mce::UUID uuid) const
MCAPI void addModuleBindingFactory(::std::unique_ptr<::Scripting::IModuleBindingFactory > moduleBindingFactory)
MCAPI void setRuntimeFactory(::std::function<::std::shared_ptr<::Scripting::IRuntime >(::Scripting::ContextConfig const &, ::std::vector<::Scripting::ModuleDescriptor > const &)> factoryFn)
MCAPI void * $ctor(::Scripting::RegistryManager *registryManager)
MCAPI ::std::optional<::Scripting::Version > getLatestVersionOfModuleWithPreRelease(::std::string const &name, ::std::string_view preRelease) const
MCAPI ScriptEngine(::Scripting::RegistryManager *registryManager)
MCAPI::Scripting::IModuleBindingFactory * _getModuleBindingFactoryByName(::std::string const &name) const
MCAPI::Scripting::ScriptContextResult createScriptingContext(::Scripting::ContextConfig const &config, ::Scripting::ModuleDescriptor const &forModule, ::std::vector<::Scripting::ModuleDescriptor > const &dependencies, ::Scripting::IDependencyLoader *loader, ::Scripting::IPrinter *printer)
Definition UUID.h:7
Definition ContextConfig.h:20
Definition ModuleDescriptor.h:7
Definition ScriptContextResult.h:7
Definition SupportedBindingModule.h:7
Definition Version.h:7
Definition Alias.h:14