Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
ScriptPluginManager.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/resource/ResourceInformation.h"
7#include "mc/deps/core/utility/NonOwnerPointer.h"
8#include "mc/deps/script_core/lifetime_registry/scripting/WeakLifetimeScope.h"
9#include "mc/deps/script_core/reflection/scripting/Privilege.h"
10#include "mc/deps/script_core/runtime/scripting/RuntimeConditions.h"
11#include "mc/scripting/PluginExecutionGroup.h"
12#include "mc/scripting/modules/FilterResult.h"
13#include "mc/util/BaseGameVersion.h"
14
15// auto generated forward declare list
16// clang-format off
17class DebuggerStat;
20class PackManifest;
21class ScriptPlugin;
24class ServerLevel;
25namespace Scripting { class DependencyLocator; }
26namespace Scripting { class IRuntime; }
27namespace Scripting { class ScriptEngine; }
28namespace Scripting { struct ModuleDescriptor; }
29namespace Scripting { struct RuntimeStats; }
30namespace mce { class UUID; }
31// clang-format on
32
33class ScriptPluginManager {
34public:
35 // ScriptPluginManager inner types declare
36 // clang-format off
38 // clang-format on
39
40 // ScriptPluginManager inner types define
42 public:
43 // member variables
44 // NOLINTBEGIN
45 ::ll::TypedStorage<8, 32, ::std::string> name;
46 ::ll::TypedStorage<8, 16, ::Scripting::WeakLifetimeScope> scope;
47 // NOLINTEND
48 };
49
50public:
51 // member variables
52 // NOLINTBEGIN
53 ::ll::TypedStorage<8, 32, ::BaseGameVersion> mBaseGameVersion;
54 ::ll::TypedStorage<8, 8, ::Scripting::ScriptEngine&> mScriptEngine;
55 ::ll::TypedStorage<8, 24, ::std::vector<::std::unique_ptr<::ScriptPlugin>>> mScriptPlugins;
56 ::ll::TypedStorage<8, 24, ::Scripting::RuntimeConditions> mCurrentRuntimeConditions;
57 ::ll::TypedStorage<1, 1, bool> mSystemPackDiscoveryError;
58 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DebuggerStatCollector>> mMemoryStatCollector;
59 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DebuggerStatCollector>> mHandleCountStatCollector;
60 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DebuggerStatCollector>> mSubscriberCountStatCollector;
61 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DebuggerStatCollector>> mQuickJsStatCollector;
62 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::DebuggerStatCollector>> mScriptingStatCollector;
63 // NOLINTEND
64
65public:
66 // prevent constructor by default
67 ScriptPluginManager& operator=(ScriptPluginManager const&);
68 ScriptPluginManager(ScriptPluginManager const&);
69 ScriptPluginManager();
70
71public:
72 // member functions
73 // NOLINTBEGIN
74 MCNAPI void _collectHandleCountStats(::DebuggerStat& pluginStats, uint64, uint64, uint64);
75
76 MCNAPI void _collectMemoryStats(::DebuggerStat& javaScriptStats);
77
78 MCNAPI void _collectQuickJsStats(::DebuggerStat& javaScriptStats);
79
80 MCNAPI void
81 _collectScriptingStats(::std::reference_wrapper<::ServerLevel> serverLevel, ::DebuggerStat& allScriptingStats);
82
84 ::Bedrock::NotNullNonOwnerPtr<::ServerLevel> serverLevel,
85 ::gsl::not_null<::Scripting::DependencyLocator*> locator,
86 ::DebuggerStat& subscriberStats
87 );
88
89#ifdef LL_PLAT_C
90 MCAPI void _createPluginContext(::ScriptPlugin& plugin, ::ScriptPluginResult& pluginResult);
91#endif
92
93#ifdef LL_PLAT_S
94 MCNAPI void _createPluginContext(::ScriptPlugin& plugin, ::ScriptPluginResult& pluginResult);
95#endif
96
97 MCNAPI void _disableHandleCounter();
98
99 MCNAPI void _enableHandleCounter();
100
101 MCNAPI void _reloadHandleCounter(bool publisherEnabled);
102
103#ifdef LL_PLAT_C
104 MCNAPI void
105 _runPlugin(::ScriptPlugin& plugin, ::ScriptPluginResult& pluginResult, ::Scripting::Privilege privilege);
106#endif
107
108 MCNAPI ::Scripting::RuntimeStats collectRuntimeStats() const;
109
110#ifdef LL_PLAT_C
111 MCNAPI ::ScriptPluginManagerResult createContextsForGroup(::PluginExecutionGroup group);
112#endif
113
114 MCNAPI ::ScriptPluginManagerResult discoverPlugins(
115 ::ResourceInformation::ResourceType moduleType,
116 ::IScriptPluginSourceEnumerator& pluginEnumerator,
117 ::std::vector<::std::function<::ScriptModuleFilters::FilterResult(
118 ::PackManifest const&,
122 )>> const& moduleFilters,
123 ::std::vector<::mce::UUID> excludeModuleIDs,
124 ::std::function<::PluginExecutionGroup(::std::vector<::Scripting::ModuleDescriptor> const&)>&&
125 pluginExecutionGroupSelector
126 );
127
128 MCNAPI void forEachRuntime(::std::function<void(::Scripting::IRuntime&)> func);
129
130 MCNAPI ::std::vector<::ScriptPluginManager::PackNameAndWeakScope> getPluginScopes() const;
131
132#ifdef LL_PLAT_C
133 MCNAPI ::ScriptPluginManagerResult runGroup(::PluginExecutionGroup group);
134#endif
135
137 // NOLINTEND
138
139public:
140 // destructor thunk
141 // NOLINTBEGIN
142 MCNAPI void $dtor();
143 // NOLINTEND
144};
Definition DebuggerStatCollector.h:15
Definition DebuggerStat.h:10
Definition IScriptPluginSourceEnumerator.h:10
Definition PackManifest.h:39
Definition ScriptPluginManagerResult.h:12
MCAPI void _disableHandleCounter()
MCAPI void _collectSubscriberCountStats(::Bedrock::NotNullNonOwnerPtr<::ServerLevel > serverLevel, ::gsl::not_null<::Scripting::DependencyLocator * > locator, ::DebuggerStat &subscriberStats)
MCAPI void $dtor()
MCAPI::ScriptPluginManagerResult discoverPlugins(::ResourceInformation::ResourceType moduleType, ::IScriptPluginSourceEnumerator &pluginEnumerator, ::std::vector<::std::function<::ScriptModuleFilters::FilterResult(::PackManifest const &, ::Scripting::ModuleDescriptor const &, ::Scripting::ModuleDescriptor const &, ::ScriptPluginResult &)> > const &moduleFilters, ::std::vector<::mce::UUID > excludeModuleIDs, ::std::function<::PluginExecutionGroup(::std::vector<::Scripting::ModuleDescriptor > const &)> &&pluginExecutionGroupSelector)
MCAPI ::std::vector<::ScriptPluginManager::PackNameAndWeakScope > getPluginScopes() const
MCAPI::Scripting::RuntimeStats collectRuntimeStats() const
MCAPI void _collectScriptingStats(::std::reference_wrapper<::ServerLevel > serverLevel, ::DebuggerStat &allScriptingStats)
MCAPI void _reloadHandleCounter(bool publisherEnabled)
MCAPI void _collectMemoryStats(::DebuggerStat &javaScriptStats)
MCAPI ~ScriptPluginManager()
MCAPI void _collectHandleCountStats(::DebuggerStat &pluginStats, uint64, uint64, uint64)
MCAPI void forEachRuntime(::std::function< void(::Scripting::IRuntime &)> func)
MCAPI void _enableHandleCounter()
MCAPI void _collectQuickJsStats(::DebuggerStat &javaScriptStats)
Definition ScriptPluginResult.h:9
Definition ScriptPlugin.h:28
Definition DependencyLocator.h:7
Definition IRuntime.h:37
Definition ScriptEngine.h:21
Definition ServerLevel.h:58
Definition UUID.h:8
Definition ScriptPluginManager.h:41
Definition ModuleDescriptor.h:7
Definition RuntimeStats.h:7