LeviLamina
Loading...
Searching...
No Matches
RakNetConnector.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4#include "mc/network/NetworkIdentifier.h"
5
6// auto generated inclusion list
7#include "mc/deps/core/threading/MPMCQueue.h"
8#include "mc/deps/core/utility/NonOwnerPointer.h"
9#include "mc/network/Compressibility.h"
10#include "mc/network/ConnectionDefinition.h"
11#include "mc/network/Connector.h"
12#include "mc/network/GameConnectionInfo.h"
13#include "mc/network/NetworkIdentifier.h"
14#include "mc/network/NetworkPeer.h"
15#include "mc/network/RakPeerHelper.h"
16#include "mc/network/RemoteConnector.h"
17#include "mc/network/TransportLayer.h"
18#include "mc/network/connection/DisconnectFailReason.h"
19
20// auto generated forward declare list
21// clang-format off
22class AppPlatform;
23namespace RakNet { class RakPeerInterface; }
24namespace RakNet { struct RakNetStatistics; }
25namespace RakNet { struct RakPeerConfiguration; }
26namespace RakNet { struct SystemAddress; }
27// clang-format on
28
29class RakNetConnector : public ::RemoteConnector {
30public:
31 // RakNetConnector inner types declare
32 // clang-format off
34 struct PingCallbackData;
36 // clang-format on
37
38 // RakNetConnector inner types define
40 public:
41 // virtual functions
42 // NOLINTBEGIN
43 virtual ~ConnectionCallbacks() /*override*/ = default;
44
45 virtual void onAllConnectionsClosed(::Connection::DisconnectFailReason, ::std::string const&, bool) = 0;
46
47 virtual void onAllRemoteConnectionsClosed(::Connection::DisconnectFailReason, ::std::string const&, bool) = 0;
48
49 virtual void onOutgoingConnectionFailed(::Connection::DisconnectFailReason, ::std::string const&) = 0;
50
51 virtual void onWebsocketRequest(::std::string const&, ::std::string const&, ::std::function<void()>) = 0;
52 // NOLINTEND
53
54 public:
55 // virtual function thunks
56 // NOLINTBEGIN
57
58 // NOLINTEND
59
60 public:
61 // vftables
62 // NOLINTBEGIN
63 MCNAPI static void** $vftable();
64 // NOLINTEND
65 };
66
68 public:
69 // member variables
70 // NOLINTBEGIN
71 ::ll::TypedStorage<8, 32, ::std::string> mAddress;
72 ::ll::TypedStorage<8, 64, ::std::function<void(uint)>> mAction;
73 // NOLINTEND
74
75 public:
76 // member functions
77 // NOLINTBEGIN
78
79 // NOLINTEND
80
81 public:
82 // destructor thunk
83 // NOLINTBEGIN
84 MCFOLD_C void $dtor();
85 // NOLINTEND
86 };
87
88 class RakNetNetworkPeer : public ::NetworkPeer {
89 public:
90 // RakNetNetworkPeer inner types declare
91 // clang-format off
92 struct ReadBufferData;
93 // clang-format on
94
95 // RakNetNetworkPeer inner types define
97 public:
98 // member variables
99 // NOLINTBEGIN
100 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mTimepoint;
101 ::ll::TypedStorage<8, 32, ::std::string> mReadBuffer;
102 // NOLINTEND
103
104 public:
105 // member functions
106 // NOLINTBEGIN
107 MCAPI ~ReadBufferData();
108 // NOLINTEND
109
110 public:
111 // destructor thunk
112 // NOLINTBEGIN
113 MCFOLD void $dtor();
114 // NOLINTEND
115 };
116
117 public:
118 // member variables
119 // NOLINTBEGIN
122 ::std::string mSendBuffer;
123 ::std::vector<ReadBufferData> mReadBufferDatas;
124 int mApproximateMaxBps;
125 int mLastPing;
126 int mAveragePing;
127 // NOLINTEND
128
129 public:
130 // prevent constructor by default
131 RakNetNetworkPeer& operator=(RakNetNetworkPeer const&);
132 RakNetNetworkPeer(RakNetNetworkPeer const&);
133 RakNetNetworkPeer();
134
135 public:
136 // virtual functions
137 // NOLINTBEGIN
138 virtual void
139 sendPacket(::std::string const& data, ::NetworkPeer::Reliability reliability, ::Compressibility) /*override*/;
140
141 virtual ::NetworkPeer::DataStatus _receivePacket(
142 ::std::string& outData,
143 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
144 ) /*override*/;
145
146 virtual ::NetworkPeer::NetworkStatus getNetworkStatus() const /*override*/;
147
148 virtual void update() /*override*/;
149
150 virtual bool isLocal() const /*override*/;
151
152 virtual bool isEncrypted() const /*override*/;
153
154 virtual ~RakNetNetworkPeer() /*override*/ = default;
155 // NOLINTEND
156
157 public:
158 // member functions
159 // NOLINTBEGIN
160 MCAPI RakNetNetworkPeer(::RakNet::RakPeerInterface& rakPeer, ::NetworkIdentifier const& id);
161
162 MCAPI void newData(::std::string data);
163 // NOLINTEND
164
165 public:
166 // constructor thunks
167 // NOLINTBEGIN
168 MCAPI void* $ctor(::RakNet::RakPeerInterface& rakPeer, ::NetworkIdentifier const& id);
169 // NOLINTEND
170
171 public:
172 // virtual function thunks
173 // NOLINTBEGIN
174 MCAPI void $sendPacket(::std::string const& data, ::NetworkPeer::Reliability reliability, ::Compressibility);
175
176 MCAPI ::NetworkPeer::DataStatus $_receivePacket(
177 ::std::string& outData,
178 ::std::shared_ptr<::std::chrono::steady_clock::time_point> const& timepointPtr
179 );
180 MCAPI ::NetworkPeer::NetworkStatus $getNetworkStatus() const;
181
182 MCAPI void $update();
183
184 MCFOLD bool $isLocal() const;
185
186 MCFOLD bool $isEncrypted() const;
187
188
189 // NOLINTEND
190
191 public:
192 // vftables
193 // NOLINTBEGIN
194 MCNAPI static void** $vftable();
195 // NOLINTEND
196 };
197
198public:
199 // member variables
200 // NOLINTBEGIN
201 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mNATPunchServerId;
202 ::ll::TypedStorage<8, 472, ::Social::GameConnectionInfo> mBackupGameConnection;
203 ::ll::TypedStorage<1, 1, bool> mTryBackupConnection;
204 ::ll::TypedStorage<8, 16, ::std::unique_ptr<::RakNet::RakPeerInterface, void (*)(::RakNet::RakPeerInterface*)>>
205 mRakPeer;
206 ::ll::TypedStorage<8, 176, ::NetworkIdentifier> mServerId;
207 ::ll::TypedStorage<8, 24, ::RakPeerHelper> mPeerHelper;
208 ::ll::TypedStorage<8, 8, ::RakPeerHelper::IPSupportInterface&> mIPSupportInterface;
209 ::ll::TypedStorage<1, 1, bool> mIsAwaitingNatClient;
210 ::ll::TypedStorage<1, 1, bool> mIsServer;
211 ::ll::TypedStorage<1, 1, bool> mIsDisconnecting;
212 ::ll::TypedStorage<1, 1, bool> mConnectingToClient;
213 ::ll::TypedStorage<8, 472, ::Social::GameConnectionInfo> mConnectedGameInfo;
214 ::ll::TypedStorage<
215 8,
216 64,
217 ::std::unordered_map<::NetworkIdentifier, ::std::weak_ptr<::RakNetConnector::RakNetNetworkPeer>>>
218 mPeers;
219 ::ll::TypedStorage<1, 1, bool> mWasHostWhenSuspended;
220 ::ll::TypedStorage<4, 20, ::ConnectionDefinition> mPreviousConnectionDefinition;
221 ::ll::TypedStorage<8, 32, ::std::string> mResolvedIP;
222 ::ll::TypedStorage<8, 24, ::std::vector<::RakNetConnector::PingCallbackData>> mPingTimeCallbacks;
223 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::MPMCQueue<::std::function<void()>>>> mOwnedThreadWork;
224 // NOLINTEND
225
226public:
227 // prevent constructor by default
228 RakNetConnector& operator=(RakNetConnector const&);
229 RakNetConnector(RakNetConnector const&);
230 RakNetConnector();
231
232public:
233 // virtual functions
234 // NOLINTBEGIN
235 virtual ~RakNetConnector() /*override*/;
236
237 virtual bool host(::ConnectionDefinition const& definition) /*override*/;
238
239 virtual bool connect(
240 ::Social::GameConnectionInfo const& gameConnection,
241 ::Social::GameConnectionInfo const& backupConnection
242 ) /*override*/;
243
244 virtual void disconnect() /*override*/;
245
246 virtual void tick() /*override*/;
247
248 virtual void runEvents() /*override*/;
249
250 virtual void closeNetworkConnection(::NetworkIdentifier const& id) /*override*/;
251
252 virtual bool setApplicationHandshakeCompleted(::NetworkIdentifier const& id) /*override*/;
253
254 virtual bool isServer() const /*override*/;
255
256 virtual ::std::string getLocalIp() /*override*/;
257
258 virtual ushort getPort() const /*override*/;
259
260 virtual ::Social::GameConnectionInfo const& getConnectedGameInfo() const /*override*/;
261
262 virtual bool isIPv4Supported() const /*override*/;
263
264 virtual bool isIPv6Supported() const /*override*/;
265
266 virtual ushort getIPv4Port() const /*override*/;
267
268 virtual ushort getIPv6Port() const /*override*/;
269
270 virtual ::NetworkIdentifier getNetworkIdentifier() const /*override*/;
271
272 virtual ::RakNet::RakPeerInterface* getPeer();
273
274 virtual ::RakNet::RakPeerInterface const* getPeer() const;
275
276 virtual ::TransportLayer getNetworkType() const /*override*/;
277
278 virtual void setDisableLanSignaling(bool) /*override*/;
279
280 virtual void setDisableTrickleIce(bool) /*override*/;
281
282 virtual void _onDisable() /*override*/;
283
284 virtual void _onEnable() /*override*/;
285 // NOLINTEND
286
287public:
288 // member functions
289 // NOLINTBEGIN
290 MCAPI RakNetConnector(
291 ::RakNetConnector::ConnectionCallbacks& callbacks,
292 ::RakPeerHelper::IPSupportInterface& ipInterface,
293 ::Bedrock::NonOwnerPointer<::AppPlatform> const& appPlatform,
294 ::RakNet::RakPeerConfiguration const& rakPeerConfig
295 );
296
297 MCAPI ::std::shared_ptr<::RakNetConnector::RakNetNetworkPeer> _createPeer(::NetworkIdentifier const& id);
298
299 MCAPI ::std::vector<::std::string> _getLocalIps() const;
300
301 MCAPI ::std::vector<::RakNet::SystemAddress> _getRefinedLocalIps() const;
302
303 MCAPI void _storeLocalIP();
304
305 MCAPI_C void
306 getPingTimeForConnection(::std::string const& address, int port, ::std::function<void(uint)> pingTimeCallback);
307
308 MCAPI bool getStatistics(::RakNet::RakNetStatistics& rns);
309 // NOLINTEND
310
311public:
312 // constructor thunks
313 // NOLINTBEGIN
314 MCAPI void* $ctor(
315 ::RakNetConnector::ConnectionCallbacks& callbacks,
316 ::RakPeerHelper::IPSupportInterface& ipInterface,
317 ::Bedrock::NonOwnerPointer<::AppPlatform> const& appPlatform,
318 ::RakNet::RakPeerConfiguration const& rakPeerConfig
319 );
320 // NOLINTEND
321
322public:
323 // destructor thunk
324 // NOLINTBEGIN
325 MCAPI void $dtor();
326 // NOLINTEND
327
328public:
329 // virtual function thunks
330 // NOLINTBEGIN
331 MCAPI bool $host(::ConnectionDefinition const& definition);
332
333 MCAPI bool
334 $connect(::Social::GameConnectionInfo const& gameConnection, ::Social::GameConnectionInfo const& backupConnection);
335
336 MCAPI void $disconnect();
337
338 MCAPI void $tick();
339
340 MCAPI void $runEvents();
341
342 MCAPI void $closeNetworkConnection(::NetworkIdentifier const& id);
343
344 MCAPI bool $setApplicationHandshakeCompleted(::NetworkIdentifier const& id);
345
346 MCAPI bool $isServer() const;
347
348 MCAPI ::std::string $getLocalIp();
349
350 MCAPI ushort $getPort() const;
351
352 MCAPI ::Social::GameConnectionInfo const& $getConnectedGameInfo() const;
353
354 MCAPI bool $isIPv4Supported() const;
355
356 MCAPI bool $isIPv6Supported() const;
357
358 MCAPI ushort $getIPv4Port() const;
359
360 MCAPI ushort $getIPv6Port() const;
361
362 MCAPI ::NetworkIdentifier $getNetworkIdentifier() const;
363
364 MCFOLD ::RakNet::RakPeerInterface* $getPeer();
365
366 MCFOLD ::RakNet::RakPeerInterface const* $getPeer() const;
367
368 MCFOLD void $setDisableLanSignaling(bool);
369
370 MCFOLD void $setDisableTrickleIce(bool);
371
372 MCAPI void $_onDisable();
373
374 MCAPI void $_onEnable();
375
376#ifdef LL_PLAT_C
377 MCFOLD ::TransportLayer $getNetworkType() const;
378#endif
379
380
381 // NOLINTEND
382
383public:
384 // vftables
385 // NOLINTBEGIN
386 MCNAPI static void** $vftableForConnector();
387
389
391 // NOLINTEND
392};
Definition AppPlatform.h:90
Definition MPMCQueue.h:6
Definition NetworkIdentifier.h:10
Definition NetworkPeer.h:8
Definition RakNetConnector.h:88
static MCAPI void ** $vftable()
static MCAPI void ** $vftableForConnector()
static MCAPI void ** $vftableForNetworkEnableDisableListener()
static MCAPI void ** $vftableForEnableNonOwnerReferences()
Definition RakPeerInterface.h:32
Definition RakPeerHelper.h:15
Definition RemoteConnector.h:19
MCAPI void $dtor()
STL namespace.
Definition ConnectionDefinition.h:5
Definition Connector.h:25
Definition NetworkPeer.h:36
Definition RakNetConnector.h:39
static MCAPI void ** $vftable()
Definition RakNetConnector.h:67
Definition RakNetStatistics.h:7
Definition RakPeerConfiguration.h:7
Definition SystemAddress.h:7