LeviLamina
Loading...
Searching...
No Matches
PayloadService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/utility/pub_sub/Publisher.h"
7#include "mc/deps/scripting/runtime/Result_deprecated.h"
8#include "mc/editor/selection/PayloadServiceProvider.h"
9#include "mc/editor/services/IEditorService.h"
10
11// auto generated forward declare list
12// clang-format off
13class Actor;
15class PacketSender;
16class WeakEntityRef;
17namespace Bedrock::PubSub { class Subscription; }
18namespace Bedrock::PubSub::ThreadModel { struct SingleThreaded; }
19namespace Editor { class ServiceProviderCollection; }
20namespace Editor::Network { class INetworkPayload; }
21namespace Editor::Network { struct PayloadMetrics; }
22namespace mce { class UUID; }
23// clang-format on
24
25namespace Editor::Network {
26
28public:
29 // PayloadService inner types declare
30 // clang-format off
31 struct CachedPacket;
32 struct PayloadFactory;
33 struct PayloadPublisher;
34 struct PayloadInfo;
35 // clang-format on
36
37 // PayloadService inner types define
38 enum class SendTarget : int {
39 ServerPlayer = 0,
40 ClientPlayer = 1,
41 ServerManager = 2,
42 ClientManager = 3,
43 BroadcastToClientPlayers = 4,
44 BroadcastToClientManagers = 5,
45 };
46
47 struct CachedPacket {
48 public:
49 // member variables
50 // NOLINTBEGIN
55 // NOLINTEND
56
57 public:
58 // prevent constructor by default
59 CachedPacket& operator=(CachedPacket const&);
60 CachedPacket(CachedPacket const&);
61 CachedPacket();
62
63 public:
64 // member functions
65 // NOLINTBEGIN
66 MCNAPI ~CachedPacket();
67 // NOLINTEND
68
69 public:
70 // destructor thunk
71 // NOLINTBEGIN
72 MCNAPI void $dtor();
73 // NOLINTEND
74 };
75
76 struct PayloadFactory {
77 public:
78 // member variables
79 // NOLINTBEGIN
81 // NOLINTEND
82
83 public:
84 // prevent constructor by default
85 PayloadFactory& operator=(PayloadFactory const&);
86 PayloadFactory(PayloadFactory const&);
87 PayloadFactory();
88 };
89
90 struct PayloadPublisher {
91 public:
92 // member variables
93 // NOLINTBEGIN
95 // NOLINTEND
96
97 public:
98 // prevent constructor by default
99 PayloadPublisher& operator=(PayloadPublisher const&);
100 PayloadPublisher(PayloadPublisher const&);
101 PayloadPublisher();
102 };
103
104 struct PayloadInfo {
105 public:
106 // member variables
107 // NOLINTBEGIN
112 // NOLINTEND
113
114 public:
115 // prevent constructor by default
116 PayloadInfo& operator=(PayloadInfo const&);
117 PayloadInfo(PayloadInfo const&);
118 PayloadInfo();
119
120 public:
121 // member functions
122 // NOLINTBEGIN
123 MCNAPI ~PayloadInfo();
124 // NOLINTEND
125
126 public:
127 // destructor thunk
128 // NOLINTBEGIN
129 MCNAPI void $dtor();
130 // NOLINTEND
131 };
132
133public:
134 // member variables
135 // NOLINTBEGIN
143 // NOLINTEND
144
145public:
146 // prevent constructor by default
147 PayloadService& operator=(PayloadService const&);
148 PayloadService(PayloadService const&);
149 PayloadService();
150
151public:
152 // virtual functions
153 // NOLINTBEGIN
154 virtual ~PayloadService() /*override*/;
155
156 virtual ::Scripting::Result_deprecated<void> init() /*override*/;
157
158 virtual ::Scripting::Result_deprecated<void> quit() /*override*/;
159
160 virtual ::std::string_view getServiceName() const /*override*/;
161
162 virtual ::Scripting::Result_deprecated<void>
163 dispatchToSelf(::Editor::Network::INetworkPayload& payload) /*override*/;
164
165 virtual void onReceivePayload(::EditorNetworkPacket const& packet) /*override*/;
166
167 virtual bool isCollectingMetrics() const /*override*/;
168
169 virtual void clearMetrics() /*override*/;
170
171 virtual void setCollectingMetrics(bool collecting) /*override*/;
172
173 virtual ::std::vector<::std::pair<::std::string, ::Editor::Network::PayloadMetrics>> collectMetricsReport() const
174 /*override*/;
175
176 virtual ::Editor::Network::PayloadMetrics* _registerPayload(
177 char const* payloadName,
178 ::std::function<::std::shared_ptr<::Editor::Network::INetworkPayload>()> constructorFunc
179 ) /*override*/;
180
181 virtual ::Scripting::Result_deprecated<void>
182 _send(::Editor::Network::INetworkPayload& payload, ::Editor::Network::PayloadMetrics* metrics) /*override*/;
183
184 virtual ::Scripting::Result_deprecated<void> _sendToManager(
185 ::Editor::Network::INetworkPayload& payload,
186 ::Editor::Network::PayloadMetrics* metrics
187 ) /*override*/;
188
189 virtual ::Scripting::Result_deprecated<void> _sendToClientId(
190 ::mce::UUID const& clientId,
191 ::Editor::Network::INetworkPayload& payload,
192 ::Editor::Network::PayloadMetrics* metrics
193 ) /*override*/;
194
195 virtual ::Scripting::Result_deprecated<void> _sendToClientIds(
196 ::std::vector<::mce::UUID> const& clientIds,
197 ::Editor::Network::INetworkPayload& payload,
198 ::Editor::Network::PayloadMetrics* metrics
199 ) /*override*/;
200
201 virtual ::Scripting::Result_deprecated<void> _broadcastToClients(
202 ::Editor::Network::INetworkPayload& payload,
203 ::Editor::Network::PayloadMetrics* metrics
204 ) /*override*/;
205
206 virtual ::Scripting::Result_deprecated<void> _broadcastToClientManagers(
207 ::Editor::Network::INetworkPayload& payload,
208 ::Editor::Network::PayloadMetrics* metrics
209 ) /*override*/;
210
211 virtual ::Scripting::Result_deprecated<::Bedrock::PubSub::Subscription> _listenFor(
212 char const* payloadName,
213 ::std::function<void(::Editor::Network::INetworkPayload const&)> fnSubscriber
214 ) /*override*/;
215 // NOLINTEND
216
217public:
218 // member functions
219 // NOLINTBEGIN
220 MCNAPI PayloadService(
221 ::Editor::ServiceProviderCollection& providers,
222 ::WeakEntityRef optionalPlayerRef,
223 ::PacketSender& packetSender,
224 bool isClientSide,
225 bool collectMetrics
226 );
227
228 MCNAPI ::Editor::Network::PayloadService::PayloadInfo* _createPayloadInfo(
229 char const* payloadName,
230 ::std::function<::std::shared_ptr<::Editor::Network::INetworkPayload>()> constructorFunc
231 );
232
233 MCNAPI ::std::shared_ptr<::Editor::Network::INetworkPayload>
234 _load(::std::string_view payloadName, ::std::string_view payloadRawData);
235
236 MCNAPI ::Scripting::Result_deprecated<::EditorNetworkPacket> _populatePacket(
237 ::Editor::Network::INetworkPayload* payload,
238 ::Editor::Network::PayloadService::SendTarget target,
239 ::Editor::Network::PayloadMetrics* metrics
240 );
241
242 MCNAPI void _sendCachedPacketToTarget(::Editor::Network::PayloadService::CachedPacket& packet);
243
244 MCNAPI ::Scripting::Result_deprecated<void> _sendToClient(
245 ::Editor::Network::INetworkPayload& payload,
246 ::Editor::Network::PayloadService::SendTarget target,
247 ::Editor::Network::PayloadMetrics* metrics
248 );
249
250 MCNAPI ::Scripting::Result_deprecated<void> _sendToClientTargets(
251 ::std::vector<::Actor*> actorList,
252 ::EditorNetworkPacket& outPacket,
253 ::Editor::Network::PayloadMetrics* metrics
254 );
255
256 MCNAPI ::Scripting::Result_deprecated<void> _sendToServer(
257 ::Editor::Network::INetworkPayload& payload,
258 ::Editor::Network::PayloadService::SendTarget target,
259 ::Editor::Network::PayloadMetrics* metrics
260 );
261
262 MCNAPI ::Scripting::Result_deprecated<void> _sendToTarget(
263 ::Actor* actor,
264 ::EditorNetworkPacket& outPacket,
265 ::Editor::Network::PayloadService::SendTarget toWhom,
266 ::Editor::Network::PayloadMetrics* metrics
267 );
268 // NOLINTEND
269
270public:
271 // constructor thunks
272 // NOLINTBEGIN
273 MCNAPI void* $ctor(
274 ::Editor::ServiceProviderCollection& providers,
275 ::WeakEntityRef optionalPlayerRef,
276 ::PacketSender& packetSender,
277 bool isClientSide,
278 bool collectMetrics
279 );
280 // NOLINTEND
281
282public:
283 // destructor thunk
284 // NOLINTBEGIN
285 MCNAPI void $dtor();
286 // NOLINTEND
287
288public:
289 // virtual function thunks
290 // NOLINTBEGIN
291 MCNAPI ::Scripting::Result_deprecated<void> $init();
292
293 MCNAPI ::Scripting::Result_deprecated<void> $quit();
294
295 MCNAPI ::std::string_view $getServiceName() const;
296
297 MCNAPI ::Scripting::Result_deprecated<void> $dispatchToSelf(::Editor::Network::INetworkPayload& payload);
298
299 MCNAPI void $onReceivePayload(::EditorNetworkPacket const& packet);
300
301 MCNAPI bool $isCollectingMetrics() const;
302
303 MCNAPI void $clearMetrics();
304
305 MCNAPI void $setCollectingMetrics(bool collecting);
306
307 MCNAPI ::std::vector<::std::pair<::std::string, ::Editor::Network::PayloadMetrics>> $collectMetricsReport() const;
308
309 MCNAPI ::Editor::Network::PayloadMetrics* $_registerPayload(
310 char const* payloadName,
311 ::std::function<::std::shared_ptr<::Editor::Network::INetworkPayload>()> constructorFunc
312 );
313
314 MCNAPI ::Scripting::Result_deprecated<void>
315 $_send(::Editor::Network::INetworkPayload& payload, ::Editor::Network::PayloadMetrics* metrics);
316
317 MCNAPI ::Scripting::Result_deprecated<void>
318 $_sendToManager(::Editor::Network::INetworkPayload& payload, ::Editor::Network::PayloadMetrics* metrics);
319
320 MCNAPI ::Scripting::Result_deprecated<void> $_sendToClientId(
321 ::mce::UUID const& clientId,
322 ::Editor::Network::INetworkPayload& payload,
323 ::Editor::Network::PayloadMetrics* metrics
324 );
325
326 MCNAPI ::Scripting::Result_deprecated<void> $_sendToClientIds(
327 ::std::vector<::mce::UUID> const& clientIds,
328 ::Editor::Network::INetworkPayload& payload,
329 ::Editor::Network::PayloadMetrics* metrics
330 );
331
332 MCNAPI ::Scripting::Result_deprecated<void>
333 $_broadcastToClients(::Editor::Network::INetworkPayload& payload, ::Editor::Network::PayloadMetrics* metrics);
334
335 MCNAPI ::Scripting::Result_deprecated<void> $_broadcastToClientManagers(
336 ::Editor::Network::INetworkPayload& payload,
337 ::Editor::Network::PayloadMetrics* metrics
338 );
339
340 MCNAPI ::Scripting::Result_deprecated<::Bedrock::PubSub::Subscription>
341 $_listenFor(char const* payloadName, ::std::function<void(::Editor::Network::INetworkPayload const&)> fnSubscriber);
342
343
344 // NOLINTEND
345
346public:
347 // vftables
348 // NOLINTBEGIN
349 MCNAPI static void** $vftableForPayloadServiceProvider();
350
351 MCNAPI static void** $vftableForIEditorService();
352 // NOLINTEND
353};
354
355} // namespace Editor::Network
Definition Actor.h:125
Definition Subscription.h:10
Definition EditorNetworkPacket.h:19
Definition INetworkPayload.h:7
Definition PayloadServiceProvider.h:19
MCAPI ::std::shared_ptr<::Editor::Network::INetworkPayload > _load(::std::string_view payloadName, ::std::string_view payloadRawData)
MCAPI ::Scripting::Result_deprecated< void > _sendToClientTargets(::std::vector<::Actor * > actorList, ::EditorNetworkPacket &outPacket, ::Editor::Network::PayloadMetrics *metrics)
MCAPI ::Scripting::Result_deprecated< void > $_broadcastToClients(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
MCAPI::std::string_view $getServiceName() const
MCAPI ::Scripting::Result_deprecated< void > $quit()
MCAPI ::Scripting::Result_deprecated< void > _sendToServer(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadService::SendTarget target, ::Editor::Network::PayloadMetrics *metrics)
MCAPI ::Scripting::Result_deprecated< void > _sendToClient(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadService::SendTarget target, ::Editor::Network::PayloadMetrics *metrics)
MCAPI ::Scripting::Result_deprecated< void > $_send(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
MCAPI ::std::vector<::std::pair<::std::string, ::Editor::Network::PayloadMetrics > > $collectMetricsReport() const
MCAPI bool $isCollectingMetrics() const
MCAPI ::Scripting::Result_deprecated< void > _sendToTarget(::Actor *actor, ::EditorNetworkPacket &outPacket, ::Editor::Network::PayloadService::SendTarget toWhom, ::Editor::Network::PayloadMetrics *metrics)
MCAPI void _sendCachedPacketToTarget(::Editor::Network::PayloadService::CachedPacket &packet)
static MCAPI void ** $vftableForIEditorService()
MCAPI ::Scripting::Result_deprecated<::Bedrock::PubSub::Subscription > $_listenFor(char const *payloadName, ::std::function< void(::Editor::Network::INetworkPayload const &)> fnSubscriber)
MCAPI ::Scripting::Result_deprecated< void > $_sendToManager(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
MCAPI ::Scripting::Result_deprecated< void > $_sendToClientId(::mce::UUID const &clientId, ::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
MCAPI void $setCollectingMetrics(bool collecting)
MCAPI ::Scripting::Result_deprecated< void > $init()
MCAPI::Editor::Network::PayloadService::PayloadInfo * _createPayloadInfo(char const *payloadName, ::std::function<::std::shared_ptr<::Editor::Network::INetworkPayload >()> constructorFunc)
MCAPI ::Scripting::Result_deprecated<::EditorNetworkPacket > _populatePacket(::Editor::Network::INetworkPayload *payload, ::Editor::Network::PayloadService::SendTarget target, ::Editor::Network::PayloadMetrics *metrics)
MCAPI::Editor::Network::PayloadMetrics * $_registerPayload(char const *payloadName, ::std::function<::std::shared_ptr<::Editor::Network::INetworkPayload >()> constructorFunc)
MCAPI ::Scripting::Result_deprecated< void > $dispatchToSelf(::Editor::Network::INetworkPayload &payload)
MCAPI void $onReceivePayload(::EditorNetworkPacket const &packet)
MCAPI ::Scripting::Result_deprecated< void > $_broadcastToClientManagers(::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
static MCAPI void ** $vftableForPayloadServiceProvider()
MCAPI void * $ctor(::Editor::ServiceProviderCollection &providers, ::WeakEntityRef optionalPlayerRef, ::PacketSender &packetSender, bool isClientSide, bool collectMetrics)
MCAPI ::Scripting::Result_deprecated< void > $_sendToClientIds(::std::vector<::mce::UUID > const &clientIds, ::Editor::Network::INetworkPayload &payload, ::Editor::Network::PayloadMetrics *metrics)
Definition ServiceProviderCollection.h:7
Definition IEditorService.h:11
Definition PacketSender.h:17
Definition ServerPlayer.h:74
Definition WeakEntityRef.h:14
Definition UUID.h:7
STL namespace.
Definition PayloadMetrics.h:7
Definition PayloadService.h:47
Definition PayloadService.h:104
Definition Alias.h:14