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; }
16// clang-format on
17
18namespace Scripting {
19
21public:
22 // member variables
23 // NOLINTBEGIN
28 // NOLINTEND
29
30public:
31 // prevent constructor by default
32 ScriptEngine& operator=(ScriptEngine const&);
35
36public:
37 // member functions
38 // NOLINTBEGIN
39 MCAPI explicit ScriptEngine(::Scripting::RegistryManager* registryManager);
40
41 MCAPI void addModuleBindingFactory(::std::unique_ptr<::Scripting::IModuleBindingFactory> moduleBindingFactory);
42
43 MCAPI ::Scripting::ScriptContextResult createScriptingContext(
44 ::Scripting::ContextConfig const& config,
45 ::Scripting::ModuleDescriptor const& forModule,
46 ::std::vector<::Scripting::ModuleDescriptor> const& dependencies,
49 );
50
51 MCAPI ::std::optional<::Scripting::ModuleDescriptor> getModuleDescriptorByName(::std::string const& name) const;
52
53 MCAPI ::std::vector<::Scripting::SupportedBindingModule> getSupportedBindingModules() const;
54
55 MCAPI void setRuntimeFactory(
56 ::std::function<::std::shared_ptr<
57 ::Scripting::
58 IRuntime>(::Scripting::ContextConfig const&, ::std::vector<::Scripting::ModuleDescriptor> const&)>
59 factoryFn
60 );
61
62 MCAPI ~ScriptEngine();
63 // NOLINTEND
64
65public:
66 // constructor thunks
67 // NOLINTBEGIN
68 MCAPI void* $ctor(::Scripting::RegistryManager* registryManager);
69 // NOLINTEND
70
71public:
72 // destructor thunk
73 // NOLINTBEGIN
74 MCAPI void $dtor();
75 // NOLINTEND
76};
77
78} // namespace Scripting
Definition IDependencyLoader.h:13
Definition IPrinter.h:12
Definition IRuntime.h:36
Definition RegistryManager.h:12
Definition ScriptEngine.h:20
Definition ContextConfig.h:7
Definition ModuleDescriptor.h:7
Definition Alias.h:14