# RakNet Class List

Here are the classes, structs, unions and interfaces with brief descriptions:

_JitterBufferPacket |
LobbyDBSpec::AddAccountNote_Data | Adds an entry to the accountNotes table for an existing user
LobbyDBSpec::AddFriend_Data | Adds a userId / friendId to the friends table
TitleValidationDBSpec::AddTitle_Data | Adds a title to the database of titles. This can be used to look up titleIds given a title password
LobbyDBSpec::AddToIgnoreList_Data | Adds to the ignoreList table for a particular userId / userHandle
AutopatcherPostgreRepository |
AutopatcherRepositoryInterface | An interface used by AutopatcherServer to get the data necessary to run an autopatcher. This is up to you to implement for custom repository solutions
RakNet::AutoRPC |
DataStructures::AVLBalancedBinarySearchTree< BinarySearchTreeType > | An AVLBalancedBinarySearchTree is a binary tree that is always balanced
DataStructures::BinarySearchTree< BinarySearchTreeType > | A binary search tree and an AVL balanced binary search tree
RakNet::BitStream |
DataStructures::BPlusTree< KeyType, DataType, order > |
CheckSum | Generates and validates checksums
DataStructures::CircularLinkedList< CircularLinkedListType > | (Circular) Linked List ADT (Doubly Linked Pointer to Node Style) -
CommandParserInterface | The interface used by command parsers
RakNet::Connection_RM2 | This class represents a connection between two instances of ReplicaManager2 Represents a connection. Allocated by user supplied factory interface Connection_RM2Factory Implicitly created as needed Generally you will want to implement at a minimum the Construct() function, used as a factory function to create your game objects
RakNet::Connection_RM2Factory | Implement this factory class to return instances of your Connection_RM2 derived object. This is used as a class factory and exposes functionality related to the connection and the system
ConnectionGraph | A connection graph. Each peer will know about all other peers
ConnectionGraph::SystemAddressAndGroupId | A node in the connection graph

ConsoleServer

The main entry point for the server portion of your remote console application support. ConsoleServer takes one TransportInterface and one or more CommandParserInterface (s) The TransportInterface will be used to send data between the server and the client. The connecting client must support the protocol used by your derivation of TransportInterface . TelnetTransport and RakNetTransport are two such derivations . When a command is sent by a remote console, it will be processed by your implementations of CommandParserInterface

LobbyDBSpec::CreateUser_Data | Adds a user to the users table
DatabaseCellUpdate | The value to write to a cell in a remote database
DataBlockEncryptor | Encrypts and decrypts data blocks
DataCompressor | Does compression on a block of data. Not very good compression, but it's small and fast so is something you can compute at runtime
DecState |
LobbyDBSpec::DeleteEmail_Data | Deletes an email from either the incomingEmails or sentEmails table
DirectoryDeltaTransfer | Simple class to send changes between directories. In essence, a simple autopatcher that can be used for transmitting levels, skins, etc
drft_lookup |
EmailSender | Rudimentary class to send email from code
EncState |
FileListTransfer | A plugin to provide a simple way to compress and incrementally send the files in the FileList structure. Similar to the DirectoryDeltaTransfer plugin, except that it doesn't send deltas based on pre-existing files or actually write the files to disk
FileListTransferCBInterface | Used by FileListTransfer plugin as a callback for when we get a file. You get the last file when fileIndex==setCount
FullyConnectedMesh |
RakNet::FunctionThread |
RakNet::Functor |
LobbyDBSpec::GetAccountNotes_Data | Gets all account notes for an existing user
LobbyDBSpec::GetEmails_Data | Gets all emails in the emails table for a particular user
LobbyDBSpec::GetFriends_Data | Gets the friends table for a userId or userHandle
RankingServerDBSpec::GetHistoryForParticipant_Data | Given a particular player and game, get a match history
GetHistoryForParticipant_PostgreSQLImpl | Given a particular player and game, get a match history
LobbyDBSpec::GetIgnoreList_Data | Gets the ignoreList table for a particular userId / userHandle
RankingServerDBSpec::GetRatingForParticipant_Data | Given a particular player and game, get that player's rating from the database
GetRatingForParticipant_PostgreSQLImpl | Given a particular player and game, get that player's rating from the database
RankingServerDBSpec::GetRatingForParticipants_Data | Given a particular game, get ratings for all players
GetRatingForParticipants_PostgreSQLImpl | Given a particular game, get ratings for all players
TitleValidationDBSpec::GetTitles_Data | Download all titles added with AddTitle_Data
RankingServerDBSpec::GetTrustedIPList_Data |
LobbyDBSpec::GetUser_Data | Get a user from the users table, using userId or userHandle for the lookup
HuffmanEncodingTree | This generates special cases of the huffman encoding tree using 8 bit keys with the additional condition that unused combinations of 8 bits are treated as a frequency of 1
HuffmanEncodingTreeFactory | Creates instances of the class HuffmanEncodingTree
InternalPacket |
JitterBuffer_ |
LightweightDatabaseClient | The client interface to the simple database included with RakNet, useful for a server browser or a lobby server
LightweightDatabaseServer | A simple flat database included with RakNet, useful for a server browser or a lobby server. A flat database interface. Adds the ability to track IPs of row updaters and passwords for table read and write operations, Best used for data in which queries which do not need to be updated in real-time
DataStructures::List< list_type > | Array based implementation of a list
RakNet::LobbyClientInterface | The client-side interface to the lobby system The Lobby client implements functionality commonly found in game lobbies. It is the counterpart to the LobbyServer class. This interface is system independent, but for PC functionality see LobbyClientPC For full documentation on the PC version, see LobbyClientPC.h
RakNet::LobbyClientPC | PC specific client side code to the lobby system Attach class as a plugin to RakNet as usual. Connect to the lobby server (as usual). Then use provided functions for specific functionality
LobbyDB_PostgreSQL |
LobbyDBCBInterface | If you want to forward Functor::HandleResult() the output to a callback (which is what it does by default), you can use this
RakNet::LobbyServer |
RakNet::LobbyServerPostgreSQL |
LogCommandParser | Adds the ability to send logging output to a remote console
LogCommandParser::SystemAddressAndChannel | One of these structures is created per player
ltp_params |

DataStructures::Map< key_type, data_type, key_comparison_func >

Note:
  IMPORTANT! If you use defaultMapKeyComparison then call IMPLEMENT_DEFAULT_COMPARISON or you will get an unresolved external linker error

MemoryCompressor | Compress one or more blocks of data
DataStructures::MemoryPool< MemoryBlockType > |

MessageFilter

Assigns systems to FilterSets. Each FilterSet limits what kinds of messages are allowed. The MessageFilter plugin is used for security where you limit what systems can send what kind of messages. You implicitly define FilterSets, and add allowed message IDs and RPC calls to these FilterSets. You then add systems to these filters, such that those systems are limited to sending what the filters allows. You can automatically assign systems to a filter. You can automatically kick and possibly ban users that stay in a filter too long, or send the wrong message. Each system is a member of either zero or one filters. Add this plugin before any plugin you wish to filter (most likely just add this plugin before any other)

RankingServerDBSpec::ModifyTrustedIPList_Data |
ModifyTrustedIPList_PostgreSQLImpl | Modify the list of IPs allowed to submit matches
NatPunchthrough | Implements the NAT punch through technique, allowing two systems to connect to each other that are both behind NATs
NetworkIDManager |
NetworkIDObject | Unique shared ids for each object instance

DataStructures::OrderedList< key_type, data_type, default_comparison_function >

Note:
  IMPORTANT! If you use defaultOrderedListComparison then call IMPLEMENT_DEFAULT_COMPARISON or you will get an unresolved external linker error

Packet | This represents a user message from another system
PacketConsoleLogger | Packetlogger that logs to a remote command console
PacketFileLogger | Packetlogger that outputs to a file
PacketLogger | Writes incoming and outgoing messages to the screen. This will write all incoming and outgoing messages to the console window, or to a file if you override it and give it this functionality
DataStructures::Page< KeyType, DataType, order > |
RankingServerDBSpec::PairedKeyDbId |

PluginInterface

PluginInterface provides a mechanism to add functionality in a modular way. MessageHandlers should derive from PluginInterface and be attached to RakPeer using the function AttachPlugin On a user call to Receive, OnReceive is called for every PluginInterface, which can then take action based on the message passed to it. This is used to transparently add game-independent functional modules, similar to browser plugins

DataStructures::Queue< queue_type > | A queue implemented as an array with a read and write index
DataStructures::QueueLinkedList< QueueType > | A queue implemented using a linked list. Rarely used
RakNetCommandParser | This allows a console client to call most of the functions in RakPeer
RakNetStatistics | Network Statisics Usage
RakNetTransport | Use RakNetTransport if you need a secure connection between the client and the console server. RakNetTransport automatically initializes security for the system. Use the project CommandConsoleClient to connect To the ConsoleServer if you use RakNetTransport
RakNetTransportCommandParser | RakNetTransport has its own command parser to enable remote users to change the command console's password
RakPeer | The main interface for network communications
RakPeer::MemoryBlock | Automatic Variable Synchronization Mechanism automatic variable synchronization takes a primary and secondary identifier The unique primary identifier is the index into the automaticVariableSynchronizationList The unique secondary identifier (UNASSIGNED_NETWORK_ID for none) is in an unsorted list of memory blocks
RakPeerInterface | The main interface for network communications
RakNet::RakString | String class Has the following improvements over std::string Reference counting: Suitable to store in lists Varidic assignment operator Doesn't cause linker errors
RankingServer_PostgreSQL |
RankingServerCBInterface | If you want to forward Functor::HandleResult() the output to a callback (which is what it does by default), you can use this
ReadyEvent |
ReceiveConstructionInterface |
ReceiveDownloadCompleteInterface |
RefCountedObj | World's simplest class :)
ReliabilityLayer | Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence
RemoteClient | Stores information about a remote client. In this case, only the socket used by that client
LobbyDBSpec::RemoveFriend_Data | Removes a userId / friendId from the friends table
LobbyDBSpec::RemoveFromIgnoreList_Data | Removes from the ignoreList table for a particular userId / userHandle
Replica | The interface to derive your game's networked classes from
RakNet::Replica2 | Base class for game objects that use the ReplicaManager2 system All game objects that want to use the ReplicaManager2 functionality must inherit from Replica2. Generally you will want to implement at a minimum Serialize(), Deserialize(), and SerializeConstruction()
ReplicaManager | A management system for your game objects and players to make serialization, scoping, and object creation and destruction easier
RakNet::ReplicaManager2 | A management system for your game objects and players to make serialization, scoping, and object creation and destruction easier
Router | Used to route messages between peers
RouterInterface | On failed directed sends, RakNet can call an alternative send function to use
RPCParameters |
SBDecState |
SBEncState |
SendDownloadCompleteInterface |
LobbyDBSpec::SendEmail_Data | Adds an email to the emails table. Added once for the user with inbox=false, n times for n recipients with inbox=true
RakNet::SerializationContext | Contextual information about serialization, passed to some functions in Replica2
SimpleMutex | An easy to use mutex
DataStructures::SingleProducerConsumer< SingleProducerConsumerType > | A single producer consumer implementation without critical sections
SocketDescriptor | Describes the local socket to use for RakPeer::Startup
SpeexBits |
SpeexCallback |
SpeexEchoState |
SpeexEchoState_ |
SpeexHeader |
SpeexMode |
SpeexNBMode |
SpeexPreprocessState_ |
SpeexSBMode |
SpeexStereoState |
SpeexSubmode |
split_cb_params |
StrAndBool | The string plus a bool telling us if this string was copied or not
StringCompressor | Writes and reads strings to and from bitstreams
RakNet::StringTable | Writes a string index, instead of the whole string
RankingServerDBSpec::SubmitMatch_Data |
SubmitMatch_PostgreSQLImpl |
SystemAddress | Unique identifier for a system. Corresponds to a network address

DataStructures::Table

Holds a set of columns, a set of rows, and rows times columns cells. The table data structure is useful if you want to store a set of structures and perform queries on those structures This is a relatively simple and fast implementation of the types of tables commonly used in databases See TableSerializer to serialize data members of the table See LightweightDatabaseClient and LightweightDatabaseServer to transmit the table over the network

DataStructures::Table::Cell | Holds the actual data in the table
DataStructures::Table::ColumnDescriptor |
DataStructures::Table::Row | Stores the list of cells for this row, and a special flag used for internal sorting
TelnetTransport | Use TelnetTransport to easily allow windows telnet to connect to your ConsoleServer To run Windows telnet, go to your start menu, click run, and in the edit box type "telnet <IP>" where <IP> is the ip address of your ConsoleServer (most likely the same IP as your game). This implementation always echos commands
ThreadPool< InputType, OutputType > |
ThreadsafePacketLogger | Same as PacketLogger, but writes output in the user thread
TimingBuffer |
TitleValidation_PostgreSQL |
TitleValidationDBCBInterface | If you want to forward Functor::HandleResult() the output to a callback (which is what it does by default), you can use this
TransportInterface | Defines an interface that is used to send and receive null-terminated strings. In practice this is only used by the CommandParser system for for servers
LobbyDBSpec::UpdateEmailStatus_Data | Updates the mark flags on an email
LobbyDBSpec::UpdateUser_Data | Overwrites an existing user in the users table
TitleValidationDBSpec::UpdateUserKey_Data |
VBRState |