38 virtual void InitializeConfiguration(::std::unique_ptr<::RakNet::ShadowBanList> banList) = 0;
40 virtual ::RakNet::StartupResult Startup(
43 uint socketDescriptorCount,
47 virtual bool InitializeSecurity(
char const* public_key,
char const* private_key,
bool bRequireClientKey) = 0;
49 virtual void DisableSecurity() = 0;
51 virtual void AddToSecurityExceptionList(
char const* ip) = 0;
53 virtual void RemoveFromSecurityExceptionList(
char const* ip) = 0;
55 virtual bool IsInSecurityExceptionList(
char const* ip) = 0;
57 virtual void SetMaximumIncomingConnections(ushort numberAllowed) = 0;
59 virtual uint GetMaximumIncomingConnections()
const = 0;
61 virtual ushort NumberOfConnections()
const = 0;
63 virtual void SetIncomingPassword(
char const* passwordData,
int passwordDataLength) = 0;
65 virtual void GetIncomingPassword(
char* passwordData,
int* passwordDataLength) = 0;
67 virtual ::RakNet::ConnectionAttemptResult Connect(
70 char const* passwordData,
71 int passwordDataLength,
73 uint connectionSocketIndex,
74 uint sendConnectionAttemptCount,
75 uint timeBetweenSendConnectionAttemptsMS,
79 virtual ::RakNet::ConnectionAttemptResult ConnectWithSocket(
82 char const* passwordData,
83 int passwordDataLength,
86 uint sendConnectionAttemptCount,
87 uint timeBetweenSendConnectionAttemptsMS,
92 Shutdown(uint blockDuration, uchar orderingChannel, ::PacketPriority disconnectionNotificationPriority) = 0;
96 virtual bool IsActive()
const = 0;
100 virtual uint GetNextSendReceipt() = 0;
102 virtual uint IncrementNextSendReceipt() = 0;
107 ::PacketPriority priority,
108 ::PacketReliability reliability,
109 char orderingChannel,
112 uint forceReceiptNumber
117 ::PacketPriority priority,
118 ::PacketReliability reliability,
119 char orderingChannel,
122 uint forceReceiptNumber
125 virtual void SendLoopback(
char const* data,
int const length) = 0;
127 virtual uint SendList(
130 int const numParameters,
131 ::PacketPriority priority,
132 ::PacketReliability reliability,
133 char orderingChannel,
136 uint forceReceiptNumber
139 virtual ::RakNet::Packet* Receive() = 0;
143 virtual uint GetMaximumNumberOfPeers()
const = 0;
145 virtual void CloseConnection(
147 bool sendDisconnectionNotification,
148 uchar orderingChannel,
149 ::PacketPriority disconnectionNotificationPriority
158 virtual ::RakNet::SystemAddress GetSystemAddressFromIndex(uint index) = 0;
160 virtual ::RakNet::RakNetGUID GetGUIDFromIndex(uint index) = 0;
162 virtual void GetSystemList(
167 virtual void AddToBanList(
char const* IP, uint milliseconds) = 0;
169 virtual void RemoveFromBanList(
char const* IP) = 0;
171 virtual void ClearBanList() = 0;
173 virtual bool IsBanned(
char const* IP) = 0;
175 virtual void SetLimitIPConnectionFrequency(
bool b) = 0;
180 Ping(
char const* host, ushort remotePort,
bool onlyReplyOnAcceptingConnections, uint connectionSocketIndex) = 0;
190 virtual void SetOccasionalPing(
bool doPing) = 0;
194 virtual void SetAllowUnconnectedPings(
bool unconnectedPings) = 0;
196 virtual bool GetAllowUnconnectedPings()
const = 0;
198 virtual void SetOfflinePingResponse(
char const* data, uint
const length) = 0;
200 virtual void GetOfflinePingResponse(
char** data, uint* length) = 0;
202 virtual ::RakNet::SystemAddress
209 virtual ::RakNet::RakNetGUID
const GetMyGUID()
const = 0;
211 virtual void resetMyGUID() = 0;
213 virtual ::RakNet::SystemAddress GetMyBoundAddress(
int const socketIndex) = 0;
217 virtual ::RakNet::SystemAddress GetSystemAddressFromGuid(
::RakNet::RakNetGUID const input)
const = 0;
228 virtual uint GetNumberOfAdapters() = 0;
230 virtual ::RakNet::NetworkAdapter& GetLocalAdapter(uint index) = 0;
232 virtual uint GetNumberOfAddresses() = 0;
234 virtual char const* GetLocalIP(uint index) = 0;
236 virtual bool IsLocalIP(
char const* ip) = 0;
238 virtual void AllowConnectionResponseIPMigration(
bool allow) = 0;
240 virtual bool AdvertiseSystem(
245 uint connectionSocketIndex
248 virtual void SetSplitMessageProgressInterval(
int interval) = 0;
250 virtual int GetSplitMessageProgressInterval()
const = 0;
252 virtual void SetUnreliableTimeout(uint timeoutMS) = 0;
254 virtual void SendTTL(
char const* host, ushort remotePort,
int ttl, uint connectionSocketIndex) = 0;
264 virtual ::RakNet::Packet* AllocatePacket(uint dataSize) = 0;
274 virtual void SetUserUpdateThread(
276 void* _userUpdateThreadData
281 virtual void ApplyNetworkSimulator(
float packetloss, ushort minExtraPing, ushort extraPingVariance) = 0;
283 virtual void SetPerConnectionOutgoingBandwidthLimit(uint maxBitsPerSecond) = 0;
285 virtual bool IsNetworkSimulatorActive() = 0;
287 virtual ::RakNet::RakNetStatistics*
292 virtual void GetStatisticsList(
298 virtual uint GetReceiveBufferSize() = 0;
302 virtual bool SendOutOfBand(
307 uint connectionSocketIndex
314 MCAPI
static uint64 Get64BitUniqueRandomNumber();