57 RequestedConnectionListMutex = 0,
58 OfflinePingResponseMutex = 1,
59 NumberOfRakpeerMutexes = 2,
66 ::ll::TypedStorage<8, 8, char*> IP;
67 ::ll::TypedStorage<4, 4, uint> timeout;
75 ::ll::TypedStorage<2, 2, ushort> pingTime;
76 ::ll::TypedStorage<8, 8, uint64> clockDifferential;
80 struct RemoteSystemStruct {
83 enum class ConnectMode :
int {
86 DisconnectAsapSilently = 2,
87 DisconnectOnNoAck = 3,
88 RequestedConnection = 4,
89 HandlingConnectionRequest = 5,
97 ::ll::TypedStorage<1, 1, bool> isActive;
98 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> systemAddress;
99 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> myExternalSystemAddress;
100 ::ll::TypedStorage<8, 2720, ::RakNet::SystemAddress[20]> theirInternalSystemAddress;
101 ::ll::TypedStorage<8, 6704, ::RakNet::ReliabilityLayer> reliabilityLayer;
102 ::ll::TypedStorage<1, 1, bool> weInitiatedTheConnection;
103 ::ll::TypedStorage<8, 80, ::RakNet::RakPeer::PingAndClockDifferential[5]> pingAndClockDifferential;
104 ::ll::TypedStorage<8, 8, uint64> pingAndClockDifferentialWriteIndex;
105 ::ll::TypedStorage<2, 2, ushort> lowestPing;
106 ::ll::TypedStorage<8, 8, uint64> nextPingTime;
107 ::ll::TypedStorage<8, 8, uint64> lastReliableSend;
108 ::ll::TypedStorage<8, 8, uint64> connectionTime;
109 ::ll::TypedStorage<8, 16, ::RakNet::RakNetGUID> guid;
110 ::ll::TypedStorage<4, 4, int> MTUSize;
111 ::ll::TypedStorage<8, 8, ::RakNet::RakNetSocket2*> rakNetSocket;
112 ::ll::TypedStorage<2, 2, ushort> remoteSystemIndex;
113 ::ll::TypedStorage<4, 4, ::RakNet::RakPeer::RemoteSystemStruct::ConnectMode> connectMode;
114 ::ll::TypedStorage<1, 1, bool> applicationHandshakeCompleted;
120 MCAPI RemoteSystemStruct();
122 MCAPI ~RemoteSystemStruct();
142 ::ll::TypedStorage<4, 4, uint> numberOfBitsToSend;
143 ::ll::TypedStorage<4, 4, ::PacketPriority> priority;
144 ::ll::TypedStorage<4, 4, ::PacketReliability> reliability;
145 ::ll::TypedStorage<1, 1, char> orderingChannel;
146 ::ll::TypedStorage<8, 152, ::RakNet::AddressOrGUID> systemIdentifier;
147 ::ll::TypedStorage<1, 1, bool> broadcast;
148 ::ll::TypedStorage<4, 4, ::RakNet::RakPeer::RemoteSystemStruct::ConnectMode> connectionMode;
149 ::ll::TypedStorage<8, 8, uint64> networkID;
150 ::ll::TypedStorage<1, 1, bool> blockingCommand;
151 ::ll::TypedStorage<8, 8, char*> data;
152 ::ll::TypedStorage<1, 1, bool> haveRakNetCloseSocket;
153 ::ll::TypedStorage<4, 4, uint> connectionSocketIndex;
154 ::ll::TypedStorage<2, 2, ushort> remotePortRakNetWasStartedOn_PS3;
155 ::ll::TypedStorage<4, 4, uint> extraSocketOptions;
156 ::ll::TypedStorage<8, 8, ::RakNet::RakNetSocket2*> socket;
157 ::ll::TypedStorage<2, 2, ushort> port;
158 ::ll::TypedStorage<4, 4, uint> receipt;
163 ChangeSystemAddress = 3,
173 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> systemAddress;
174 ::ll::TypedStorage<8, 8, uint64> nextRequestTime;
175 ::ll::TypedStorage<1, 1, uchar> requestsMade;
176 ::ll::TypedStorage<8, 8, char*> data;
177 ::ll::TypedStorage<2, 2, ushort> dataLength;
178 ::ll::TypedStorage<1, 256, char[256]> outgoingPassword;
179 ::ll::TypedStorage<1, 1, uchar> outgoingPasswordLength;
180 ::ll::TypedStorage<4, 4, uint> socketIndex;
181 ::ll::TypedStorage<4, 4, uint> extraData;
182 ::ll::TypedStorage<4, 4, uint> sendConnectionAttemptCount;
183 ::ll::TypedStorage<4, 4, uint> timeBetweenSendConnectionAttemptsMS;
184 ::ll::TypedStorage<4, 4, uint> timeoutTime;
185 ::ll::TypedStorage<4, 4, ::RakNet::PublicKeyMode> publicKeyMode;
186 ::ll::TypedStorage<8, 8, ::RakNet::RakNetSocket2*> socket;
197 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakNetSocket2*>> sockets;
204 ::ll::TypedStorage<1, 1, bool volatile> endThreads;
205 ::ll::TypedStorage<1, 1, bool volatile> isMainLoopThreadActive;
206 ::ll::TypedStorage<1, 1, bool> occasionalPing;
207 ::ll::TypedStorage<4, 4, uint> maximumNumberOfPeers;
208 ::ll::TypedStorage<4, 4, uint> maximumIncomingConnections;
209 ::ll::TypedStorage<8, 288, ::RakNet::BitStream> offlinePingResponse;
210 ::ll::TypedStorage<1, 256, char[256]> incomingPassword;
211 ::ll::TypedStorage<1, 1, uchar> incomingPasswordLength;
212 ::ll::TypedStorage<8, 8, ::RakNet::RakPeer::RemoteSystemStruct*> remoteSystemList;
213 ::ll::TypedStorage<8, 8, ::RakNet::RakPeer::RemoteSystemStruct**> activeSystemList;
214 ::ll::TypedStorage<4, 4, uint> activeSystemListSize;
215 ::ll::TypedStorage<8, 8, ::RakNet::RemoteSystemIndex**> remoteSystemLookup;
216 ::ll::TypedStorage<8, 32, ::DataStructures::MemoryPool<::RakNet::RemoteSystemIndex>> remoteSystemIndexPool;
217 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RakNet::ShadowBanList>> shadowBanList;
218 ::ll::TypedStorage<8, 80, ::RakNet::SimpleMutex[2]> rakPeerMutexes;
219 ::ll::TypedStorage<1, 1, bool> updateCycleIsRunning;
220 ::ll::TypedStorage<4, 4, uint> bytesSentPerSecond;
221 ::ll::TypedStorage<4, 4, uint> bytesReceivedPerSecond;
222 ::ll::TypedStorage<4, 4, uint> validationInteger;
223 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> incomingQueueMutex;
224 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> banListMutex;
225 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakPeer::BanStruct*>> banList;
226 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::PluginInterface2*>> pluginListTS;
227 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::PluginInterface2*>> pluginListNTS;
228 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RakPeer::RequestedConnectionStruct*>>
229 requestedConnectionQueue;
230 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> requestedConnectionQueueMutex;
231 ::ll::TypedStorage<8, 136, ::DataStructures::ThreadsafeAllocatingQueue<::RakNet::RakPeer::BufferedCommandStruct>>
233 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RNS2RecvStruct*>> bufferedPacketsFreePool;
234 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> bufferedPacketsFreePoolMutex;
235 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RNS2RecvStruct*>> bufferedPacketsQueue;
236 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> bufferedPacketsQueueMutex;
237 ::ll::TypedStorage<8, 136, ::DataStructures::ThreadsafeAllocatingQueue<::RakNet::RakPeer::SocketQueryOutput>>
239 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> securityExceptionMutex;
240 ::ll::TypedStorage<4, 4, int> defaultMTUSize;
241 ::ll::TypedStorage<1, 1, bool> trackFrequencyTable;
242 ::ll::TypedStorage<8, 16, ::DataStructures::List<::std::shared_ptr<::RakNet::RakNetSocket2>>> socketList;
243 ::ll::TypedStorage<8, 8, ::RakNet::BitStream*> replyFromTargetBS;
244 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> replyFromTargetPlayer;
245 ::ll::TypedStorage<1, 1, bool> replyFromTargetBroadcast;
246 ::ll::TypedStorage<4, 4, uint> defaultTimeoutTime;
247 ::ll::TypedStorage<8, 16, ::RakNet::RakNetGUID> myGuid;
248 ::ll::TypedStorage<4, 4, uint> maxOutgoingBPS;
249 ::ll::TypedStorage<1, 1, bool> allowConnectionResponseIPMigration;
250 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> firstExternalID;
251 ::ll::TypedStorage<4, 4, int> splitMessageProgressInterval;
252 ::ll::TypedStorage<4, 4, uint> unreliableTimeout;
254 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakString>> securityExceptionList;
255 ::ll::TypedStorage<8, 2856, ::RakNet::SystemAddress[21]> ipList;
256 ::ll::TypedStorage<8, 31592, ::RakNet::NetworkAdapter[11]> adapterList;
257 ::ll::TypedStorage<1, 1, bool> allowInternalRouting;
258 ::ll::TypedStorage<1, 1, bool> allowUnconnectedPings;
260 ::ll::TypedStorage<8, 8, void*> userUpdateThreadData;
261 ::ll::TypedStorage<8, 8, ::RakNet::SignaledEvent> quitAndDataEvents;
262 ::ll::TypedStorage<1, 1, bool> limitConnectionFrequencyFromTheSameIP;
263 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> packetAllocationPoolMutex;
264 ::ll::TypedStorage<8, 32, ::DataStructures::MemoryPool<::RakNet::Packet>> packetAllocationPool;
265 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> packetReturnMutex;
266 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::Packet*>> packetReturnQueue;
267 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> sendReceiptSerialMutex;
268 ::ll::TypedStorage<4, 4, uint> sendReceiptSerial;
276 virtual void InitializeConfiguration(::std::unique_ptr<::RakNet::ShadowBanList> banList) ;
278 virtual ::RakNet::StartupResult Startup(
281 uint socketDescriptorCount,
286 InitializeSecurity(
char const* public_key,
char const* private_key,
bool bRequireClientKey) ;
288 virtual void DisableSecurity() ;
290 virtual void AddToSecurityExceptionList(
char const* ip) ;
292 virtual void RemoveFromSecurityExceptionList(
char const* ip) ;
294 virtual bool IsInSecurityExceptionList(
char const* ip) ;
296 virtual void SetMaximumIncomingConnections(ushort numberAllowed) ;
298 virtual uint GetMaximumIncomingConnections() const ;
300 virtual ushort NumberOfConnections() const ;
302 virtual
void SetIncomingPassword(
char const* passwordData,
int passwordDataLength) ;
304 virtual
void GetIncomingPassword(
char* passwordData,
int* passwordDataLength) ;
306 virtual ::RakNet::ConnectionAttemptResult Connect(
309 char const* passwordData,
310 int passwordDataLength,
312 uint connectionSocketIndex,
313 uint sendConnectionAttemptCount,
314 uint timeBetweenSendConnectionAttemptsMS,
318 virtual ::RakNet::ConnectionAttemptResult ConnectWithSocket(
321 char const* passwordData,
322 int passwordDataLength,
325 uint sendConnectionAttemptCount,
326 uint timeBetweenSendConnectionAttemptsMS,
330 virtual
void Shutdown(
332 uchar orderingChannel,
333 ::PacketPriority disconnectionNotificationPriority
336 virtual
bool SetApplicationHandshakeCompleted(::RakNet::
AddressOrGUID systemIdentifier) ;
338 virtual
bool IsActive() const ;
340 virtual
bool GetConnectionList(::RakNet::
SystemAddress* remoteSystems, ushort* numberOfSystems) const ;
342 virtual uint GetNextSendReceipt() ;
344 virtual uint IncrementNextSendReceipt() ;
349 ::PacketPriority priority,
350 ::PacketReliability reliability,
351 char orderingChannel,
354 uint forceReceiptNumber
359 ::PacketPriority priority,
360 ::PacketReliability reliability,
361 char orderingChannel,
364 uint forceReceiptNumber
367 virtual
void SendLoopback(
char const* data,
int const length) ;
369 virtual uint SendList(
372 int const numParameters,
373 ::PacketPriority priority,
374 ::PacketReliability reliability,
375 char orderingChannel,
378 uint forceReceiptNumber
381 virtual ::RakNet::
Packet* Receive() ;
383 virtual
void DeallocatePacket(::RakNet::
Packet* packet) ;
385 virtual uint GetMaximumNumberOfPeers() const ;
387 virtual
void CloseConnection(
389 bool sendDisconnectionNotification,
390 uchar orderingChannel,
391 ::PacketPriority disconnectionNotificationPriority
394 virtual
void CancelConnectionAttempt(::RakNet::
SystemAddress const target) ;
396 virtual ::RakNet::ConnectionState GetConnectionState(::RakNet::
AddressOrGUID const systemIdentifier) ;
398 virtual
int GetIndexFromSystemAddress(::RakNet::
SystemAddress const systemAddress) const ;
400 virtual ::RakNet::
SystemAddress GetSystemAddressFromIndex(uint index) ;
402 virtual ::RakNet::
RakNetGUID GetGUIDFromIndex(uint index) ;
404 virtual
void GetSystemList(
406 ::DataStructures::List<::RakNet::
RakNetGUID>& guids
409 virtual
void AddToBanList(
char const* IP, uint milliseconds) ;
411 virtual
void RemoveFromBanList(
char const* IP) ;
413 virtual
void ClearBanList() ;
415 virtual
bool IsBanned(
char const* IP) ;
417 virtual
void SetLimitIPConnectionFrequency(
bool b) ;
424 bool onlyReplyOnAcceptingConnections,
425 uint connectionSocketIndex
428 virtual
void SendNatTraversalMessage(::RakNet::
SystemAddress const target) ;
430 virtual
int GetAveragePing(::RakNet::
AddressOrGUID const systemIdentifier) ;
432 virtual
int GetLastPing(::RakNet::
AddressOrGUID const systemIdentifier) const ;
434 virtual
int GetLowestPing(::RakNet::
AddressOrGUID const systemIdentifier) const ;
436 virtual
void SetOccasionalPing(
bool doPing) ;
438 virtual uint64 GetClockDifferential(::RakNet::
AddressOrGUID const systemIdentifier) ;
440 virtual
void SetOfflinePingResponse(
char const* data, uint const length) ;
442 virtual
void GetOfflinePingResponse(
char** data, uint* length) ;
447 virtual
void SetInternalID(::RakNet::
SystemAddress systemAddress,
int index) ;
451 virtual ::RakNet::
RakNetGUID const GetMyGUID() const ;
453 virtual
void resetMyGUID() ;
455 virtual ::RakNet::
SystemAddress GetMyBoundAddress(
int const socketIndex) ;
457 virtual
void SetAllowUnconnectedPings(
bool unconnectedPings) ;
459 virtual
bool GetAllowUnconnectedPings() const ;
466 virtual
bool GetClientPublicKeyFromSystemAddress(::RakNet::
SystemAddress const input,
char* client_public_key) const
469 virtual
void SetTimeoutTime(uint timeMS, ::RakNet::
SystemAddress const target) ;
471 virtual uint GetTimeoutTime(::RakNet::
SystemAddress const target) ;
473 virtual
int GetMTUSize(::RakNet::
SystemAddress const target) const ;
475 virtual uint GetNumberOfAdapters() ;
479 virtual uint GetNumberOfAddresses() ;
481 virtual
char const* GetLocalIP(uint index) ;
483 virtual
bool IsLocalIP(
char const* ip) ;
485 virtual
void AllowConnectionResponseIPMigration(
bool allow) ;
487 virtual
bool AdvertiseSystem(
492 uint connectionSocketIndex
495 virtual
void SetSplitMessageProgressInterval(
int interval) ;
497 virtual
int GetSplitMessageProgressInterval() const ;
499 virtual
void SetUnreliableTimeout(uint timeoutMS) ;
501 virtual
void SendTTL(
char const* host, ushort remotePort,
int ttl, uint connectionSocketIndex) ;
507 virtual
void PushBackPacket(::RakNet::
Packet* packet,
bool pushAtHead) ;
512 virtual ::RakNet::
Packet* AllocatePacket(uint dataSize) ;
516 virtual
void GetSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets) ;
518 virtual
void ReleaseSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets) ;
520 virtual
void WriteOutOfBandHeader(::RakNet::
BitStream* bitStream) ;
522 virtual
void SetUserUpdateThread(
524 void* _userUpdateThreadData
528 SetIncomingDatagramEventHandler(
bool (*_incomingDatagramEventHandler)(::RakNet::
RNS2RecvStruct*)) ;
530 virtual
void ApplyNetworkSimulator(
float packetloss, ushort minExtraPing, ushort extraPingVariance) ;
532 virtual
void SetPerConnectionOutgoingBandwidthLimit(uint maxBitsPerSecond) ;
534 virtual
bool IsNetworkSimulatorActive() ;
539 virtual
bool GetStatistics(uint const index, ::RakNet::
RakNetStatistics* rns) ;
541 virtual
void GetStatisticsList(
543 ::DataStructures::List<::RakNet::
RakNetGUID>& guids,
547 virtual uint GetReceiveBufferSize() ;
549 virtual
bool RunUpdateCycle(::RakNet::
BitStream& updateBitStream) ;
551 virtual
bool SendOutOfBand(
556 uint connectionSocketIndex
559 virtual
void DeallocRNS2RecvStruct(::RakNet::
RNS2RecvStruct* s,
char const* file, uint line) ;
561 virtual ::RakNet::
RNS2RecvStruct* AllocRNS2RecvStruct(
char const* file, uint line) ;
569 MCAPI
void AddPacketToProducer(::RakNet::
Packet* p);
571 MCAPI ::RakNet::
Packet* AllocPacket(uint dataSize,
char const* file, uint line);
573 MCAPI ::RakNet::
Packet* AllocPacket(uint dataSize, uchar* data,
char const* file, uint line);
575 MCAPI
bool AllowIncomingConnections() const;
581 bool* thisIPConnectedRecently,
589 CallPluginCallbacks(::DataStructures::List<::RakNet::
PluginInterface2*>& pluginList, ::RakNet::
Packet* packet);
591 MCAPI
void ClearBufferedPackets();
593 MCAPI
void ClearRequestedConnectionList();
595 MCAPI
void CloseConnectionInternal(
597 bool sendDisconnectionNotification,
598 bool performImmediate,
599 uchar orderingChannel,
600 ::PacketPriority disconnectionNotificationPriority
603 MCAPI
void DerefAllSockets();
605 MCAPI
void DereferenceRemoteSystem(::RakNet::
SystemAddress const& sa);
607 MCAPI
void FillIPList();
609 MCAPI uint64 GetBestClockDifferential(::RakNet::
SystemAddress systemAddress) const;
611 MCAPI
int GetIndexFromSystemAddress(::RakNet::
SystemAddress systemAddress,
bool calledFromNetworkThread) const;
614 GetRemoteSystem(::RakNet::
AddressOrGUID systemIdentifier,
bool calledFromNetworkThread,
bool onlyActive) const;
618 bool calledFromNetworkThread,
622 MCAPI uint GetRemoteSystemIndex(::RakNet::
SystemAddress const& sa) const;
624 MCAPI
bool IsLoopbackAddress(::RakNet::
AddressOrGUID const& systemIdentifier,
bool matchPort) const;
626 MCAPI
void NotifyAndFlagForShutdown(
628 bool performImmediate,
629 uchar orderingChannel,
630 ::PacketPriority disconnectionNotificationPriority
634 OnConnectedPong(uint64 sendPingTime, uint64 sendPongTime, ::RakNet::RakPeer::
RemoteSystemStruct* remoteSystem);
636 MCAPI
void OnConnectionRequest(::RakNet::RakPeer::
RemoteSystemStruct* remoteSystem, uint64 incomingTimestamp);
638 MCAPI
void ParseConnectionRequestPacket(
645 MCAPI
void PingInternal(::RakNet::
SystemAddress target,
bool performImmediate, ::PacketReliability reliability);
649 MCAPI
void ReferenceRemoteSystem(::RakNet::
SystemAddress const& sa, uint remoteSystemListIndex);
651 MCAPI
void SendBuffered(
653 uint numberOfBitsToSend,
654 ::PacketPriority priority,
655 ::PacketReliability reliability,
656 char orderingChannel,
663 MCAPI
void SendBufferedList(
667 ::PacketPriority priority,
668 ::PacketReliability reliability,
669 char orderingChannel,
676 MCAPI ::RakNet::ConnectionAttemptResult SendConnectionRequest(
679 char const* passwordData,
680 int passwordDataLength,
682 uint connectionSocketIndex,
684 uint sendConnectionAttemptCount,
685 uint timeBetweenSendConnectionAttemptsMS,
689 MCAPI ::RakNet::ConnectionAttemptResult SendConnectionRequest(
692 char const* passwordData,
693 int passwordDataLength,
695 uint connectionSocketIndex,
697 uint sendConnectionAttemptCount,
698 uint timeBetweenSendConnectionAttemptsMS,
703 MCAPI
bool SendImmediate(
705 uint numberOfBitsToSend,
706 ::PacketPriority priority,
707 ::PacketReliability reliability,
708 char orderingChannel,
711 bool useCallerDataAllocation,
732 MCAPI
void $InitializeConfiguration(::
std::unique_ptr<::RakNet::
ShadowBanList> banList);
734 MCAPI ::RakNet::StartupResult $Startup(
737 uint socketDescriptorCount,
741 MCFOLD
bool $InitializeSecurity(
char const* public_key,
char const* private_key,
bool bRequireClientKey);
743 MCFOLD
void $DisableSecurity();
745 MCAPI
void $AddToSecurityExceptionList(
char const* ip);
747 MCAPI
void $RemoveFromSecurityExceptionList(
char const* ip);
749 MCAPI
bool $IsInSecurityExceptionList(
char const* ip);
751 MCAPI
void $SetMaximumIncomingConnections(ushort numberAllowed);
753 MCFOLD uint $GetMaximumIncomingConnections() const;
755 MCAPI ushort $NumberOfConnections() const;
757 MCAPI
void $SetIncomingPassword(
char const* passwordData,
int passwordDataLength);
759 MCAPI
void $GetIncomingPassword(
char* passwordData,
int* passwordDataLength);
761 MCAPI ::RakNet::ConnectionAttemptResult $Connect(
764 char const* passwordData,
765 int passwordDataLength,
767 uint connectionSocketIndex,
768 uint sendConnectionAttemptCount,
769 uint timeBetweenSendConnectionAttemptsMS,
773 MCAPI ::RakNet::ConnectionAttemptResult $ConnectWithSocket(
776 char const* passwordData,
777 int passwordDataLength,
780 uint sendConnectionAttemptCount,
781 uint timeBetweenSendConnectionAttemptsMS,
785 MCAPI
void $Shutdown(uint blockDuration, uchar orderingChannel, ::PacketPriority disconnectionNotificationPriority);
787 MCAPI
bool $SetApplicationHandshakeCompleted(::RakNet::
AddressOrGUID systemIdentifier);
789 MCAPI
bool $IsActive() const;
791 MCAPI
bool $GetConnectionList(::RakNet::
SystemAddress* remoteSystems, ushort* numberOfSystems) const;
793 MCAPI uint $GetNextSendReceipt();
795 MCAPI uint $IncrementNextSendReceipt();
800 ::PacketPriority priority,
801 ::PacketReliability reliability,
802 char orderingChannel,
805 uint forceReceiptNumber
810 ::PacketPriority priority,
811 ::PacketReliability reliability,
812 char orderingChannel,
815 uint forceReceiptNumber
818 MCAPI
void $SendLoopback(
char const* data,
int const length);
820 MCAPI uint $SendList(
823 int const numParameters,
824 ::PacketPriority priority,
825 ::PacketReliability reliability,
826 char orderingChannel,
829 uint forceReceiptNumber
832 MCAPI ::RakNet::
Packet* $Receive();
834 MCAPI
void $DeallocatePacket(::RakNet::
Packet* packet);
836 MCFOLD uint $GetMaximumNumberOfPeers() const;
838 MCAPI
void $CloseConnection(
840 bool sendDisconnectionNotification,
841 uchar orderingChannel,
842 ::PacketPriority disconnectionNotificationPriority
845 MCAPI
void $CancelConnectionAttempt(::RakNet::
SystemAddress const target);
847 MCAPI ::RakNet::ConnectionState $GetConnectionState(::RakNet::
AddressOrGUID const systemIdentifier);
849 MCAPI
int $GetIndexFromSystemAddress(::RakNet::
SystemAddress const systemAddress) const;
851 MCAPI ::RakNet::
SystemAddress $GetSystemAddressFromIndex(uint index);
853 MCAPI ::RakNet::
RakNetGUID $GetGUIDFromIndex(uint index);
855 MCAPI
void $GetSystemList(
857 ::DataStructures::List<::RakNet::
RakNetGUID>& guids
860 MCAPI
void $AddToBanList(
char const* IP, uint milliseconds);
862 MCAPI
void $RemoveFromBanList(
char const* IP);
864 MCAPI
void $ClearBanList();
866 MCAPI
bool $IsBanned(
char const* IP);
868 MCAPI
void $SetLimitIPConnectionFrequency(
bool b);
873 $Ping(
char const* host, ushort remotePort,
bool onlyReplyOnAcceptingConnections, uint connectionSocketIndex);
875 MCAPI
void $SendNatTraversalMessage(::RakNet::
SystemAddress const target);
877 MCAPI
int $GetAveragePing(::RakNet::
AddressOrGUID const systemIdentifier);
879 MCAPI
int $GetLastPing(::RakNet::
AddressOrGUID const systemIdentifier) const;
881 MCAPI
int $GetLowestPing(::RakNet::
AddressOrGUID const systemIdentifier) const;
883 MCAPI
void $SetOccasionalPing(
bool doPing);
885 MCAPI uint64 $GetClockDifferential(::RakNet::
AddressOrGUID const systemIdentifier);
887 MCAPI
void $SetOfflinePingResponse(
char const* data, uint const length);
889 MCAPI
void $GetOfflinePingResponse(
char** data, uint* length);
893 MCAPI
void $SetInternalID(::RakNet::
SystemAddress systemAddress,
int index);
897 MCAPI ::RakNet::
RakNetGUID const $GetMyGUID() const;
899 MCAPI
void $resetMyGUID();
901 MCAPI ::RakNet::
SystemAddress $GetMyBoundAddress(
int const socketIndex);
903 MCAPI
void $SetAllowUnconnectedPings(
bool unconnectedPings);
905 MCAPI
bool $GetAllowUnconnectedPings() const;
912 $GetClientPublicKeyFromSystemAddress(::RakNet::
SystemAddress const input,
char* client_public_key) const;
914 MCAPI
void $SetTimeoutTime(uint timeMS, ::RakNet::
SystemAddress const target);
916 MCAPI uint $GetTimeoutTime(::RakNet::
SystemAddress const target);
918 MCAPI
int $GetMTUSize(::RakNet::
SystemAddress const target) const;
920 MCAPI uint $GetNumberOfAdapters();
924 MCAPI uint $GetNumberOfAddresses();
926 MCAPI
char const* $GetLocalIP(uint index);
928 MCAPI
bool $IsLocalIP(
char const* ip);
930 MCAPI
void $AllowConnectionResponseIPMigration(
bool allow);
933 $AdvertiseSystem(
char const* host, ushort remotePort,
char const* data,
int dataLength, uint connectionSocketIndex);
935 MCAPI
void $SetSplitMessageProgressInterval(
int interval);
937 MCAPI
int $GetSplitMessageProgressInterval() const;
939 MCAPI
void $SetUnreliableTimeout(uint timeoutMS);
941 MCAPI
void $SendTTL(
char const* host, ushort remotePort,
int ttl, uint connectionSocketIndex);
947 MCAPI
void $PushBackPacket(::RakNet::
Packet* packet,
bool pushAtHead);
951 MCAPI ::RakNet::
Packet* $AllocatePacket(uint dataSize);
955 MCAPI
void $GetSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets);
957 MCAPI
void $ReleaseSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets);
959 MCAPI
void $WriteOutOfBandHeader(::RakNet::
BitStream* bitStream);
962 $SetUserUpdateThread(
void (*_userUpdateThreadPtr)(::RakNet::
RakPeerInterface*,
void*),
void* _userUpdateThreadData);
964 MCAPI
void $SetIncomingDatagramEventHandler(
bool (*_incomingDatagramEventHandler)(::RakNet::
RNS2RecvStruct*));
966 MCFOLD
void $ApplyNetworkSimulator(
float packetloss, ushort minExtraPing, ushort extraPingVariance);
968 MCAPI
void $SetPerConnectionOutgoingBandwidthLimit(uint maxBitsPerSecond);
970 MCFOLD
bool $IsNetworkSimulatorActive();
975 MCAPI
bool $GetStatistics(uint const index, ::RakNet::
RakNetStatistics* rns);
977 MCAPI
void $GetStatisticsList(
979 ::DataStructures::List<::RakNet::
RakNetGUID>& guids,
983 MCAPI uint $GetReceiveBufferSize();
985 MCAPI
bool $RunUpdateCycle(::RakNet::
BitStream& updateBitStream);
988 $SendOutOfBand(
char const* host, ushort remotePort,
char const* data, uint dataLength, uint connectionSocketIndex);
990 MCAPI
void $DeallocRNS2RecvStruct(::RakNet::
RNS2RecvStruct* s,
char const* file, uint line);
992 MCAPI ::RakNet::
RNS2RecvStruct* $AllocRNS2RecvStruct(
char const* file, uint line);