LeviLamina
Loading...
Searching...
No Matches
TransactionManagerService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/game_refs/WeakRef.h"
7#include "mc/deps/script_core/runtime/scripting/Result_deprecated.h"
8#include "mc/editor/services/IEditorService.h"
9#include "mc/server/editor/serviceproviders/TransactionManagerServiceProvider.h"
10#include "mc/world/events/EventListenerDispatcher.h"
11#include "mc/world/events/EventResult.h"
12#include "mc/world/events/PlayerEventListener.h"
13
14// auto generated forward declare list
15// clang-format off
17namespace Bedrock::PubSub { class Subscription; }
18namespace Editor { class ServiceProviderCollection; }
19namespace Editor::Network { class RedoOperationPayload; }
20namespace Editor::Network { class UndoOperationPayload; }
21namespace Editor::Transactions { class PendingTransaction; }
22namespace Editor::Transactions { class TransactionContext; }
23namespace Editor::Transactions { struct TransactionEvent; }
24namespace Editor::Transactions { struct TransactionOperationEvent; }
25namespace mce { class UUID; }
26// clang-format on
27
28namespace Editor::Services {
29
30class TransactionManagerService : public ::Editor::Services::IEditorService,
32 public ::EventListenerDispatcher<::PlayerEventListener> {
33public:
34 // TransactionManagerService inner types declare
35 // clang-format off
36 struct Request;
37 struct TransactionCount;
38 // clang-format on
39
40 // TransactionManagerService inner types define
41 struct Request {
42 public:
43 // Request inner types define
44 enum class State : int {
45 Waiting = 0,
46 Processing = 1,
47 Completed = 2,
48 };
49
50 enum class Type : int {
51 Undo = 0,
52 Redo = 1,
53 Add = 2,
54 };
55
56 public:
57 // member variables
58 // NOLINTBEGIN
63 // NOLINTEND
64
65 public:
66 // prevent constructor by default
67 Request& operator=(Request const&);
68 Request(Request const&);
69 Request();
70 };
71
72 struct TransactionCount {
73 public:
74 // member variables
75 // NOLINTBEGIN
78 // NOLINTEND
79
80 public:
81 // prevent constructor by default
82 TransactionCount& operator=(TransactionCount const&);
83 TransactionCount(TransactionCount const&);
84 TransactionCount();
85 };
86
87public:
88 // member variables
89 // NOLINTBEGIN
101 // NOLINTEND
102
103public:
104 // prevent constructor by default
105 TransactionManagerService& operator=(TransactionManagerService const&);
106 TransactionManagerService(TransactionManagerService const&);
107 TransactionManagerService();
108
109public:
110 // virtual functions
111 // NOLINTBEGIN
112 virtual ~TransactionManagerService() /*override*/ = default;
113
114 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
115
116 virtual ::Scripting::Result_deprecated<void> ready() /*override*/;
117
118 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
119
120 virtual ::std::string_view getServiceName() const /*override*/;
121
122 virtual ::WeakRef<::Editor::Transactions::PendingTransaction>
123 createPendingTransaction(::std::string const& name) /*override*/;
124
125 virtual ::WeakRef<::Editor::Transactions::PendingTransaction>
126 getPendingTransaction(::mce::UUID const& id) /*override*/;
127
128 virtual ::std::vector<::WeakRef<::Editor::Transactions::PendingTransaction>>
129 getPendingTransactionsByName(::std::string const& name) /*override*/;
130
131 virtual ::Scripting::Result_deprecated<void> discardPendingTransaction(::mce::UUID const& id) /*override*/;
132
133 virtual ::Scripting::Result_deprecated<void> finalizePendingTransaction(::mce::UUID const& id) /*override*/;
134
135 virtual uint64 pendingTransactionCount() const /*override*/;
136
137 virtual ::Bedrock::PubSub::Subscription registerTransactionEventListener(
138 ::std::function<void(::Editor::Transactions::TransactionEvent const&)> callback
139 ) /*override*/;
140
141 virtual ::Bedrock::PubSub::Subscription registerTransactionOperationEventListener(
142 ::std::function<void(::Editor::Transactions::TransactionOperationEvent const&)> callback
143 ) /*override*/;
144
145 virtual void
146 addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext) /*override*/;
147
148 virtual void clearTransactions() /*override*/;
149
150 virtual ::Scripting::Result_deprecated<void> undo() /*override*/;
151
152 virtual ::Scripting::Result_deprecated<void> redo() /*override*/;
153
154 virtual uint64 undoSize() const /*override*/;
155
156 virtual uint64 redoSize() const /*override*/;
157
158 virtual void clearAllTransactionData() /*override*/;
159
160 virtual ::EventResult onEvent(::PlayerDimensionChangeBeforeEvent const&) /*override*/;
161 // NOLINTEND
162
163public:
164 // member functions
165 // NOLINTBEGIN
166 MCNAPI explicit TransactionManagerService(::Editor::ServiceProviderCollection& providers);
167
168 MCNAPI ::Scripting::Result_deprecated<void>
169 _addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext);
170
171 MCNAPI void _clearHistory();
172
173 MCNAPI void _handleRedoMessage(::Editor::Network::RedoOperationPayload const&);
174
175 MCNAPI void _handleUndoMessage(::Editor::Network::UndoOperationPayload const&);
176
177 MCNAPI void _queueOperationEvent(::Editor::Transactions::TransactionOperationEvent evt);
178
179 MCNAPI void tick(::Editor::ServiceProviderCollection&);
180 // NOLINTEND
181
182public:
183 // constructor thunks
184 // NOLINTBEGIN
185 MCNAPI void* $ctor(::Editor::ServiceProviderCollection& providers);
186 // NOLINTEND
187
188public:
189 // virtual function thunks
190 // NOLINTBEGIN
191 MCNAPI ::Scripting::Result_deprecated<void> $init();
192
193 MCNAPI ::Scripting::Result_deprecated<void> $ready();
194
195 MCNAPI ::Scripting::Result_deprecated<void> $quit();
196
197 MCNAPI ::std::string_view $getServiceName() const;
198
199 MCNAPI ::WeakRef<::Editor::Transactions::PendingTransaction> $createPendingTransaction(::std::string const& name);
200
201 MCNAPI ::WeakRef<::Editor::Transactions::PendingTransaction> $getPendingTransaction(::mce::UUID const& id);
202
203 MCNAPI ::std::vector<::WeakRef<::Editor::Transactions::PendingTransaction>>
204 $getPendingTransactionsByName(::std::string const& name);
205
206 MCNAPI ::Scripting::Result_deprecated<void> $discardPendingTransaction(::mce::UUID const& id);
207
208 MCNAPI ::Scripting::Result_deprecated<void> $finalizePendingTransaction(::mce::UUID const& id);
209
210 MCNAPI uint64 $pendingTransactionCount() const;
211
212 MCNAPI ::Bedrock::PubSub::Subscription
213 $registerTransactionEventListener(::std::function<void(::Editor::Transactions::TransactionEvent const&)> callback);
214
215 MCNAPI ::Bedrock::PubSub::Subscription $registerTransactionOperationEventListener(
216 ::std::function<void(::Editor::Transactions::TransactionOperationEvent const&)> callback
217 );
218
219 MCNAPI void $addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext);
220
221 MCNAPI void $clearTransactions();
222
223 MCNAPI ::Scripting::Result_deprecated<void> $undo();
224
225 MCNAPI ::Scripting::Result_deprecated<void> $redo();
226
227 MCNAPI uint64 $undoSize() const;
228
229 MCNAPI uint64 $redoSize() const;
230
232
233 MCNAPI ::EventResult $onEvent(::PlayerDimensionChangeBeforeEvent const&);
234
235
236 // NOLINTEND
237
238public:
239 // vftables
240 // NOLINTBEGIN
242
243 MCNAPI static void** $vftableForIEditorService();
244
246 // NOLINTEND
247};
248
249} // namespace Editor::Services
Definition Subscription.h:10
Definition RedoOperationPayload.h:10
Definition UndoOperationPayload.h:10
Definition ServiceProviderCollection.h:7
Definition IEditorService.h:11
Definition TransactionManagerServiceProvider.h:21
static MCAPI void ** $vftableForTransactionManagerServiceProvider()
MCAPI ::Scripting::Result_deprecated< void > $quit()
MCAPI::EventResult $onEvent(::PlayerDimensionChangeBeforeEvent const &)
MCAPI::Bedrock::PubSub::Subscription $registerTransactionEventListener(::std::function< void(::Editor::Transactions::TransactionEvent const &)> callback)
MCAPI::std::string_view $getServiceName() const
MCAPI void $addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext > transactionContext)
MCAPI ::Scripting::Result_deprecated< void > _addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext > transactionContext)
static MCAPI void ** $vftableForEventListenerDispatcher()
MCAPI void tick(::Editor::ServiceProviderCollection &)
MCAPI void _handleRedoMessage(::Editor::Network::RedoOperationPayload const &)
static MCAPI void ** $vftableForIEditorService()
MCAPI ::std::vector<::WeakRef<::Editor::Transactions::PendingTransaction > > $getPendingTransactionsByName(::std::string const &name)
MCAPI ::WeakRef<::Editor::Transactions::PendingTransaction > $getPendingTransaction(::mce::UUID const &id)
MCAPI::Bedrock::PubSub::Subscription $registerTransactionOperationEventListener(::std::function< void(::Editor::Transactions::TransactionOperationEvent const &)> callback)
MCAPI void _queueOperationEvent(::Editor::Transactions::TransactionOperationEvent evt)
MCAPI ::Scripting::Result_deprecated< void > $ready()
MCAPI ::Scripting::Result_deprecated< void > $finalizePendingTransaction(::mce::UUID const &id)
MCAPI ::Scripting::Result_deprecated< void > $redo()
MCAPI ::Scripting::Result_deprecated< void > $discardPendingTransaction(::mce::UUID const &id)
MCAPI void * $ctor(::Editor::ServiceProviderCollection &providers)
MCAPI ::WeakRef<::Editor::Transactions::PendingTransaction > $createPendingTransaction(::std::string const &name)
MCAPI ::Scripting::Result_deprecated< void > $undo()
MCAPI void _handleUndoMessage(::Editor::Network::UndoOperationPayload const &)
MCAPI ::Scripting::Result_deprecated< void > $init()
Definition PendingTransaction.h:21
Definition TransactionContext.h:16
Definition EventListenerDispatcher.h:6
Definition WeakRef.h:8
Definition UUID.h:8
STL namespace.
Definition TransactionManagerService.h:41
Definition TransactionManagerService.h:72
Definition TransactionEvent.h:7
Definition TransactionOperationEvent.h:7
Definition PlayerDimensionChangeBeforeEvent.h:15
Definition Alias.h:14