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 MCNAPI_C ~NewOutgoingConnectionEvent();
109 // NOLINTEND
110
111 public:
112 // destructor thunk
113 // NOLINTBEGIN
114 MCNAPI_C void $dtor();
115 // NOLINTEND
116 };
117
118 using BroadcastRequestCallback = ::std::function<bool(void*, int*)>;
119
120 using BroadcastResponseCallback = ::std::function<void(::NetherNet::NetworkID const&, void const*, int)>;
121
122 using Event = ::std::variant<
126
128
129public:
130 // member variables
131 // NOLINTBEGIN
132 ::ll::TypedStorage<8, 16, ::std::shared_ptr<::Bedrock::Http::LibHttpClientInstance> const> mHttpLibrary;
133 ::ll::TypedStorage<8, 24, ::NetherNet::NetworkID const> mNetworkID;
134 ::ll::TypedStorage<
135 8,
136 72,
137 ::std::unique_ptr<
139 ::std::function<void(::NetherNet::INetherNetTransportInterface*)>>>
140 mTransport;
141 ::ll::TypedStorage<8, 80, ::Bedrock::Threading::Mutex> mBroadcastCallbackMutex;
142 ::ll::TypedStorage<8, 64, ::std::function<bool(void*, int*)>> mBroadcastRequestCallback;
143 ::ll::TypedStorage<8, 64, ::std::function<void(::NetherNet::NetworkID const&, void const*, int)>>
144 mBroadcastResponseCallback;
145 ::ll::TypedStorage<8, 80, ::std::recursive_mutex> mEventsMutex;
146 ::ll::TypedStorage<
147 8,
148 8,
149 ::std::unique_ptr<::std::vector<::std::variant<
153 mEvents;
154 ::ll::TypedStorage<8, 24, ::std::vector<::std::weak_ptr<::WebRTCNetworkPeer>>> mPeers;
155 // NOLINTEND
156
157public:
158 // prevent constructor by default
159 NetherNetConnector();
160
161public:
162 // virtual functions
163 // NOLINTBEGIN
164 virtual ~NetherNetConnector() /*override*/;
165
166 virtual void setDisableLanSignaling(bool disableLanSignaling) /*override*/;
167
168 virtual void setDisableTrickleIce(bool disableTrickleIce) /*override*/;
169
170 virtual bool host(::ConnectionDefinition const& definition) /*override*/;
171
172 virtual bool connect(
173 ::Social::GameConnectionInfo const& gameConnection,
174 ::Social::GameConnectionInfo const& backupConnection
175 ) /*override*/;
176
177 virtual void tick() /*override*/;
178
179 virtual void runEvents() /*override*/;
180
181 virtual ::NetworkIdentifier getNetworkIdentifier() const /*override*/;
182
183 virtual void closeNetworkConnection(::NetworkIdentifier const&) /*override*/;
184
185 virtual bool setApplicationHandshakeCompleted(::NetworkIdentifier const&) /*override*/;
186
187 virtual ::TransportLayer getNetworkType() const /*override*/;
188
189 virtual void _onDisable() /*override*/;
190
191 virtual void _onEnable() /*override*/;
192
193 virtual void OnSpopViolation() /*override*/;
194
195 virtual void OnSessionClose(
196 ::NetherNet::NetworkID networkID,
197 uint64 sessionId,
198 ::NetherNet::ESessionError sessionError,
199 ::Json::Value summary
200 ) /*override*/;
201
202 virtual void
203 OnBroadcastResponseReceived(::NetherNet::NetworkID networkID, void const* pApplicationData, int size) /*override*/;
204
205 virtual bool OnBroadcastDiscoveryRequestReceivedGetResponse(void* pApplicationData, int* pSize) /*override*/;
206
207 virtual void OnSessionGetConnectionFlags(::NetherNet::NetworkID, uint* flags) /*override*/;
208 // NOLINTEND
209
210public:
211 // member functions
212 // NOLINTBEGIN
213 MCAPI NetherNetConnector(
214 ::NetherNetTransportFactory const& factory,
215 ::Connector::ConnectionCallbacks& callbacks,
216 ::std::optional<::NetherNet::NetworkID> networkId
217 );
218
219 MCAPI ::gsl::not_null<::std::shared_ptr<::WebRTCNetworkPeer>> _getOrCreatePeer(
220 ::NetherNet::NetworkID const& remoteId,
221 uint64 sessionId,
222 ::Bedrock::Threading::UniqueLock<::std::recursive_mutex> const&
223 );
224
225 MCAPI void _prepareForNewSession();
226
227 MCAPI void _queueIncomingConnectionEvent(::NetherNet::NetworkID peerId, uint64 sessionId);
228
229 MCAPI_C void _queueOutgoingConnectionEvent(::NetherNet::NetworkID peerId, uint64 sessionId);
230 // NOLINTEND
231
232public:
233 // constructor thunks
234 // NOLINTBEGIN
235 MCAPI void* $ctor(
236 ::NetherNetTransportFactory const& factory,
237 ::Connector::ConnectionCallbacks& callbacks,
238 ::std::optional<::NetherNet::NetworkID> networkId
239 );
240 // NOLINTEND
241
242public:
243 // destructor thunk
244 // NOLINTBEGIN
245 MCAPI void $dtor();
246 // NOLINTEND
247
248public:
249 // virtual function thunks
250 // NOLINTBEGIN
251 MCAPI void $setDisableLanSignaling(bool disableLanSignaling);
252
253 MCAPI void $setDisableTrickleIce(bool disableTrickleIce);
254
255 MCFOLD bool $host(::ConnectionDefinition const& definition);
256
257 MCFOLD bool
258 $connect(::Social::GameConnectionInfo const& gameConnection, ::Social::GameConnectionInfo const& backupConnection);
259
260 MCFOLD void $tick();
261
262 MCAPI void $runEvents();
263
264 MCAPI ::NetworkIdentifier $getNetworkIdentifier() const;
265
266 MCFOLD void $closeNetworkConnection(::NetworkIdentifier const&);
267
268 MCFOLD bool $setApplicationHandshakeCompleted(::NetworkIdentifier const&);
269
270 MCFOLD ::TransportLayer $getNetworkType() const;
271
272 MCFOLD void $_onDisable();
273
274 MCFOLD void $_onEnable();
275
276 MCFOLD void $OnSpopViolation();
277
278 MCAPI void $OnSessionClose(
279 ::NetherNet::NetworkID networkID,
280 uint64 sessionId,
281 ::NetherNet::ESessionError sessionError,
282 ::Json::Value summary
283 );
284
285 MCAPI void $OnBroadcastResponseReceived(::NetherNet::NetworkID networkID, void const* pApplicationData, int size);
286
287 MCAPI bool $OnBroadcastDiscoveryRequestReceivedGetResponse(void* pApplicationData, int* pSize);
288
289 MCAPI void $OnSessionGetConnectionFlags(::NetherNet::NetworkID, uint* flags);
290
291
292 // NOLINTEND
293
294public:
295 // vftables
296 // NOLINTBEGIN
298
300
301 MCNAPI static void** $vftable();
302
303 MCNAPI static void** $vftableForConnector();
304 // NOLINTEND
305};
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