LeviLamina
Loading...
Searching...
No Matches
NetherNetConnector.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/nether_net/ESessionError.h"
7#include "mc/deps/nether_net/INetherNetTransportInterfaceCallbacks.h"
8#include "mc/deps/nether_net/NetworkID.h"
9#include "mc/network/Connector.h"
10#include "mc/network/RemoteConnector.h"
11#include "mc/network/TransportLayer.h"
12#include "mc/platform/threading/Mutex.h"
13#include "mc/platform/threading/UniqueLock.h"
14
15// auto generated forward declare list
16// clang-format off
21namespace Bedrock::Http { class LibHttpClientInstance; }
22namespace Json { class Value; }
23namespace NetherNet { class INetherNetTransportInterface; }
24namespace Social { class GameConnectionInfo; }
25// clang-format on
26
28public:
29 // NetherNetConnector inner types declare
30 // clang-format off
31 struct DisconnectEvent;
34 // clang-format on
35
36 // NetherNetConnector inner types define
37 struct DisconnectEvent {
38 public:
39 // member variables
40 // NOLINTBEGIN
45 // NOLINTEND
46
47 public:
48 // prevent constructor by default
49 DisconnectEvent& operator=(DisconnectEvent const&);
50 DisconnectEvent(DisconnectEvent const&);
51 DisconnectEvent();
52
53 public:
54 // member functions
55 // NOLINTBEGIN
57 // NOLINTEND
58
59 public:
60 // destructor thunk
61 // NOLINTBEGIN
62 MCNAPI void $dtor();
63 // NOLINTEND
64 };
65
66 struct NewIncomingConnectionEvent {
67 public:
68 // member variables
69 // NOLINTBEGIN
71 // NOLINTEND
72
73 public:
74 // prevent constructor by default
75 NewIncomingConnectionEvent& operator=(NewIncomingConnectionEvent const&);
76 NewIncomingConnectionEvent(NewIncomingConnectionEvent const&);
77 NewIncomingConnectionEvent();
78
79 public:
80 // member functions
81 // NOLINTBEGIN
83 // NOLINTEND
84
85 public:
86 // destructor thunk
87 // NOLINTBEGIN
88 MCNAPI void $dtor();
89 // NOLINTEND
90 };
91
92 struct NewOutgoingConnectionEvent {
93 public:
94 // member variables
95 // NOLINTBEGIN
97 // NOLINTEND
98
99 public:
100 // prevent constructor by default
101 NewOutgoingConnectionEvent& operator=(NewOutgoingConnectionEvent const&);
102 NewOutgoingConnectionEvent(NewOutgoingConnectionEvent const&);
103 NewOutgoingConnectionEvent();
104
105 public:
106 // member functions
107 // NOLINTBEGIN
108#ifdef LL_PLAT_C
109 MCNAPI ~NewOutgoingConnectionEvent();
110#endif
111 // NOLINTEND
112
113 public:
114 // destructor thunk
115 // NOLINTBEGIN
116#ifdef LL_PLAT_C
117 MCNAPI void $dtor();
118#endif
119 // NOLINTEND
120 };
121
122 using BroadcastRequestCallback = ::std::function<bool(void*, int*)>;
123
124 using BroadcastResponseCallback = ::std::function<void(::NetherNet::NetworkID const&, void const*, int)>;
125
126 using Event = ::std::variant<
130
132
133public:
134 // member variables
135 // NOLINTBEGIN
136 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Http::LibHttpClientInstance> const> mHttpLibrary;
137 ::ll::TypedStorage<8, 24, ::NetherNet::NetworkID const> mNetworkID;
138 ::ll::TypedStorage<
139 8,
140 72,
141 ::std::unique_ptr<
143 ::std::function<void(::NetherNet::INetherNetTransportInterface*)>>>
144 mTransport;
145 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mBroadcastCallbackMutex;
146 ::ll::TypedStorage<8, 64, ::std::function<bool(void*, int*)>> mBroadcastRequestCallback;
147 ::ll::TypedStorage<8, 64, ::std::function<void(::NetherNet::NetworkID const&, void const*, int)>>
148 mBroadcastResponseCallback;
149 ::ll::TypedStorage<8, 80, ::std::recursive_mutex> mEventsMutex;
150 ::ll::TypedStorage<
151 8,
152 8,
153 ::std::unique_ptr<::std::vector<::std::variant<
157 mEvents;
158 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::WebRTCNetworkPeer>>> mPeers;
159 // NOLINTEND
160
161public:
162 // prevent constructor by default
163 NetherNetConnector();
164
165public:
166 // virtual functions
167 // NOLINTBEGIN
168 virtual ~NetherNetConnector() /*override*/;
169
170 virtual bool closeSessionWithUser(::NetherNet::NetworkID remoteId, uint64 sessionId);
171
172 virtual void setDisableLanSignaling(bool disableLanSignaling) /*override*/;
173
174 virtual bool host(::ConnectionDefinition const& definition) /*override*/;
175
176 virtual bool connect(
177 ::Social::GameConnectionInfo const& primaryConnection,
178 ::Social::GameConnectionInfo const& backupConnection
179 ) /*override*/;
180
181 virtual void tick() /*override*/;
182
183 virtual void runEvents() /*override*/;
184
185 virtual ::NetworkIdentifier getNetworkIdentifier() const /*override*/;
186
187 virtual void closeNetworkConnection(::NetworkIdentifier const&) /*override*/;
188
189 virtual bool setApplicationHandshakeCompleted(::NetworkIdentifier const&) /*override*/;
190
191 virtual ::TransportLayer getNetworkType() const /*override*/;
192
193 virtual void _onDisable() /*override*/;
194
195 virtual void _onEnable() /*override*/;
196
197 virtual void OnSpopViolation() /*override*/;
198
199 virtual void OnSessionClose(
200 ::NetherNet::NetworkID networkID,
201 uint64 sessionId,
202 ::NetherNet::ESessionError sessionError,
203 ::Json::Value summary
204 ) /*override*/;
205
206 virtual void
207 OnBroadcastResponseReceived(::NetherNet::NetworkID networkID, void const* pApplicationData, int size) /*override*/;
208
209 virtual bool OnBroadcastDiscoveryRequestReceivedGetResponse(void* pApplicationData, int* pSize) /*override*/;
210
211 virtual void OnSessionGetConnectionFlags(::NetherNet::NetworkID, uint* flags) /*override*/;
212 // NOLINTEND
213
214public:
215 // member functions
216 // NOLINTBEGIN
217 MCAPI NetherNetConnector(
218 ::NetherNetTransportFactory const& factory,
219 ::Connector::ConnectionCallbacks& callbacks,
220 ::std::optional<::NetherNet::NetworkID> networkId
221 );
222
223 MCAPI void _createEventQueue();
224
225 MCAPI ::gsl::not_null<::std::shared_ptr<::WebRTCNetworkPeer>> _getOrCreatePeer(
226 ::NetherNet::NetworkID const& remoteId,
227 uint64 sessionId,
228 ::Bedrock::Threading::UniqueLock<::std::recursive_mutex> const&
229 );
230
231 MCAPI void _queueIncomingConnectionEvent(::NetherNet::NetworkID peerId, uint64 sessionId);
232
233#ifdef LL_PLAT_C
234 MCAPI void _queueOutgoingConnectionEvent(::NetherNet::NetworkID peerId, uint64 sessionId);
235#endif
236 // NOLINTEND
237
238public:
239 // constructor thunks
240 // NOLINTBEGIN
241 MCAPI void* $ctor(
242 ::NetherNetTransportFactory const& factory,
244 ::std::optional<::NetherNet::NetworkID> networkId
245 );
246 // NOLINTEND
247
248public:
249 // destructor thunk
250 // NOLINTBEGIN
251 MCAPI void $dtor();
252 // NOLINTEND
253
254public:
255 // virtual function thunks
256 // NOLINTBEGIN
257 MCAPI bool $closeSessionWithUser(::NetherNet::NetworkID remoteId, uint64 sessionId);
258
259 MCAPI void $setDisableLanSignaling(bool disableLanSignaling);
260
261 MCFOLD bool $host(::ConnectionDefinition const& definition);
262
263 MCFOLD bool $connect(
264 ::Social::GameConnectionInfo const& primaryConnection,
265 ::Social::GameConnectionInfo const& backupConnection
266 );
267
268 MCFOLD void $tick();
269
270 MCAPI void $runEvents();
271
272 MCAPI ::NetworkIdentifier $getNetworkIdentifier() const;
273
274 MCFOLD void $closeNetworkConnection(::NetworkIdentifier const&);
275
276 MCFOLD bool $setApplicationHandshakeCompleted(::NetworkIdentifier const&);
277
278 MCFOLD ::TransportLayer $getNetworkType() const;
279
280 MCFOLD void $_onDisable();
281
282 MCFOLD void $_onEnable();
283
284 MCFOLD void $OnSpopViolation();
285
286 MCAPI void $OnSessionClose(
287 ::NetherNet::NetworkID networkID,
288 uint64 sessionId,
289 ::NetherNet::ESessionError sessionError,
290 ::Json::Value summary
291 );
292
293 MCAPI void $OnBroadcastResponseReceived(::NetherNet::NetworkID networkID, void const* pApplicationData, int size);
294
295 MCAPI bool $OnBroadcastDiscoveryRequestReceivedGetResponse(void* pApplicationData, int* pSize);
296
297 MCAPI void $OnSessionGetConnectionFlags(::NetherNet::NetworkID, uint* flags);
298
299
300 // NOLINTEND
301
302public:
303 // vftables
304 // NOLINTBEGIN
306
308
309 MCNAPI static void** $vftable();
310
311 MCNAPI static void** $vftableForConnector();
312 // NOLINTEND
313};
Definition LibHttpClientInstance.h:15
Definition UniqueLock.h:8
Definition Value.h:16
Definition NetherNetTransportFactory.h:18
Definition INetherNetTransportInterfaceCallbacks.h:16
Definition INetherNetTransportInterface.h:21
Definition NetworkIdentifier.h:10
Definition RemoteConnector.h:19
MCAPI void $dtor()
Definition GameConnectionInfo.h:21
Definition WebRTCNetworkPeer.h:16
STL namespace.
Definition ConnectionDefinition.h:5
Definition Connector.h:25
Definition NetherNetConnector.h:37
Definition NetherNetConnector.h:66
Definition NetherNetConnector.h:92
static MCAPI void ** $vftableForConnector()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForNetworkEnableDisableListener()
static MCAPI void ** $vftable()
Definition NetworkID.h:17
Definition Alias.h:14