# Source Directory Reference

## Files
file | _FindFirst.h
file | AsynchronousFileIO.h
| [Internal] deprecated, used for windows back when I supported IO completion ports.

file | AutopatcherPatchContext.h
file | AutopatcherRepositoryInterface.h
| An interface used by AutopatcherServer to get the data necessary to run an autopatcher.

file | AutoRPC.h
| Automatically serializing and deserializing RPC system. More advanced RPC, but possibly not cross-platform.

file | BigInt.h
file | BitStream.h
| This class allows you to write and read native types as a string of bits.

file | BitStream_NoTemplate.h
| This class allows you to write and read native types as a string of bits. BitStream is used extensively throughout RakNet and is designed to be used by users as well.

file | CCRakNetSlidingWindow.h
file | CCRakNetUDT.h
file | CheckSum.h
file | ClientContextStruct.h
| [Internal] deprecated, back from when I supported IO Completion ports.

file | CommandParserInterface.h
| Contains CommandParserInterface , from which you derive custom command parsers.

file | ConnectionGraph.h
| Connection graph plugin. This maintains a graph of connections for the entire network, so every peer knows about every other peer.

file | ConnectionGraph2.h
| Connection graph plugin, version 2. Tells new systems about existing and new connections.

file | ConsoleServer.h
| Contains ConsoleServer , used to plugin to your game to accept remote console-based connections.

file | DataBlockEncryptor.h
file | DataCompressor.h
| DataCompressor does compression on a block of data.

file | DirectoryDeltaTransfer.h
| Simple class to send changes between directories.

file | DS_BinarySearchTree.h
file | DS_BPlusTree.h
file | DS_BytePool.h
file | DS_ByteQueue.h
file | DS_Heap.h
file | DS_HuffmanEncodingTree.h
| [Internal] Generates a huffman encoding tree, used for string and global compression.

file | DS_HuffmanEncodingTreeFactory.h
file | DS_HuffmanEncodingTreeNode.h
| [Internal] A single node in the Huffman Encoding Tree.

file | DS_LinkedList.h
file | DS_List.h
file | DS_Map.h
file | DS_MemoryPool.h
file | DS_Multilist.h
file | DS_OrderedChannelHeap.h
file | DS_OrderedList.h
file | DS_Queue.h
file | DS_QueueLinkedList.h
file | DS_RangeList.h
file | DS_StringKeyedHash.h
file | DS_Table.h
file | DS_ThreadsafeAllocatingQueue.h
file | DS_Tree.h
file | DS_WeightedGraph.h
file | EmailSender.h
| Rudimentary class to send email from code. Don't expect anything fancy.

file | EpochTimeToString.h
file | Export.h
file | ExtendedOverlappedPool.h
| [deprecated] This was used for IO completion ports.

file | FileList.h
file | FileListNodeContext.h
file | FileListTransfer.h
| A plugin to provide a simple way to compress and incrementally send the files in the FileList structure.

file | FileListTransferCBInterface.h
file | FileOperations.h
file | FormatString.h
file | FullyConnectedMesh.h
| Fully connected mesh plugin. This will connect RakPeer to all connecting peers, and all peers the connecting peer knows about.

file | FullyConnectedMesh2.h
| Fully connected mesh plugin, revision 2.

file | FunctionThread.h
| A set of classes to make it easier to perform asynchronous function processing.

file | Gen_RPC8.h
file | Getche.h
file | GetTime.h
| Returns the value from QueryPerformanceCounter. This is the function RakNet uses to represent time.

file | gettimeofday.h
file | GridSectorizer.h
file | HTTPConnection.h
| Contains HTTPConnection, used to communicate with web servers.

file | IncrementalReadInterface.h
file | InlineFunctor.h
file | InternalPacket.h
| [Internal] A class which stores a user message, and all information associated with sending and receiving that message.

file | Itoa.h
file | Kbhit.h
file | LightweightDatabaseClient.h
| Contains the client interface to the simple database included with RakNet, useful for a server browser or a lobby server.

file | LightweightDatabaseCommon.h
file | LightweightDatabaseServer.h
| A simple flat database included with RakNet, useful for a server browser or a lobby server.

file | LinuxStrings.h
file | LogCommandParser.h
| Contains LogCommandParser , Used to send logs to connected consoles.

file | MessageFilter.h
| Message filter plugin. Assigns systems to FilterSets. Each FilterSet limits what messages are allowed. This is a security related plugin.

file | MessageIdentifiers.h
| All the message identifiers used by RakNet. Message identifiers comprise the first byte of any message.

file | MTUSize.h
| [Internal] Defines the default maximum transfer unit.

file | NativeFeatureIncludes.h
file | NativeFeatureIncludesOverrides.h
file | NativeTypes.h
file | NatPunchthroughClient.h
| Contains the NAT-punchthrough plugin for the client.

file | NatPunchthroughServer.h
| Contains the NAT-punchthrough plugin for the server.

file | NatTypeDetectionClient.h
| Contains the NAT-type detection code for the client.

file | NatTypeDetectionCommon.h
file | NatTypeDetectionServer.h
| Contains the NAT-type detection code for the server.

file | NetworkIDManager.h
file | NetworkIDObject.h
| A class you can derive from to make it easier to represent every networked object with an integer. This way you can refer to objects over the network.

file | PacketConsoleLogger.h
| This will write all incoming and outgoing network messages to the log command parser, which can be accessed through Telnet.

file | PacketFileLogger.h
| This will write all incoming and outgoing network messages to a file.

file | PacketizedTCP.h
| A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet.

file | PacketLogger.h
| This will write all incoming and outgoing network messages to the local console screen. See derived functions for other outputs.

file | PacketOutputWindowLogger.h
| This will write all incoming and outgoing network messages to a file.

file | PacketPool.h
file | PacketPriority.h
| This file contains enumerations for packet priority and reliability enumerations.

file | Platform.h
file | PluginInterface.h
| RakNet's plugin functionality system. You can derive from this to create your own plugins.

file | PluginInterface2.h
| RakNet's plugin functionality system, version 2. You can derive from this to create your own plugins.

file | PS3Includes.h
file | RakAlloca.h
file | RakAssert.h
file | RakMemoryOverride.h
| If _USE_RAK_MEMORY_OVERRIDE is defined, memory allocations go through rakMalloc, rakRealloc, and rakFree.

file | RakNetCommandParser.h
| Contains RakNetCommandParser , used to send commands to an instance of RakPeer.

file | RakNetDefines.h
file | RakNetDefinesOverrides.h
file | RakNetSmartPtr.h
file | RakNetSocket.h
file | RakNetStatistics.h
| A structure that holds all statistical data returned by RakNet.

file | RakNetTime.h
file | RakNetTransport.h
| Contains RakNetTransportCommandParser and RakNetTransport used to provide a secure console connection.

file | RakNetTransport2.h
| Contains RakNetTransportCommandParser and RakNetTransport used to provide a secure console connection.

file | RakNetTypes.h
| Types used by RakNet, most of which involve user code.

file | RakNetVersion.h
file | RakNetworkFactory.h
| Factory class for RakNet objects.

file | RakPeer.h
| Declares RakPeer class.

file | RakPeerInterface.h
| An interface for RakPeer. Simply contains all user functions as pure virtuals.

file | RakSleep.h
file | RakString.h
file | RakThread.h
file | Rand.h
| [Internal] Random number generator

file | rdlmalloc-options.h
file | rdlmalloc.h
file | ReadyEvent.h
| Ready event plugin. This enables a set of systems to create a signal event, set this signal as ready or unready, and to trigger the event when all systems are ready.

file | RefCountedObj.h
| Reference counted object. Very simple class for quick and dirty uses.

file | ReliabilityLayer.h
| [Internal] Datagram reliable, ordered, unordered and sequenced sends. Flow control. Message splitting, reassembly, and coalescence.

file | Replica.h
| Contains interface Replica used by the ReplicaManager.

file | ReplicaEnums.h
| Contains enumerations used by the ReplicaManager system. This file is a lightweight header, so you can include it without worrying about linking in lots of other crap.

file | ReplicaManager.h
| Contains class ReplicaManager. This system provides management for your game objects and players to make serialization, scoping, and object creation and destruction easier.

file | ReplicaManager2.h
| Contains the second iteration of the ReplicaManager class. This system automatically creates and destroys objects, downloads the world to new players, manages players, and automatically serializes as needed.

file | ReplicaManager3.h
| Contains the third iteration of the ReplicaManager class.

file | Rijndael-Boxes.h
file | Rijndael.h
| [Internal] AES encoding / decoding rijndael-alg-fst.h v2.0 August '99 Optimised ANSI C code taken from the 'aescrypt' project: www.sf.net/projects/aescrypt See LICENSE-EST for the license applicable to this file

file | Router.h
| Router plugin. Allows you to send to systems you are not directly connected to, and to route those messages.

file | Router2.h
| Router2 plugin. Allows you to connect to a system by routing packets through another system that is connected to both you and the destination. Useful for getting around NATs.

file | RouterInterface.h
file | RPC4Plugin.h
| Remote procedure call, supporting C functions only. No external dependencies required.

file | RPCMap.h
| [Internal] A container class for a list of RPCNodes

file | RPCNode.h
| [Internal] Holds information related to a RPC

file | RSACrypt.h
file | SendToThread.h
file | SHA1.h
file | SignaledEvent.h
file | SimpleMutex.h
| [Internal] Encapsulates a mutex

file | SimpleTCPServer.h
file | SingleProducerConsumer.h
| [Internal] Passes queued data between threads using a circular buffer with read and write pointers

file | SocketIncludes.h
file | SocketLayer.h
| SocketLayer class implementation.

file | StringCompressor.h
| Compresses/Decompresses ASCII strings and writes/reads them to BitStream class instances. You can use this to easily serialize and deserialize your own strings.

file | StringTable.h
| A simple class to encode and decode known strings based on a lookup table. Similar to the StringCompressor class.

file | SuperFastHash.h
file | SystemAddressList.h
| Just a class to hold a list of systems.

file | TableSerializer.h
file | TCPInterface.h
| A simple TCP based server allowing sends and receives. Can be connected by any TCP client, including telnet.

file | TeamBalancer.h
| Set and network team selection (supports peer to peer or client/server).

file | TelnetTransport.h
| Contains TelnetTransport , used to supports the telnet transport protocol. Insecure.

file | ThreadPool.h
file | ThreadsafePacketLogger.h
| Derivation of the packet logger to defer the call to WriteLog until the user thread.

file | TransportInterface.h
| Contains TransportInterface from which you can derive custom transport providers for ConsoleServer.

file | UDPForwarder.h
| Forwards UDP datagrams. Independent of RakNet's protocol.

file | UDPProxyClient.h
| A RakNet plugin performing networking to communicate with UDPProxyCoordinator. Ultimately used to tell UDPProxyServer to forward UDP packets.

file | UDPProxyCommon.h
file | UDPProxyCoordinator.h
| Essentially maintains a list of servers running UDPProxyServer, and some state management for UDPProxyClient to find a free server to forward datagrams.

file | UDPProxyServer.h
| A RakNet plugin performing networking to communicate with UDPProxyServer. It allows UDPProxyServer to control our instance of UDPForwarder.

file | VariableDeltaSerializer.h
file | VariableListDeltaTracker.h
file | VariadicSQLParser.h
file | WindowsIncludes.h
file | WSAStartupSingleton.h
file | XBox360Includes.h