LeviLamina
Loading...
Searching...
No Matches
SignalingService.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/application/AppPlatformListener.h"
7#include "mc/deps/core/http/PersistentWebSocket.h"
8#include "mc/deps/core/threading/Async.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/deps/core/utility/NonOwnerPointer.h"
11#include "mc/deps/nether_net/ESessionError.h"
12#include "mc/deps/nether_net/ISignalingInterface.h"
13#include "mc/network/services/signaling/ISignalingJsonRpcInterop.h"
14#include "mc/platform/ErrorInfo.h"
15#include "mc/platform/Result.h"
16
17// auto generated forward declare list
18// clang-format off
23class MessageTracker;
24class Scheduler;
26class WorkerPool;
27namespace Bedrock::Http { class HeaderCollection; }
28namespace Bedrock::Http { class RetryPolicy; }
29namespace Bedrock::Http { struct Url; }
30namespace Bedrock::PubSub { class Subscription; }
31namespace Json { class Value; }
32namespace JsonRpc { class JsonRpcProvider; }
33namespace JsonRpc { class WebRtcComponent; }
34namespace NetherNet { struct ISignalingEventHandler; }
35namespace NetherNet { struct NetworkID; }
36namespace NetherNet { struct StunRelayServer; }
37namespace PlayerMessaging { struct NetworkID; }
38// clang-format on
39
40class SignalingService : public ::Bedrock::EnableNonOwnerReferences,
41 public ::std::enable_shared_from_this<::SignalingService> {
42public:
43 // SignalingService inner types declare
44 // clang-format off
45 class Connection;
48 class Channel;
50 class JsonRpcInterop;
51 // clang-format on
52
53 // SignalingService inner types define
54 enum class ConnectionStatus : uchar {
55 Connected = 0,
56 Disconnected = 1,
57 };
58
59 enum class SignInError : int {
60 Ok = 0,
61 EmptyAuthFromDiscovery = 100,
62 EmptyUrlFromDiscovery = 101,
63 ExpiredAuthFromDiscovery = 102,
64 };
65
66 class Connection : public ::Bedrock::Http::PersistentWebSocket, public ::AppPlatformListener {
67 public:
68 // Connection inner types define
69 enum class ServiceError : int {
70 UnknownError = 0,
71 PlayerUnreachable = 1,
72 MessageDeliveryFailed = 2,
73 TurnAuthFailed = 3,
74 FallbackToBestEffortDelivery = 4,
75 };
76
77 public:
78 // member variables
79 // NOLINTBEGIN
92 // NOLINTEND
93
94 public:
95 // prevent constructor by default
96 Connection& operator=(Connection const&);
97 Connection(Connection const&);
98 Connection();
99
100 public:
101 // virtual functions
102 // NOLINTBEGIN
103 virtual ~Connection() /*override*/;
104
105 virtual void onConnect() /*override*/;
106
107 virtual void onMessage(::std::string_view incomingMessage) /*override*/;
108
109 virtual bool shouldReconnect() const /*override*/;
110
111 virtual ::Bedrock::Threading::Async<::Bedrock::Http::Url> getUrl() /*override*/;
112
113 virtual ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> getHeaders() /*override*/;
114
115 virtual ::Bedrock::Http::RetryPolicy getReconnectPolicy() /*override*/;
116
117 virtual void onDisconnect(bool closeStatus, uint) /*override*/;
118
119 virtual void _requestTurnConfig() const;
120
121 virtual void _sendPing() const;
122
123 virtual void onAppSuspended() /*override*/;
124
125 virtual void onAppResumed() /*override*/;
126 // NOLINTEND
127
128 public:
129 // member functions
130 // NOLINTBEGIN
132 ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> id,
133 ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider> serviceConfigProvider,
134 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
135 bool useJsonRpc,
136 ::std::chrono::seconds const& pingInterval
137 );
138
139 MCNAPI void _handleError(
140 ::SignalingService::Connection::ServiceError errorCode,
141 ::std::string const& errorMessage,
142 ::std::string const& messageId
143 );
144
145 MCNAPI void _onTurnConfigSuccess(::std::vector<::NetherNet::StunRelayServer>&& config);
146
147 MCNAPI void _parseError(::std::string const& message, ::std::string messageId);
148
149 MCNAPI ::Bedrock::Result<::std::vector<::NetherNet::StunRelayServer>, ::NetherNet::ESessionError>
150 _parseTurnConfig(::std::string const& bodyText);
151
152 MCNAPI ::Bedrock::Result<::std::vector<::NetherNet::StunRelayServer>, ::NetherNet::ESessionError>
154
156 ::NetherNet::ESessionError result,
157 ::std::vector<::NetherNet::StunRelayServer> const& config
158 );
159
160 MCNAPI ::Bedrock::Threading::Async<::std::error_code> connect();
161
162#ifdef LL_PLAT_C
163 MCNAPI ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> getId() const;
164
165 MCNAPI ::Bedrock::Threading::Async<::std::vector<::NetherNet::StunRelayServer>> getRelayConfig() const;
166
167 MCNAPI ::gsl::not_null<::std::shared_ptr<::ISignalingServiceTelemetry const>> getTelemetry() const;
168
169 MCNAPI void onTurnConfigFailure(::Bedrock::ErrorInfo<::NetherNet::ESessionError> const& error);
170#endif
171
172 MCNAPI void parseSignal(::NetherNet::NetworkID fromNetworkID, ::std::string message, ::std::string messageId);
173
174 MCNAPI void parseTurnConfig(::std::string const& bodyText);
175
176 MCNAPI void parseTurnConfig(::Json::Value const& config);
177
178 MCNAPI ::Bedrock::Threading::Async<::NetherNet::ESessionError>
179 sendTo(::NetherNet::NetworkID to, ::std::string const& message);
180
181 MCNAPI void update();
182 // NOLINTEND
183
184 public:
185 // constructor thunks
186 // NOLINTBEGIN
187 MCNAPI void* $ctor(
188 ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> id,
189 ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider> serviceConfigProvider,
190 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
191 bool useJsonRpc,
192 ::std::chrono::seconds const& pingInterval
193 );
194 // NOLINTEND
195
196 public:
197 // destructor thunk
198 // NOLINTBEGIN
199 MCNAPI void $dtor();
200 // NOLINTEND
201
202 public:
203 // virtual function thunks
204 // NOLINTBEGIN
205 MCNAPI void $onConnect();
206
207 MCNAPI void $onMessage(::std::string_view incomingMessage);
208
209 MCNAPI bool $shouldReconnect() const;
210
211 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Http::Url> $getUrl();
212
213 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection> $getHeaders();
214
215 MCNAPI ::Bedrock::Http::RetryPolicy $getReconnectPolicy();
216
217 MCNAPI void $onDisconnect(bool closeStatus, uint);
218
219 MCNAPI void $_requestTurnConfig() const;
220
221 MCNAPI void $_sendPing() const;
222
223 MCNAPI void $onAppSuspended();
224
225 MCNAPI void $onAppResumed();
226
227
228 // NOLINTEND
229
230 public:
231 // vftables
232 // NOLINTBEGIN
233 MCNAPI static void** $vftableForPersistentWebSocket();
234
235 MCNAPI static void** $vftableForAppPlatformListener();
236 // NOLINTEND
237 };
238
240
242
243 class Channel : public ::NetherNet::ISignalingInterface {
244 public:
245 // member variables
246 // NOLINTBEGIN
251 // NOLINTEND
252
253 public:
254 // prevent constructor by default
255 Channel& operator=(Channel const&);
256 Channel(Channel const&);
257 Channel();
258
259 public:
260 // virtual functions
261 // NOLINTBEGIN
262 virtual ~Channel() /*override*/ = default;
263
264 virtual void SendSignal(
267 ::std::string const& message,
268 ::std::function<void(::NetherNet::ESessionError)>&& onComplete
269 ) /*override*/;
270
271 virtual ::Bedrock::PubSub::Subscription
272 RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler) /*override*/;
273 // NOLINTEND
274
275 public:
276 // member functions
277 // NOLINTBEGIN
278 MCNAPI Channel(
279 ::std::weak_ptr<::SignalingService::Connection>&& connection,
280 ::std::weak_ptr<::JsonRpc::WebRtcComponent>&& jsonRpcWebRtcComponent,
281 bool useJsonRpc
282 );
283
287 ::std::string const& message,
288 ::std::function<void(::NetherNet::ESessionError)>&& onComplete
289 );
290 // NOLINTEND
291
292 public:
293 // constructor thunks
294 // NOLINTBEGIN
295 MCNAPI void* $ctor(
296 ::std::weak_ptr<::SignalingService::Connection>&& connection,
297 ::std::weak_ptr<::JsonRpc::WebRtcComponent>&& jsonRpcWebRtcComponent,
298 bool useJsonRpc
299 );
300 // NOLINTEND
301
302 public:
303 // virtual function thunks
304 // NOLINTBEGIN
305 MCNAPI void $SendSignal(
308 ::std::string const& message,
309 ::std::function<void(::NetherNet::ESessionError)>&& onComplete
310 );
311
312 MCNAPI ::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ISignalingEventHandler* handler);
313
314
315 // NOLINTEND
316
317 public:
318 // vftables
319 // NOLINTBEGIN
320 MCNAPI static void** $vftable();
321 // NOLINTEND
322 };
323
324 class JsonRpcConnection : public ::SignalingService::Connection {
325 public:
326 // member variables
327 // NOLINTBEGIN
330 // NOLINTEND
331
332 public:
333 // prevent constructor by default
334 JsonRpcConnection& operator=(JsonRpcConnection const&);
335 JsonRpcConnection(JsonRpcConnection const&);
336 JsonRpcConnection();
337
338 public:
339 // virtual functions
340 // NOLINTBEGIN
341 virtual ::Bedrock::Threading::Async<::Bedrock::Http::Url> getUrl() /*override*/;
342
343 virtual void onMessage(::std::string_view incomingMessage) /*override*/;
344
345 virtual void onConnect() /*override*/;
346
347 virtual ~JsonRpcConnection() /*override*/ = default;
348
349 virtual void _sendPing() const /*override*/;
350
351 virtual void _requestTurnConfig() const /*override*/;
352 // NOLINTEND
353
354 public:
355 // member functions
356 // NOLINTBEGIN
358 ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> id,
359 ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider> serviceConfigProvider,
360 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
361 ::std::weak_ptr<::JsonRpc::JsonRpcProvider> jsonRpcProvider,
362 ::std::weak_ptr<::JsonRpc::WebRtcComponent> webRtcComponent,
363 ::std::chrono::seconds const& pingInterval
364 );
365
366 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>>
367 sendJsonRpc(::std::optional<::std::string> const& messageId, ::std::string const& message);
368
369 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>> sendJsonRpcTo(
371 ::std::optional<::std::string> const& messageId,
372 ::std::string const& message
373 );
374
375#ifdef LL_PLAT_S
376 MCNAPI void setTurnConfig(
377 ::std::vector<::NetherNet::StunRelayServer>&& config,
378 ::std::chrono::steady_clock::time_point expiration
379 );
380#endif
381 // NOLINTEND
382
383 public:
384 // constructor thunks
385 // NOLINTBEGIN
386 MCNAPI void* $ctor(
387 ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> id,
388 ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider> serviceConfigProvider,
389 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
390 ::std::weak_ptr<::JsonRpc::JsonRpcProvider> jsonRpcProvider,
391 ::std::weak_ptr<::JsonRpc::WebRtcComponent> webRtcComponent,
392 ::std::chrono::seconds const& pingInterval
393 );
394 // NOLINTEND
395
396 public:
397 // virtual function thunks
398 // NOLINTBEGIN
399 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Http::Url> $getUrl();
400
401 MCNAPI void $onMessage(::std::string_view incomingMessage);
402
403 MCNAPI void $onConnect();
404
405 MCNAPI void $_sendPing() const;
406
407 MCNAPI void $_requestTurnConfig() const;
408
409
410 // NOLINTEND
411
412 public:
413 // vftables
414 // NOLINTBEGIN
415 MCNAPI static void** $vftableForPersistentWebSocket();
416
417 MCNAPI static void** $vftableForAppPlatformListener();
418 // NOLINTEND
419 };
420
421 class JsonRpcInterop : public ::ISignalingJsonRpcInterop {
422 public:
423 // member variables
424 // NOLINTBEGIN
426 // NOLINTEND
427
428 public:
429 // prevent constructor by default
430 JsonRpcInterop& operator=(JsonRpcInterop const&);
431 JsonRpcInterop(JsonRpcInterop const&);
432 JsonRpcInterop();
433
434 public:
435 // virtual functions
436 // NOLINTBEGIN
437 virtual ~JsonRpcInterop() /*override*/ = default;
438
439 virtual ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>> sendJsonRpcTo(
441 ::std::optional<::std::string> const& messageId,
442 ::std::string const& message
443 ) const /*override*/;
444
445 virtual ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>>
446 sendJsonRpc(::std::optional<::std::string> const& messageId, ::std::string const& message) const /*override*/;
447
448 virtual ::std::shared_ptr<::MessageTracker> getMessageTracker() /*override*/;
449
450 virtual void
451 parseSignal(::NetherNet::NetworkID fromNetworkID, ::std::string message, ::std::string messageId) /*override*/;
452
453 virtual void parseTurnConfig(::Json::Value const& config) /*override*/;
454
455 virtual void setTurnConfig(
456 ::std::vector<::NetherNet::StunRelayServer>&& config,
457 ::std::chrono::steady_clock::time_point expiration
458 ) /*override*/;
459
460 virtual void onTurnConfigFailure(::Bedrock::ErrorInfo<::NetherNet::ESessionError> const& error) /*override*/;
461 // NOLINTEND
462
463 public:
464 // virtual function thunks
465 // NOLINTBEGIN
466 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>> $sendJsonRpcTo(
468 ::std::optional<::std::string> const& messageId,
469 ::std::string const& message
470 ) const;
471
472 MCNAPI ::Bedrock::Threading::Async<::Bedrock::Result<void, ::NetherNet::ESessionError>>
473 $sendJsonRpc(::std::optional<::std::string> const& messageId, ::std::string const& message) const;
474
475 MCNAPI ::std::shared_ptr<::MessageTracker> $getMessageTracker();
476
477 MCNAPI void $parseSignal(::NetherNet::NetworkID fromNetworkID, ::std::string message, ::std::string messageId);
478
479 MCNAPI void $parseTurnConfig(::Json::Value const& config);
480
481 MCNAPI void $setTurnConfig(
482 ::std::vector<::NetherNet::StunRelayServer>&& config,
483 ::std::chrono::steady_clock::time_point expiration
484 );
485
487
488
489 // NOLINTEND
490
491 public:
492 // vftables
493 // NOLINTBEGIN
494 MCNAPI static void** $vftable();
495 // NOLINTEND
496 };
497
498public:
499 // member variables
500 // NOLINTBEGIN
515 // NOLINTEND
516
517public:
518 // prevent constructor by default
519 SignalingService& operator=(SignalingService const&);
520 SignalingService(SignalingService const&);
521 SignalingService();
522
523public:
524 // virtual functions
525 // NOLINTBEGIN
526 virtual ~SignalingService() /*override*/;
527 // NOLINTEND
528
529public:
530 // member functions
531 // NOLINTBEGIN
533 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
534 ::std::vector<::std::shared_ptr<::IJsonRpcComponent>> additionalJsonRpcComponents
535 );
536
538 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
539 ::WorkerPool& pool,
540 ::Scheduler& scheduler,
541 ::std::vector<::std::shared_ptr<::IJsonRpcComponent>> additionalJsonRpcComponents
542 );
543
544 MCNAPI ::std::shared_ptr<::SignalingService::Connection>
545 _makeConnection(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> id);
546
547#ifdef LL_PLAT_C
548 MCNAPI void addNetworkIdMapping(::NetherNet::NetworkID nethernetId, ::PlayerMessaging::NetworkID playerMessagingId);
549#endif
550
551 MCNAPI ::gsl::not_null<::std::shared_ptr<::NetherNet::ISignalingInterface>> getChannel();
552
553#ifdef LL_PLAT_C
554 MCNAPI ::Bedrock::Threading::Async<::std::vector<::NetherNet::StunRelayServer>> getRelayConfig() const;
555#endif
556
557 MCNAPI ::std::shared_ptr<::SignalingConsumerRefCount> getSignalingConsumerRefCount();
558
559#ifdef LL_PLAT_C
560 MCNAPI ::std::shared_ptr<::ISignalingServiceTelemetry const> getTelemetry() const;
561#endif
562
563 MCNAPI void initialize(::std::unique_ptr<::ISignalingServiceConfigProvider> serviceConfigProvider);
564
565 MCNAPI bool isSignedIn() const;
566
567 MCNAPI ::Bedrock::PubSub::Subscription registerOnConnectionChanged(
568 ::std::function<void(
569 ::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID>,
570 ::SignalingService::ConnectionStatus
571 )>&& callback
572 );
573
574 MCNAPI ::Bedrock::Threading::Async<::std::error_code>
575 signIn(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID> localId);
576
577 MCNAPI void update();
578 // NOLINTEND
579
580public:
581 // constructor thunks
582 // NOLINTBEGIN
583 MCNAPI void* $ctor(
584 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
585 ::std::vector<::std::shared_ptr<::IJsonRpcComponent>> additionalJsonRpcComponents
586 );
587
588 MCNAPI void* $ctor(
589 ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing> eventing,
590 ::WorkerPool& pool,
591 ::Scheduler& scheduler,
592 ::std::vector<::std::shared_ptr<::IJsonRpcComponent>> additionalJsonRpcComponents
593 );
594 // NOLINTEND
595
596public:
597 // destructor thunk
598 // NOLINTBEGIN
599 MCNAPI void $dtor();
600 // NOLINTEND
601
602public:
603 // vftables
604 // NOLINTBEGIN
605 MCNAPI static void** $vftable();
606 // NOLINTEND
607};
Definition EnableNonOwnerReferences.h:7
Definition HeaderCollection.h:7
Definition PersistentWebSocket.h:20
Definition RetryPolicy.h:12
Definition Subscription.h:10
Definition IJsonRpcComponent.h:10
Definition IMinecraftEventing.h:138
Definition ISignalingJsonRpcInterop.h:20
Definition ISignalingServiceConfigProvider.h:14
Definition ISignalingServiceTelemetry.h:14
Definition JsonRpcProvider.h:20
Definition WebRtcComponent.h:23
Definition Value.h:16
Definition MessageTracker.h:19
Definition ISignalingInterface.h:17
Definition Scheduler.h:15
Definition SignalingConsumerRefCount.h:13
Definition SignalingService.h:243
MCAPI Channel(::std::weak_ptr<::SignalingService::Connection > &&connection, ::std::weak_ptr<::JsonRpc::WebRtcComponent > &&jsonRpcWebRtcComponent, bool useJsonRpc)
MCAPI void $SendSignal(::NetherNet::NetworkID from, ::NetherNet::NetworkID to, ::std::string const &message, ::std::function< void(::NetherNet::ESessionError)> &&onComplete)
MCAPI void _SendJsonRpcSignal(::NetherNet::NetworkID from, ::NetherNet::NetworkID to, ::std::string const &message, ::std::function< void(::NetherNet::ESessionError)> &&onComplete)
MCAPI void * $ctor(::std::weak_ptr<::SignalingService::Connection > &&connection, ::std::weak_ptr<::JsonRpc::WebRtcComponent > &&jsonRpcWebRtcComponent, bool useJsonRpc)
MCAPI::Bedrock::PubSub::Subscription $RegisterEventHandler(::NetherNet::ISignalingEventHandler *handler)
static MCAPI void ** $vftable()
Definition SignalingService.h:66
MCAPI ::Bedrock::Result<::std::vector<::NetherNet::StunRelayServer >, ::NetherNet::ESessionError > _parseTurnConfig(::std::string const &bodyText)
MCAPI void _parseError(::std::string const &message, ::std::string messageId)
MCAPI ::Bedrock::Threading::Async<::Bedrock::Http::Url > $getUrl()
MCAPI Connection(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > id, ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider > serviceConfigProvider, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, bool useJsonRpc, ::std::chrono::seconds const &pingInterval)
MCAPI ::Bedrock::Result<::std::vector<::NetherNet::StunRelayServer >, ::NetherNet::ESessionError > _parseTurnConfig(::Json::Value const &config)
MCAPI void * $ctor(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > id, ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider > serviceConfigProvider, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, bool useJsonRpc, ::std::chrono::seconds const &pingInterval)
MCAPI void parseTurnConfig(::std::string const &bodyText)
static MCAPI void ** $vftableForAppPlatformListener()
MCAPI void _onTurnConfigSuccess(::std::vector<::NetherNet::StunRelayServer > &&config)
MCAPI void _sendTurnConfigTelemetry(::NetherNet::ESessionError result, ::std::vector<::NetherNet::StunRelayServer > const &config)
static MCAPI void ** $vftableForPersistentWebSocket()
MCAPI::Bedrock::Http::RetryPolicy $getReconnectPolicy()
MCAPI bool $shouldReconnect() const
MCAPI void parseTurnConfig(::Json::Value const &config)
MCAPI void $_sendPing() const
MCAPI ::Bedrock::Threading::Async<::std::error_code > connect()
MCAPI void $_requestTurnConfig() const
MCAPI ::Bedrock::Threading::Async<::NetherNet::ESessionError > sendTo(::NetherNet::NetworkID to, ::std::string const &message)
MCAPI void $onMessage(::std::string_view incomingMessage)
MCAPI void _handleError(::SignalingService::Connection::ServiceError errorCode, ::std::string const &errorMessage, ::std::string const &messageId)
MCAPI void $onDisconnect(bool closeStatus, uint)
MCAPI void parseSignal(::NetherNet::NetworkID fromNetworkID, ::std::string message, ::std::string messageId)
MCAPI ::Bedrock::Threading::Async<::Bedrock::Http::HeaderCollection > $getHeaders()
Definition SignalingService.h:239
Definition SignalingService.h:324
MCAPI JsonRpcConnection(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > id, ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider > serviceConfigProvider, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::std::weak_ptr<::JsonRpc::JsonRpcProvider > jsonRpcProvider, ::std::weak_ptr<::JsonRpc::WebRtcComponent > webRtcComponent, ::std::chrono::seconds const &pingInterval)
MCAPI ::Bedrock::Threading::Async<::Bedrock::Result< void, ::NetherNet::ESessionError > > sendJsonRpcTo(::PlayerMessaging::NetworkID networkIdTo, ::std::optional<::std::string > const &messageId, ::std::string const &message)
MCAPI void $onMessage(::std::string_view incomingMessage)
MCAPI void $_requestTurnConfig() const
MCAPI ::Bedrock::Threading::Async<::Bedrock::Result< void, ::NetherNet::ESessionError > > sendJsonRpc(::std::optional<::std::string > const &messageId, ::std::string const &message)
static MCAPI void ** $vftableForPersistentWebSocket()
MCAPI void * $ctor(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > id, ::Bedrock::NotNullNonOwnerPtr<::ISignalingServiceConfigProvider > serviceConfigProvider, ::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::std::weak_ptr<::JsonRpc::JsonRpcProvider > jsonRpcProvider, ::std::weak_ptr<::JsonRpc::WebRtcComponent > webRtcComponent, ::std::chrono::seconds const &pingInterval)
MCAPI ::Bedrock::Threading::Async<::Bedrock::Http::Url > $getUrl()
static MCAPI void ** $vftableForAppPlatformListener()
Definition SignalingService.h:421
MCAPI ::Bedrock::Threading::Async<::Bedrock::Result< void, ::NetherNet::ESessionError > > $sendJsonRpc(::std::optional<::std::string > const &messageId, ::std::string const &message) const
MCAPI ::std::shared_ptr<::MessageTracker > $getMessageTracker()
MCAPI ::Bedrock::Threading::Async<::Bedrock::Result< void, ::NetherNet::ESessionError > > $sendJsonRpcTo(::PlayerMessaging::NetworkID networkIdTo, ::std::optional<::std::string > const &messageId, ::std::string const &message) const
MCAPI void $parseSignal(::NetherNet::NetworkID fromNetworkID, ::std::string message, ::std::string messageId)
MCAPI void $setTurnConfig(::std::vector<::NetherNet::StunRelayServer > &&config, ::std::chrono::steady_clock::time_point expiration)
static MCAPI void ** $vftable()
MCAPI void $onTurnConfigFailure(::Bedrock::ErrorInfo<::NetherNet::ESessionError > const &error)
MCAPI void $parseTurnConfig(::Json::Value const &config)
Definition SignalingService.h:241
MCAPI ::Bedrock::Threading::Async<::std::error_code > signIn(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > localId)
MCAPI SignalingService(::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::std::vector<::std::shared_ptr<::IJsonRpcComponent > > additionalJsonRpcComponents)
MCAPI void update()
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::std::vector<::std::shared_ptr<::IJsonRpcComponent > > additionalJsonRpcComponents)
MCAPI bool isSignedIn() const
MCAPI ::std::shared_ptr<::SignalingConsumerRefCount > getSignalingConsumerRefCount()
MCAPI ::std::shared_ptr<::SignalingService::Connection > _makeConnection(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID > id)
MCAPI::Bedrock::PubSub::Subscription registerOnConnectionChanged(::std::function< void(::std::variant<::PlayerMessaging::NetworkID, ::NetherNet::NetworkID >, ::SignalingService::ConnectionStatus)> &&callback)
MCAPI void $dtor()
MCAPI void initialize(::std::unique_ptr<::ISignalingServiceConfigProvider > serviceConfigProvider)
MCAPI void * $ctor(::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::WorkerPool &pool, ::Scheduler &scheduler, ::std::vector<::std::shared_ptr<::IJsonRpcComponent > > additionalJsonRpcComponents)
MCAPI SignalingService(::Bedrock::NotNullNonOwnerPtr<::IMinecraftEventing > eventing, ::WorkerPool &pool, ::Scheduler &scheduler, ::std::vector<::std::shared_ptr<::IJsonRpcComponent > > additionalJsonRpcComponents)
MCAPI ::gsl::not_null<::std::shared_ptr<::NetherNet::ISignalingInterface > > getChannel()
static MCAPI void ** $vftable()
Definition WorkerPool.h:20
Definition ErrorInfo.h:9
Definition Url.h:7
Definition ISignalingEventHandler.h:12
Definition NetworkID.h:17
Definition StunRelayServer.h:7
Definition NetworkID.h:13
Definition Alias.h:14