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