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;
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;
122 ::ll::TypedStorage<4, 4, uint> numberOfBitsToSend;
123 ::ll::TypedStorage<4, 4, ::PacketPriority> priority;
124 ::ll::TypedStorage<4, 4, ::PacketReliability> reliability;
125 ::ll::TypedStorage<1, 1, char> orderingChannel;
126 ::ll::TypedStorage<8, 152, ::RakNet::AddressOrGUID> systemIdentifier;
127 ::ll::TypedStorage<1, 1, bool> broadcast;
128 ::ll::TypedStorage<4, 4, ::RakNet::RakPeer::RemoteSystemStruct::ConnectMode> connectionMode;
129 ::ll::TypedStorage<8, 8, uint64> networkID;
130 ::ll::TypedStorage<1, 1, bool> blockingCommand;
131 ::ll::TypedStorage<8, 8, char*> data;
132 ::ll::TypedStorage<1, 1, bool> haveRakNetCloseSocket;
133 ::ll::TypedStorage<4, 4, uint> connectionSocketIndex;
134 ::ll::TypedStorage<2, 2, ushort> remotePortRakNetWasStartedOn_PS3;
135 ::ll::TypedStorage<4, 4, uint> extraSocketOptions;
136 ::ll::TypedStorage<8, 8, ::RakNet::RakNetSocket2*> socket;
137 ::ll::TypedStorage<2, 2, ushort> port;
138 ::ll::TypedStorage<4, 4, uint> receipt;
143 ChangeSystemAddress = 3,
153 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> systemAddress;
154 ::ll::TypedStorage<8, 8, uint64> nextRequestTime;
155 ::ll::TypedStorage<1, 1, uchar> requestsMade;
156 ::ll::TypedStorage<8, 8, char*> data;
157 ::ll::TypedStorage<2, 2, ushort> dataLength;
158 ::ll::TypedStorage<1, 256, char[256]> outgoingPassword;
159 ::ll::TypedStorage<1, 1, uchar> outgoingPasswordLength;
160 ::ll::TypedStorage<4, 4, uint> socketIndex;
161 ::ll::TypedStorage<4, 4, uint> extraData;
162 ::ll::TypedStorage<4, 4, uint> sendConnectionAttemptCount;
163 ::ll::TypedStorage<4, 4, uint> timeBetweenSendConnectionAttemptsMS;
164 ::ll::TypedStorage<4, 4, uint> timeoutTime;
165 ::ll::TypedStorage<4, 4, ::RakNet::PublicKeyMode> publicKeyMode;
166 ::ll::TypedStorage<8, 8, ::RakNet::RakNetSocket2*> socket;
177 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakNetSocket2*>> sockets;
184 ::ll::TypedStorage<1, 1, bool volatile> endThreads;
185 ::ll::TypedStorage<1, 1, bool volatile> isMainLoopThreadActive;
186 ::ll::TypedStorage<1, 1, bool> occasionalPing;
187 ::ll::TypedStorage<4, 4, uint> maximumNumberOfPeers;
188 ::ll::TypedStorage<4, 4, uint> maximumIncomingConnections;
189 ::ll::TypedStorage<8, 288, ::RakNet::BitStream> offlinePingResponse;
190 ::ll::TypedStorage<1, 256, char[256]> incomingPassword;
191 ::ll::TypedStorage<1, 1, uchar> incomingPasswordLength;
192 ::ll::TypedStorage<8, 8, ::RakNet::RakPeer::RemoteSystemStruct*> remoteSystemList;
193 ::ll::TypedStorage<8, 8, ::RakNet::RakPeer::RemoteSystemStruct**> activeSystemList;
194 ::ll::TypedStorage<4, 4, uint> activeSystemListSize;
195 ::ll::TypedStorage<8, 8, ::RakNet::RemoteSystemIndex**> remoteSystemLookup;
196 ::ll::TypedStorage<8, 32, ::DataStructures::MemoryPool<::RakNet::RemoteSystemIndex>> remoteSystemIndexPool;
197 ::ll::TypedStorage<8, 8, ::std::unique_ptr<::RakNet::ShadowBanList>> shadowBanList;
198 ::ll::TypedStorage<8, 80, ::RakNet::SimpleMutex[2]> rakPeerMutexes;
199 ::ll::TypedStorage<1, 1, bool> updateCycleIsRunning;
200 ::ll::TypedStorage<4, 4, uint> bytesSentPerSecond;
201 ::ll::TypedStorage<4, 4, uint> bytesReceivedPerSecond;
202 ::ll::TypedStorage<4, 4, uint> validationInteger;
203 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> incomingQueueMutex;
204 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> banListMutex;
205 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakPeer::BanStruct*>> banList;
206 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::PluginInterface2*>> pluginListTS;
207 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::PluginInterface2*>> pluginListNTS;
208 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RakPeer::RequestedConnectionStruct*>>
209 requestedConnectionQueue;
210 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> requestedConnectionQueueMutex;
211 ::ll::TypedStorage<8, 136, ::DataStructures::ThreadsafeAllocatingQueue<::RakNet::RakPeer::BufferedCommandStruct>>
213 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RNS2RecvStruct*>> bufferedPacketsFreePool;
214 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> bufferedPacketsFreePoolMutex;
215 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::RNS2RecvStruct*>> bufferedPacketsQueue;
216 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> bufferedPacketsQueueMutex;
217 ::ll::TypedStorage<8, 136, ::DataStructures::ThreadsafeAllocatingQueue<::RakNet::RakPeer::SocketQueryOutput>>
219 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> securityExceptionMutex;
220 ::ll::TypedStorage<4, 4, int> defaultMTUSize;
221 ::ll::TypedStorage<1, 1, bool> trackFrequencyTable;
222 ::ll::TypedStorage<8, 16, ::DataStructures::List<::std::shared_ptr<::RakNet::RakNetSocket2>>> socketList;
223 ::ll::TypedStorage<8, 8, ::RakNet::BitStream*> replyFromTargetBS;
224 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> replyFromTargetPlayer;
225 ::ll::TypedStorage<1, 1, bool> replyFromTargetBroadcast;
226 ::ll::TypedStorage<4, 4, uint> defaultTimeoutTime;
227 ::ll::TypedStorage<8, 16, ::RakNet::RakNetGUID> myGuid;
228 ::ll::TypedStorage<4, 4, uint> maxOutgoingBPS;
229 ::ll::TypedStorage<1, 1, bool> allowConnectionResponseIPMigration;
230 ::ll::TypedStorage<8, 136, ::RakNet::SystemAddress> firstExternalID;
231 ::ll::TypedStorage<4, 4, int> splitMessageProgressInterval;
232 ::ll::TypedStorage<4, 4, uint> unreliableTimeout;
234 ::ll::TypedStorage<8, 16, ::DataStructures::List<::RakNet::RakString>> securityExceptionList;
235 ::ll::TypedStorage<8, 2856, ::RakNet::SystemAddress[21]> ipList;
236 ::ll::TypedStorage<8, 31592, ::RakNet::NetworkAdapter[11]> adapterList;
237 ::ll::TypedStorage<1, 1, bool> allowInternalRouting;
238 ::ll::TypedStorage<1, 1, bool> allowUnconnectedPings;
240 ::ll::TypedStorage<8, 8, void*> userUpdateThreadData;
241 ::ll::TypedStorage<8, 8, ::RakNet::SignaledEvent> quitAndDataEvents;
242 ::ll::TypedStorage<1, 1, bool> limitConnectionFrequencyFromTheSameIP;
243 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> packetAllocationPoolMutex;
244 ::ll::TypedStorage<8, 32, ::DataStructures::MemoryPool<::RakNet::Packet>> packetAllocationPool;
245 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> packetReturnMutex;
246 ::ll::TypedStorage<8, 24, ::DataStructures::Queue<::RakNet::Packet*>> packetReturnQueue;
247 ::ll::TypedStorage<8, 40, ::RakNet::SimpleMutex> sendReceiptSerialMutex;
248 ::ll::TypedStorage<4, 4, uint> sendReceiptSerial;
256 virtual void InitializeConfiguration(::std::unique_ptr<::RakNet::ShadowBanList> banList) ;
258 virtual ::RakNet::StartupResult Startup(
261 uint socketDescriptorCount,
265 virtual bool InitializeSecurity(
char const*,
char const*,
bool) ;
267 virtual void DisableSecurity() ;
269 virtual void AddToSecurityExceptionList(
char const* ip) ;
271 virtual void RemoveFromSecurityExceptionList(
char const* ip) ;
273 virtual bool IsInSecurityExceptionList(
char const* ip) ;
275 virtual void SetMaximumIncomingConnections(ushort numberAllowed) ;
277 virtual uint GetMaximumIncomingConnections() const ;
279 virtual ushort NumberOfConnections() const ;
281 virtual
void SetIncomingPassword(
char const* passwordData,
int passwordDataLength) ;
283 virtual
void GetIncomingPassword(
char* passwordData,
int* passwordDataLength) ;
285 virtual ::RakNet::ConnectionAttemptResult Connect(
288 char const* passwordData,
289 int passwordDataLength,
291 uint connectionSocketIndex,
292 uint sendConnectionAttemptCount,
293 uint timeBetweenSendConnectionAttemptsMS,
297 virtual ::RakNet::ConnectionAttemptResult ConnectWithSocket(
300 char const* passwordData,
301 int passwordDataLength,
304 uint sendConnectionAttemptCount,
305 uint timeBetweenSendConnectionAttemptsMS,
309 virtual
void Shutdown(
311 uchar orderingChannel,
312 ::PacketPriority disconnectionNotificationPriority
315 virtual
bool SetApplicationHandshakeCompleted(::RakNet::
AddressOrGUID systemIdentifier) ;
317 virtual
bool IsActive() const ;
319 virtual
bool GetConnectionList(::RakNet::
SystemAddress* remoteSystems, ushort* numberOfSystems) const ;
321 virtual uint GetNextSendReceipt() ;
323 virtual uint IncrementNextSendReceipt() ;
328 ::PacketPriority priority,
329 ::PacketReliability reliability,
330 char orderingChannel,
333 uint forceReceiptNumber
338 ::PacketPriority priority,
339 ::PacketReliability reliability,
340 char orderingChannel,
343 uint forceReceiptNumber
346 virtual
void SendLoopback(
char const* data,
int const length) ;
348 virtual uint SendList(
351 int const numParameters,
352 ::PacketPriority priority,
353 ::PacketReliability reliability,
354 char orderingChannel,
357 uint forceReceiptNumber
360 virtual ::RakNet::
Packet* Receive() ;
362 virtual
void DeallocatePacket(::RakNet::
Packet* packet) ;
364 virtual uint GetMaximumNumberOfPeers() const ;
366 virtual
void CloseConnection(
368 bool sendDisconnectionNotification,
369 uchar orderingChannel,
370 ::PacketPriority disconnectionNotificationPriority
373 virtual
void CancelConnectionAttempt(::RakNet::
SystemAddress const target) ;
375 virtual ::RakNet::ConnectionState GetConnectionState(::RakNet::
AddressOrGUID const systemIdentifier) ;
377 virtual
int GetIndexFromSystemAddress(::RakNet::
SystemAddress const systemAddress) const ;
379 virtual ::RakNet::
SystemAddress GetSystemAddressFromIndex(uint index) ;
381 virtual ::RakNet::
RakNetGUID GetGUIDFromIndex(uint index) ;
383 virtual
void GetSystemList(
385 ::DataStructures::List<::RakNet::
RakNetGUID>& guids
388 virtual
void AddToBanList(
char const* IP, uint milliseconds) ;
390 virtual
void RemoveFromBanList(
char const* IP) ;
392 virtual
void ClearBanList() ;
394 virtual
bool IsBanned(
char const* IP) ;
396 virtual
void SetLimitIPConnectionFrequency(
bool b) ;
403 bool onlyReplyOnAcceptingConnections,
404 uint connectionSocketIndex
407 virtual
void SendNatTraversalMessage(::RakNet::
SystemAddress const target) ;
409 virtual
int GetAveragePing(::RakNet::
AddressOrGUID const systemIdentifier) ;
411 virtual
int GetLastPing(::RakNet::
AddressOrGUID const systemIdentifier) const ;
413 virtual
int GetLowestPing(::RakNet::
AddressOrGUID const systemIdentifier) const ;
415 virtual
void SetOccasionalPing(
bool doPing) ;
417 virtual uint64 GetClockDifferential(::RakNet::
AddressOrGUID const systemIdentifier) ;
419 virtual
void SetOfflinePingResponse(
char const* data, uint const length) ;
421 virtual
void GetOfflinePingResponse(
char** data, uint* length) ;
426 virtual
void SetInternalID(::RakNet::
SystemAddress systemAddress,
int index) ;
430 virtual ::RakNet::
RakNetGUID const GetMyGUID() const ;
432 virtual
void resetMyGUID() ;
434 virtual ::RakNet::
SystemAddress GetMyBoundAddress(
int const socketIndex) ;
436 virtual
void SetAllowUnconnectedPings(
bool unconnectedPings) ;
438 virtual
bool GetAllowUnconnectedPings() const ;
445 virtual
bool GetClientPublicKeyFromSystemAddress(::RakNet::
SystemAddress const,
char*) const ;
447 virtual
void SetTimeoutTime(uint timeMS, ::RakNet::
SystemAddress const target) ;
449 virtual uint GetTimeoutTime(::RakNet::
SystemAddress const target) ;
451 virtual
int GetMTUSize(::RakNet::
SystemAddress const target) const ;
453 virtual uint GetNumberOfAdapters() ;
457 virtual uint GetNumberOfAddresses() ;
459 virtual
char const* GetLocalIP(uint index) ;
461 virtual
bool IsLocalIP(
char const* ip) ;
463 virtual
void AllowConnectionResponseIPMigration(
bool allow) ;
465 virtual
bool AdvertiseSystem(
470 uint connectionSocketIndex
473 virtual
void SetSplitMessageProgressInterval(
int interval) ;
475 virtual
int GetSplitMessageProgressInterval() const ;
477 virtual
void SetUnreliableTimeout(uint timeoutMS) ;
479 virtual
void SendTTL(
char const* host, ushort remotePort,
int ttl, uint connectionSocketIndex) ;
485 virtual
void PushBackPacket(::RakNet::
Packet* packet,
bool pushAtHead) ;
490 virtual ::RakNet::
Packet* AllocatePacket(uint dataSize) ;
494 virtual
void GetSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets) ;
496 virtual
void ReleaseSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets) ;
498 virtual
void WriteOutOfBandHeader(::RakNet::
BitStream* bitStream) ;
500 virtual
void SetUserUpdateThread(
502 void* _userUpdateThreadData
506 SetIncomingDatagramEventHandler(
bool (*_incomingDatagramEventHandler)(::RakNet::
RNS2RecvStruct*)) ;
508 virtual
void ApplyNetworkSimulator(
float, ushort, ushort) ;
510 virtual
void SetPerConnectionOutgoingBandwidthLimit(uint maxBitsPerSecond) ;
512 virtual
bool IsNetworkSimulatorActive() ;
517 virtual
bool GetStatistics(uint const index, ::RakNet::
RakNetStatistics* rns) ;
519 virtual
void GetStatisticsList(
521 ::DataStructures::List<::RakNet::
RakNetGUID>& guids,
525 virtual uint GetReceiveBufferSize() ;
527 virtual
bool RunUpdateCycle(::RakNet::
BitStream& updateBitStream) ;
529 virtual
bool SendOutOfBand(
534 uint connectionSocketIndex
537 virtual
void DeallocRNS2RecvStruct(::RakNet::
RNS2RecvStruct* s,
char const* file, uint line) ;
539 virtual ::RakNet::
RNS2RecvStruct* AllocRNS2RecvStruct(
char const*, uint) ;
547 MCAPI
void AddPacketToProducer(::RakNet::
Packet* p);
549 MCAPI ::RakNet::
Packet* AllocPacket(uint dataSize,
char const* file, uint line);
551 MCAPI
bool AllowIncomingConnections() const;
557 bool* thisIPConnectedRecently,
565 CallPluginCallbacks(::DataStructures::List<::RakNet::
PluginInterface2*>& pluginList, ::RakNet::
Packet* packet);
567 MCAPI
void ClearBufferedCommands();
569 MCAPI
void ClearBufferedPackets();
571 MCAPI
void ClearRequestedConnectionList();
573 MCAPI
void CloseConnectionInternal(
575 bool sendDisconnectionNotification,
576 bool performImmediate,
577 uchar orderingChannel,
578 ::PacketPriority disconnectionNotificationPriority
581 MCAPI
void DereferenceRemoteSystem(::RakNet::
SystemAddress const& sa);
583 MCAPI
void FillIPList();
585 MCAPI uint64 GetBestClockDifferential(::RakNet::
SystemAddress systemAddress) const;
587 MCAPI
int GetIndexFromSystemAddress(::RakNet::
SystemAddress systemAddress,
bool calledFromNetworkThread) const;
590 GetRemoteSystemFromGUID(::RakNet::
RakNetGUID guid,
bool onlyActive) const;
594 bool calledFromNetworkThread,
598 MCAPI uint GetRemoteSystemIndex(::RakNet::
SystemAddress const& sa) const;
600 MCAPI
bool IsLoopbackAddress(::RakNet::
AddressOrGUID const& systemIdentifier,
bool matchPort) const;
602 MCAPI
void NotifyAndFlagForShutdown(
604 bool performImmediate,
605 uchar orderingChannel,
606 ::PacketPriority disconnectionNotificationPriority
609 MCAPI
void OnConnectionRequest(::RakNet::RakPeer::
RemoteSystemStruct* remoteSystem, uint64 incomingTimestamp);
611 MCAPI
void ParseConnectionRequestPacket(
618 MCAPI
void PingInternal(::RakNet::
SystemAddress target,
bool performImmediate, ::PacketReliability reliability);
622 MCAPI
void ReferenceRemoteSystem(::RakNet::
SystemAddress const& sa, uint remoteSystemListIndex);
624 MCAPI
void RemoveFromActiveSystemList(::RakNet::
SystemAddress const& sa);
626 MCAPI
void SendBuffered(
628 uint numberOfBitsToSend,
629 ::PacketPriority priority,
630 ::PacketReliability reliability,
631 char orderingChannel,
638 MCAPI
void SendBufferedList(
642 ::PacketPriority priority,
643 ::PacketReliability reliability,
644 char orderingChannel,
651 MCAPI ::RakNet::ConnectionAttemptResult SendConnectionRequest(
654 char const* passwordData,
655 int passwordDataLength,
656 ::RakNet::
PublicKey* connectionSocketIndex,
658 uint sendConnectionAttemptCount,
659 uint timeBetweenSendConnectionAttemptsMS,
664 MCAPI ::RakNet::ConnectionAttemptResult SendConnectionRequest(
667 char const* passwordData,
668 int passwordDataLength,
669 ::RakNet::
PublicKey* connectionSocketIndex,
671 uint sendConnectionAttemptCount,
672 uint timeBetweenSendConnectionAttemptsMS,
678 MCAPI
bool SendImmediate(
680 uint numberOfBitsToSend,
681 ::PacketPriority priority,
682 ::PacketReliability reliability,
683 char orderingChannel,
686 bool useCallerDataAllocation,
691 MCAPI
void ShiftIncomingTimestamp(uchar* data, ::RakNet::
SystemAddress const& systemAddress) const;
709 MCAPI
void $InitializeConfiguration(::
std::unique_ptr<::RakNet::
ShadowBanList> banList);
711 MCAPI ::RakNet::StartupResult $Startup(
714 uint socketDescriptorCount,
718 MCFOLD
bool $InitializeSecurity(
char const*,
char const*,
bool);
720 MCFOLD
void $DisableSecurity();
722 MCAPI
void $AddToSecurityExceptionList(
char const* ip);
724 MCAPI
void $RemoveFromSecurityExceptionList(
char const* ip);
726 MCAPI
bool $IsInSecurityExceptionList(
char const* ip);
728 MCAPI
void $SetMaximumIncomingConnections(ushort numberAllowed);
730 MCFOLD uint $GetMaximumIncomingConnections() const;
732 MCAPI ushort $NumberOfConnections() const;
734 MCAPI
void $SetIncomingPassword(
char const* passwordData,
int passwordDataLength);
736 MCAPI
void $GetIncomingPassword(
char* passwordData,
int* passwordDataLength);
738 MCAPI ::RakNet::ConnectionAttemptResult $Connect(
741 char const* passwordData,
742 int passwordDataLength,
744 uint connectionSocketIndex,
745 uint sendConnectionAttemptCount,
746 uint timeBetweenSendConnectionAttemptsMS,
750 MCAPI ::RakNet::ConnectionAttemptResult $ConnectWithSocket(
753 char const* passwordData,
754 int passwordDataLength,
757 uint sendConnectionAttemptCount,
758 uint timeBetweenSendConnectionAttemptsMS,
762 MCAPI
void $Shutdown(uint blockDuration, uchar orderingChannel, ::PacketPriority disconnectionNotificationPriority);
764 MCAPI
bool $SetApplicationHandshakeCompleted(::RakNet::
AddressOrGUID systemIdentifier);
766 MCAPI
bool $IsActive() const;
768 MCAPI
bool $GetConnectionList(::RakNet::
SystemAddress* remoteSystems, ushort* numberOfSystems) const;
770 MCAPI uint $GetNextSendReceipt();
772 MCAPI uint $IncrementNextSendReceipt();
777 ::PacketPriority priority,
778 ::PacketReliability reliability,
779 char orderingChannel,
782 uint forceReceiptNumber
787 ::PacketPriority priority,
788 ::PacketReliability reliability,
789 char orderingChannel,
792 uint forceReceiptNumber
795 MCAPI
void $SendLoopback(
char const* data,
int const length);
797 MCAPI uint $SendList(
800 int const numParameters,
801 ::PacketPriority priority,
802 ::PacketReliability reliability,
803 char orderingChannel,
806 uint forceReceiptNumber
809 MCAPI ::RakNet::
Packet* $Receive();
811 MCAPI
void $DeallocatePacket(::RakNet::
Packet* packet);
813 MCFOLD uint $GetMaximumNumberOfPeers() const;
815 MCAPI
void $CloseConnection(
817 bool sendDisconnectionNotification,
818 uchar orderingChannel,
819 ::PacketPriority disconnectionNotificationPriority
822 MCAPI
void $CancelConnectionAttempt(::RakNet::
SystemAddress const target);
824 MCAPI ::RakNet::ConnectionState $GetConnectionState(::RakNet::
AddressOrGUID const systemIdentifier);
826 MCAPI
int $GetIndexFromSystemAddress(::RakNet::
SystemAddress const systemAddress) const;
828 MCAPI ::RakNet::
SystemAddress $GetSystemAddressFromIndex(uint index);
830 MCAPI ::RakNet::
RakNetGUID $GetGUIDFromIndex(uint index);
832 MCAPI
void $GetSystemList(
834 ::DataStructures::List<::RakNet::
RakNetGUID>& guids
837 MCAPI
void $AddToBanList(
char const* IP, uint milliseconds);
839 MCAPI
void $RemoveFromBanList(
char const* IP);
841 MCAPI
void $ClearBanList();
843 MCAPI
bool $IsBanned(
char const* IP);
845 MCAPI
void $SetLimitIPConnectionFrequency(
bool b);
850 $Ping(
char const* host, ushort remotePort,
bool onlyReplyOnAcceptingConnections, uint connectionSocketIndex);
852 MCAPI
void $SendNatTraversalMessage(::RakNet::
SystemAddress const target);
854 MCAPI
int $GetAveragePing(::RakNet::
AddressOrGUID const systemIdentifier);
856 MCAPI
int $GetLastPing(::RakNet::
AddressOrGUID const systemIdentifier) const;
858 MCAPI
int $GetLowestPing(::RakNet::
AddressOrGUID const systemIdentifier) const;
860 MCAPI
void $SetOccasionalPing(
bool doPing);
862 MCAPI uint64 $GetClockDifferential(::RakNet::
AddressOrGUID const systemIdentifier);
864 MCAPI
void $SetOfflinePingResponse(
char const* data, uint const length);
866 MCAPI
void $GetOfflinePingResponse(
char** data, uint* length);
870 MCAPI
void $SetInternalID(::RakNet::
SystemAddress systemAddress,
int index);
874 MCAPI ::RakNet::
RakNetGUID const $GetMyGUID() const;
876 MCAPI
void $resetMyGUID();
878 MCAPI ::RakNet::
SystemAddress $GetMyBoundAddress(
int const socketIndex);
880 MCAPI
void $SetAllowUnconnectedPings(
bool unconnectedPings);
882 MCAPI
bool $GetAllowUnconnectedPings() const;
888 MCFOLD
bool $GetClientPublicKeyFromSystemAddress(::RakNet::
SystemAddress const,
char*) const;
890 MCAPI
void $SetTimeoutTime(uint timeMS, ::RakNet::
SystemAddress const target);
892 MCAPI uint $GetTimeoutTime(::RakNet::
SystemAddress const target);
894 MCAPI
int $GetMTUSize(::RakNet::
SystemAddress const target) const;
896 MCAPI uint $GetNumberOfAdapters();
900 MCAPI uint $GetNumberOfAddresses();
902 MCAPI
char const* $GetLocalIP(uint index);
904 MCAPI
bool $IsLocalIP(
char const* ip);
906 MCAPI
void $AllowConnectionResponseIPMigration(
bool allow);
909 $AdvertiseSystem(
char const* host, ushort remotePort,
char const* data,
int dataLength, uint connectionSocketIndex);
911 MCAPI
void $SetSplitMessageProgressInterval(
int interval);
913 MCAPI
int $GetSplitMessageProgressInterval() const;
915 MCAPI
void $SetUnreliableTimeout(uint timeoutMS);
917 MCAPI
void $SendTTL(
char const* host, ushort remotePort,
int ttl, uint connectionSocketIndex);
923 MCAPI
void $PushBackPacket(::RakNet::
Packet* packet,
bool pushAtHead);
927 MCAPI ::RakNet::
Packet* $AllocatePacket(uint dataSize);
931 MCAPI
void $GetSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets);
933 MCAPI
void $ReleaseSockets(::DataStructures::List<::RakNet::
RakNetSocket2*>& sockets);
935 MCAPI
void $WriteOutOfBandHeader(::RakNet::
BitStream* bitStream);
938 $SetUserUpdateThread(
void (*_userUpdateThreadPtr)(::RakNet::
RakPeerInterface*,
void*),
void* _userUpdateThreadData);
940 MCAPI
void $SetIncomingDatagramEventHandler(
bool (*_incomingDatagramEventHandler)(::RakNet::
RNS2RecvStruct*));
942 MCFOLD
void $ApplyNetworkSimulator(
float, ushort, ushort);
944 MCAPI
void $SetPerConnectionOutgoingBandwidthLimit(uint maxBitsPerSecond);
946 MCFOLD
bool $IsNetworkSimulatorActive();
951 MCAPI
bool $GetStatistics(uint const index, ::RakNet::
RakNetStatistics* rns);
953 MCAPI
void $GetStatisticsList(
955 ::DataStructures::List<::RakNet::
RakNetGUID>& guids,
959 MCAPI uint $GetReceiveBufferSize();
961 MCAPI
bool $RunUpdateCycle(::RakNet::
BitStream& updateBitStream);
964 $SendOutOfBand(
char const* host, ushort remotePort,
char const* data, uint dataLength, uint connectionSocketIndex);
966 MCAPI
void $DeallocRNS2RecvStruct(::RakNet::
RNS2RecvStruct* s,
char const* file, uint line);
968 MCAPI ::RakNet::
RNS2RecvStruct* $AllocRNS2RecvStruct(
char const*, uint);