Skip to content
LeviMC
English
AutoLightDark
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
102 // NOLINTEND
103
104public:
105 // prevent constructor by default
106 TransactionManagerService& operator=(TransactionManagerService const&);
107 TransactionManagerService(TransactionManagerService const&);
108 TransactionManagerService();
109
110public:
111 // virtual functions
112 // NOLINTBEGIN
113 virtual ~TransactionManagerService() /*override*/ = default;
114
115 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
116
117 virtual ::Scripting::Result_deprecated<void> ready() /*override*/;
118
119 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
120
121 virtual ::std::string_view getServiceName() const /*override*/;
122
123 virtual ::WeakRef<::Editor::Transactions::PendingTransaction>
124 createPendingTransaction(::std::string const& name) /*override*/;
125
126 virtual ::WeakRef<::Editor::Transactions::PendingTransaction>
127 getPendingTransaction(::mce::UUID const& id) /*override*/;
128
129 virtual ::std::vector<::WeakRef<::Editor::Transactions::PendingTransaction>>
130 getPendingTransactionsByName(::std::string const& name) /*override*/;
131
132 virtual ::Scripting::Result_deprecated<void> discardPendingTransaction(::mce::UUID const& id) /*override*/;
133
134 virtual ::Scripting::Result_deprecated<void>
135 finalizePendingTransaction(::mce::UUID const& id, ::std::function<void(::std::string)> activity) /*override*/;
136
137 virtual uint64 pendingTransactionCount() const /*override*/;
138
139 virtual ::Bedrock::PubSub::Subscription registerTransactionEventListener(
140 ::std::function<void(::Editor::Transactions::TransactionEvent const&)> callback
141 ) /*override*/;
142
143 virtual ::Bedrock::PubSub::Subscription registerTransactionOperationEventListener(
144 ::std::function<void(::Editor::Transactions::TransactionOperationEvent const&)> callback
145 ) /*override*/;
146
147 virtual void
148 addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext) /*override*/;
149
150 virtual void clearTransactions() /*override*/;
151
152 virtual ::Scripting::Result_deprecated<void> undo() /*override*/;
153
154 virtual ::Scripting::Result_deprecated<void> redo() /*override*/;
155
156 virtual uint64 undoSize() const /*override*/;
157
158 virtual uint64 redoSize() const /*override*/;
159
160 virtual void clearAllTransactionData() /*override*/;
161
162 virtual ::EventResult onEvent(::PlayerDimensionChangeBeforeEvent const&) /*override*/;
163 // NOLINTEND
164
165public:
166 // member functions
167 // NOLINTBEGIN
168 MCNAPI explicit TransactionManagerService(::Editor::ServiceProviderCollection& providers);
169
170 MCNAPI ::Scripting::Result_deprecated<void>
171 _addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext);
172
173 MCNAPI void _clearHistory();
174
175 MCNAPI void _handleRedoMessage(::Editor::Network::RedoOperationPayload const&);
176
177 MCNAPI void _handleUndoMessage(::Editor::Network::UndoOperationPayload const&);
178
179 MCNAPI void _queueOperationEvent(::Editor::Transactions::TransactionOperationEvent evt);
180
181 MCNAPI void tick(::Editor::ServiceProviderCollection&);
182 // NOLINTEND
183
184public:
185 // constructor thunks
186 // NOLINTBEGIN
187 MCNAPI void* $ctor(::Editor::ServiceProviderCollection& providers);
188 // NOLINTEND
189
190public:
191 // virtual function thunks
192 // NOLINTBEGIN
193 MCNAPI ::Scripting::Result_deprecated<void> $init();
194
195 MCNAPI ::Scripting::Result_deprecated<void> $ready();
196
197 MCNAPI ::Scripting::Result_deprecated<void> $quit();
198
199 MCNAPI ::std::string_view $getServiceName() const;
200
201 MCNAPI ::WeakRef<::Editor::Transactions::PendingTransaction> $createPendingTransaction(::std::string const& name);
202
203 MCNAPI ::WeakRef<::Editor::Transactions::PendingTransaction> $getPendingTransaction(::mce::UUID const& id);
204
205 MCNAPI ::std::vector<::WeakRef<::Editor::Transactions::PendingTransaction>>
206 $getPendingTransactionsByName(::std::string const& name);
207
208 MCNAPI ::Scripting::Result_deprecated<void> $discardPendingTransaction(::mce::UUID const& id);
209
210 MCNAPI ::Scripting::Result_deprecated<void>
211 $finalizePendingTransaction(::mce::UUID const& id, ::std::function<void(::std::string)> activity);
212
213 MCNAPI uint64 $pendingTransactionCount() const;
214
215 MCNAPI ::Bedrock::PubSub::Subscription
216 $registerTransactionEventListener(::std::function<void(::Editor::Transactions::TransactionEvent const&)> callback);
217
218 MCNAPI ::Bedrock::PubSub::Subscription $registerTransactionOperationEventListener(
219 ::std::function<void(::Editor::Transactions::TransactionOperationEvent const&)> callback
220 );
221
222 MCNAPI void $addTransaction(::std::unique_ptr<::Editor::Transactions::TransactionContext> transactionContext);
223
224 MCNAPI void $clearTransactions();
225
226 MCNAPI ::Scripting::Result_deprecated<void> $undo();
227
228 MCNAPI ::Scripting::Result_deprecated<void> $redo();
229
230 MCNAPI uint64 $undoSize() const;
231
232 MCNAPI uint64 $redoSize() const;
233
235
236 MCNAPI ::EventResult $onEvent(::PlayerDimensionChangeBeforeEvent const&);
237
238
239 // NOLINTEND
240
241public:
242 // vftables
243 // NOLINTBEGIN
245
246 MCNAPI static void** $vftableForIEditorService();
247
249 // NOLINTEND
250};
251
252} // namespace Editor::Services
Definition Subscription.h:10
Definition RedoOperationPayload.h:15
Definition UndoOperationPayload.h:15
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 ::Scripting::Result_deprecated< void > $finalizePendingTransaction(::mce::UUID const &id, ::std::function< void(::std::string)> activity)
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 > $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:17
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