46 onAllConnectionsClosed(::Connection::DisconnectFailReason discoReason,
bool skipDisconnectMessage) = 0;
49 onAllRemoteConnectionsClosed(::Connection::DisconnectFailReason discoReason,
bool skipDisconnectMessage) = 0;
51 virtual void onOutgoingConnectionFailed(::Connection::DisconnectFailReason discoReason) = 0;
53 virtual void onWebsocketRequest(
54 ::std::string
const& serverAddress,
55 ::std::string
const& payload,
56 ::std::function<
void()> errorCallback
73 struct PingCallbackData {
77 ::ll::TypedStorage<8, 32, ::std::string> mAddress;
78 ::ll::TypedStorage<8, 64, ::std::function<void(uint)>> mAction;
83 PingCallbackData& operator=(PingCallbackData
const&);
84 PingCallbackData(PingCallbackData
const&);
93 MCAPI ~PingCallbackData();
118 ::ll::TypedStorage<8, 8, ::std::chrono::steady_clock::time_point> mTimepoint;
119 ::ll::TypedStorage<8, 32, ::std::string> mReadBuffer;
140 ::std::string mSendBuffer;
141 ::std::vector<ReadBufferData> mReadBufferDatas;
142 int mApproximateMaxBps;
149 RakNetNetworkPeer& operator=(RakNetNetworkPeer
const&);
150 RakNetNetworkPeer(RakNetNetworkPeer
const&);
157 sendPacket(::std::string
const& data, ::NetworkPeer::Reliability reliability, ::Compressibility) ;
159 virtual ::NetworkPeer::DataStatus _receivePacket(
160 ::std::string& outData,
161 ::std::shared_ptr<::std::chrono::steady_clock::time_point>
const& timepointPtr
164 virtual ::NetworkPeer::NetworkStatus getNetworkStatus() const ;
166 virtual
void update() ;
168 virtual
bool isLocal() const ;
170 virtual
bool isEncrypted() const ;
176 MCAPI
void newData(::
std::
string data);
182 MCAPI
void $sendPacket(::
std::
string const& data, ::
NetworkPeer::Reliability reliability, ::Compressibility);
185 ::
std::
string& outData,
186 ::
std::shared_ptr<::
std::chrono::steady_clock::time_point> const& timepointPtr
190 MCAPI
void $update();
192 MCFOLD
bool $isLocal() const;
194 MCFOLD
bool $isEncrypted() const;
210 ::ll::TypedStorage<8, 520, ::Social::GameConnectionInfo> mBackupGameConnection;
211 ::ll::TypedStorage<1, 1,
bool> mTryBackupConnection;
212 ::ll::TypedStorage<8, 16, ::
std::unique_ptr<::RakNet::RakPeerInterface,
void (*)(::RakNet::RakPeerInterface*)>>
216 ::ll::TypedStorage<8, 8, ::
RakPeerHelper::IPSupportInterface&> mIPSupportInterface;
217 ::ll::TypedStorage<1, 1,
bool> mIsAwaitingNatClient;
218 ::ll::TypedStorage<1, 1,
bool> mIsServer;
219 ::ll::TypedStorage<1, 1,
bool> mIsDisconnecting;
220 ::ll::TypedStorage<1, 1,
bool> mConnectingToClient;
221 ::ll::TypedStorage<8, 520, ::Social::GameConnectionInfo> mConnectedGameInfo;
227 ::ll::TypedStorage<1, 1,
bool> mWasHostWhenSuspended;
229 ::ll::TypedStorage<8, 32, ::
std::
string> mResolvedIP;
230 ::ll::TypedStorage<8, 24, ::
std::vector<::RakNetConnector::
PingCallbackData>> mPingTimeCallbacks;
231 ::ll::TypedStorage<8, 8, ::
std::unique_ptr<::
MPMCQueue<::
std::function<
void()>>>> mOwnedThreadWork;
236 RakNetConnector& operator=(RakNetConnector const&);
237 RakNetConnector(RakNetConnector const&);
243 virtual ~RakNetConnector() ;
247 virtual
bool connect(
248 ::Social::GameConnectionInfo const& primaryConnection,
249 ::Social::GameConnectionInfo const& backupConnection
252 virtual
void disconnect() ;
254 virtual
void tick() ;
256 virtual
void runEvents() ;
262 virtual
bool isServer() const ;
264 virtual ::
std::
string getLocalIp() ;
266 virtual ushort getPort() const ;
268 virtual ::Social::GameConnectionInfo const& getConnectedGameInfo() const ;
270 virtual
bool isIPv4Supported() const ;
272 virtual
bool isIPv6Supported() const ;
274 virtual ushort getIPv4Port() const ;
276 virtual ushort getIPv6Port() const ;
280 virtual ::RakNet::RakPeerInterface* getPeer();
282 virtual ::RakNet::RakPeerInterface const* getPeer() const;
284 virtual ::TransportLayer getNetworkType() const ;
286 virtual
void setDisableLanSignaling(
bool) ;
288 virtual
void _onDisable() ;
290 virtual
void _onEnable() ;
296 MCAPI RakNetConnector(
299 ::Bedrock::NonOwnerPointer<::
AppPlatform> const& appPlatform,
300 ::RakNet::RakPeerConfiguration const& rakPeerConfig
303 MCAPI ::
std::vector<::
std::
string> _getLocalIps() const;
305 MCAPI ::
std::vector<::RakNet::SystemAddress> _getRefinedLocalIps() const;
307 MCAPI
void _storeLocalIP();
311 getPingTimeForConnection(::std::string
const& address,
int port, ::std::function<
void(uint)> pingTimeCallback);
344 MCAPI
void $disconnect();
348 MCAPI
void $runEvents();
354 MCFOLD
bool $isServer()
const;
356 MCAPI ::std::string $getLocalIp();
358 MCAPI ushort $getPort()
const;
360 MCAPI ::Social::GameConnectionInfo
const& $getConnectedGameInfo()
const;
362 MCAPI
bool $isIPv4Supported()
const;
364 MCAPI
bool $isIPv6Supported()
const;
366 MCAPI ushort $getIPv4Port()
const;
368 MCAPI ushort $getIPv6Port()
const;
370 MCAPI ::NetworkIdentifier $getNetworkIdentifier()
const;
372 MCFOLD ::RakNet::RakPeerInterface* $getPeer();
374 MCFOLD ::RakNet::RakPeerInterface
const* $getPeer()
const;
376 MCFOLD ::TransportLayer $getNetworkType()
const;
378 MCFOLD
void $setDisableLanSignaling(
bool);
380 MCAPI
void $_onDisable();
382 MCAPI
void $_onEnable();