LeviLamina
Loading...
Searching...
No Matches
EditorExtensionServiceProvider.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/NonOwnerPointer.h"
7#include "mc/deps/script_core/lifetime_registry/scripting/TypedObjectHandle.h"
8#include "mc/deps/script_core/runtime/scripting/Result_deprecated.h"
9#include "mc/deps/script_core/script_engine/scripting/Closure.h"
10#include "mc/editor/script/ServerScriptPackType.h"
11
12// auto generated forward declare list
13// clang-format off
14namespace Bedrock::PubSub { class Subscription; }
15namespace Editor::API { class EditorExtension; }
16namespace Editor::API { class EditorExtensionContext; }
17namespace Editor::API { struct EditorExtensionOptionalParameters; }
18namespace Scripting { class WeakLifetimeScope; }
19namespace Scripting { struct ContextId; }
20// clang-format on
21
22namespace Editor::API {
23
25public:
26 // virtual functions
27 // NOLINTBEGIN
28 virtual ~EditorExtensionServiceProvider() = default;
29
30 virtual ::Scripting::Result_deprecated<::Bedrock::NonOwnerPointer<::Editor::API::EditorExtension>>
31 registerExtension(
32 ::std::string const& extensionName,
35 activationClosure,
37 sessionLifecycleClosure,
39 shutdownClosure,
40 ::std::optional<::Editor::API::EditorExtensionOptionalParameters> options,
41 ::Editor::API::ServerScriptPackType packType
42 ) = 0;
43
44 virtual ::Scripting::Result_deprecated<::Bedrock::NotNullNonOwnerPtr<::Editor::API::EditorExtension>>
45 getExtension(::std::string const& extensionName) = 0;
46
47 virtual bool hasExtension(::std::string const& extensionName) = 0;
48
49 virtual void
50 forEachExtension(::std::function<void(::Bedrock::NotNullNonOwnerPtr<::Editor::API::EditorExtension>)> func) = 0;
51
52 virtual void forEachExtensionOrdered(
53 ::std::function<void(::Bedrock::NotNullNonOwnerPtr<::Editor::API::EditorExtension>)> func
54 ) = 0;
55
56 virtual void forEachExtensionReverse(
57 ::std::function<void(::Bedrock::NotNullNonOwnerPtr<::Editor::API::EditorExtension>)> func
58 ) = 0;
59
60 virtual ::Scripting::Result_deprecated<::Bedrock::PubSub::Subscription> registerForScriptSystemRebuildEvent(
61 ::std::function<::Scripting::Result_deprecated<void>(::std::optional<::Scripting::ContextId>)> handler
62 ) = 0;
63
64 virtual ::Scripting::Result_deprecated<::Bedrock::PubSub::Subscription>
65 registerForScriptSystemTeardownEvent(::std::function<::Scripting::Result_deprecated<void>()> handler) = 0;
66
67 virtual ::Scripting::Result_deprecated<void> destroyRegisteredExtensions() = 0;
68
69 virtual ::Scripting::Result_deprecated<void> createExtensionContexts(bool shouldNotify) = 0;
70 // NOLINTEND
71};
72
73} // namespace Editor::API
Definition Subscription.h:10
Definition EditorExtensionContext.h:26
Definition EditorExtensionServiceProvider.h:24
Definition EditorExtension.h:10
Definition Closure.h:8
Definition Result_deprecated.h:8
Definition WeakLifetimeScope.h:12
Definition EditorExtensionOptionalParameters.h:7
Definition ContextId.h:7
Definition TypedObjectHandle.h:8