RakNet::ReliabilityLayer Class Reference

Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence. More...

#include <ReliabilityLayer.h>

List of all members.

Public Member Functions

void Reset (bool resetVariables, int MTUSize, bool _useSecurity)
 Resets the layer for reuse.
void SetTimeoutTime (RakNet::TimeMS time)
RakNet::TimeMS GetTimeoutTime (void)
bool HandleSocketReceiveFromConnectedPlayer (const char *buffer, unsigned int length, SystemAddress &systemAddress, DataStructures::List< PluginInterface2 * > &messageHandlerList, int MTUSize, SOCKET s, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, CCTimeType timeRead, BitStream &updateBitStream)
BitSize_t Receive (unsigned char **data)
bool Send (char *data, BitSize_t numberOfBitsToSend, PacketPriority priority, PacketReliability reliability, unsigned char orderingChannel, bool makeDataCopy, int MTUSize, CCTimeType currentTime, uint32_t receipt)
void Update (SOCKET s, SystemAddress &systemAddress, int MTUSize, CCTimeType time, unsigned bitsPerSecondLimit, DataStructures::List< PluginInterface2 * > &messageHandlerList, RakNetRandom *rnr, unsigned short remotePortRakNetWasStartedOn_PS3, unsigned int extraSocketOptions, BitStream &updateBitStream)
bool IsDeadConnection (void) const
void KillConnection (void)
 Causes IsDeadConnection to return true.
RakNetStatisticsGetStatistics (RakNetStatistics *rns)
bool IsOutgoingDataWaiting (void)
 Are we waiting for any data to be sent out or be processed by the player?
bool IsNetworkSimulatorActive (void)
bool AckTimeout (RakNet::Time curTime)
 Has a lot of time passed since the last ack.

Detailed Description

Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence.

Member Function Documentation

RakNetStatistics* RakNet::ReliabilityLayer::GetStatistics ( RakNetStatistics rns  ) 

Get Statistics

A pointer to a static struct, filled out with current statistical information.

RakNet::TimeMS RakNet::ReliabilityLayer::GetTimeoutTime ( void   ) 

Returns the value passed to SetTimeoutTime. or the default if it was never called

[out] the value passed to SetTimeoutTime

bool RakNet::ReliabilityLayer::HandleSocketReceiveFromConnectedPlayer ( const char *  buffer,
unsigned int  length,
SystemAddress systemAddress,
DataStructures::List< PluginInterface2 * > &  messageHandlerList,
int  MTUSize,
RakNetRandom *  rnr,
unsigned short  remotePortRakNetWasStartedOn_PS3,
unsigned int  extraSocketOptions,
CCTimeType  timeRead,
BitStream updateBitStream 

Packets are read directly from the socket layer and skip the reliability layer because unconnected players do not use the reliability layer This function takes packet data after a player has been confirmed as connected.

[in] buffer The socket data
[in] length The length of the socket data
[in] systemAddress The player that this data is from
[in] messageHandlerList A list of registered plugins
[in] MTUSize maximum datagram size
Return values:
true Success
false Modified packet

bool RakNet::ReliabilityLayer::IsDeadConnection ( void   )  const

Were you ever unable to deliver a packet despite retries?

true means the connection has been lost. Otherwise not.

bool RakNet::ReliabilityLayer::IsNetworkSimulatorActive ( void   ) 

Returns if you previously called ApplyNetworkSimulator

If you previously called ApplyNetworkSimulator

BitSize_t RakNet::ReliabilityLayer::Receive ( unsigned char **  data  ) 

This allocates bytes and writes a user-level message to those bytes.

[out] data The message
Returns number of BITS put into the buffer

bool RakNet::ReliabilityLayer::Send ( char *  data,
BitSize_t  numberOfBitsToSend,
PacketPriority  priority,
PacketReliability  reliability,
unsigned char  orderingChannel,
bool  makeDataCopy,
int  MTUSize,
CCTimeType  currentTime,
uint32_t  receipt 

Puts data on the send queue

[in] data The data to send
[in] numberOfBitsToSend The length of data in bits
[in] priority The priority level for the send
[in] reliability The reliability type for the send
[in] orderingChannel 0 to 31. Specifies what channel to use, for relational ordering and sequencing of packets.
[in] makeDataCopy If true data will be copied. Otherwise, only a pointer will be stored.
[in] MTUSize maximum datagram size
[in] currentTime Current time, as per RakNet::GetTimeMS()
[in] receipt This number will be returned back with ID_SND_RECEIPT_ACKED or ID_SND_RECEIPT_LOSS and is only returned with the reliability types that contain RECEIPT in the name
True or false for success or failure.

void RakNet::ReliabilityLayer::SetTimeoutTime ( RakNet::TimeMS  time  ) 

Set the time, in MS, to use before considering ourselves disconnected after not being able to deliver a reliable packet Default time is 10,000 or 10 seconds in release and 30,000 or 30 seconds in debug.

[in] time Time, in MS

void RakNet::ReliabilityLayer::Update ( SOCKET  s,
SystemAddress systemAddress,
int  MTUSize,
CCTimeType  time,
unsigned  bitsPerSecondLimit,
DataStructures::List< PluginInterface2 * > &  messageHandlerList,
RakNetRandom *  rnr,
unsigned short  remotePortRakNetWasStartedOn_PS3,
unsigned int  extraSocketOptions,
BitStream updateBitStream 

Call once per game cycle. Handles internal lists and actually does the send.

[in] s the communication end point
[in] systemAddress The Unique Player Identifier who shouldhave sent some packets
[in] MTUSize maximum datagram size
[in] time current system time
[in] maxBitsPerSecond if non-zero, enforces that outgoing bandwidth does not exceed this amount
[in] messageHandlerList A list of registered plugins

The documentation for this class was generated from the following file:

Generated on Wed Feb 1 13:33:48 2012 for RakNet by  doxygen