AverageTimeCalculator< precision, default_value, min_value, max_value > | This template-class can summarize values and keep a running average on them. The precision, min/max, and default are all set at compile-time. It is intended for use with milliseconds |
Client | An object of this class represents a client currently connected to the server. You should create your own class inheriting from this one so you can associate any data you wish with a client/player in the game |
ClientData | This interface must be implemented by data on the client. It is very important that the constructor of the subclass calls the constructor of ClientData before reading from the framework packet. This ensures that reading of data is not mixed |
ClientDataMap | This class is used for handling the data elements of the client. It will make sure that elements pointing to objects which haven't been initilized will be set to point at the correct element after it has been initilized. It will also manage the deletion of objects and ensure that objects pointing to deleted objects will recieve a null poiter |
ClientFramework | This class is the framework on the client. With sender, reciever, pending-ack-list and all client data. This is the class you must inherit from on the client side of your game |
ClientPacket | This packet is used from the client-side when sending/receiving packets |
Framework< PacketType, SocketType > | The general interface for a framework |
FrameworkData | The common interface for data on both sender and reciever side |
FrameworkError | This struct is used when throwing exceptions |
FrameworkPacket | This class is a UDP-packet, partly read by the framework, This gives us some knowledge of what is inside the packet |
FrameworkPacket::Header | Structure describing the "header" of the packet |
FrameworkPacket::PeerStruct | This holds info about who the message is for or who it is from, depending on `incomming` |
FrameworkSeqNoList< PacketType, SocketType > | This class takes care of keeping track of ingoing/outgoing sequence numbers. It contains two sequencenumbers for each priority (0-255), and two for the plugin-packets |
OakBinaryMinHeap< E, Comparer > | Just an ordenary binary min-heap. Well not completely, because this one also has both semaphore and mutex capabilities. Hence a thread will block when trying to get an element from the heap if its empty(semaphore), and only one thread is manipulating the heap at any time (mutex) |
PacketChainStep< PacketType > | This is the interface that a step in a PacketChain must implement. All plugins implement this method, as do the queues |
PacketError | This struct is used when throwing packet related exceptions |
PacketReceiver< PacketType, SocketType > | This class receives UDP packets and places them in the ingoing queue. It also handlings general Framework jobs, like sending Acks back if the packet was set as reliable, etc |
PacketSender< PacketType, SocketType > | This class sends packets across the network. It runs in it's own thread, constantly trying to empty the outqueue. Since the outqueue works as a semaphore, we have a producer-consumer setup |
PendingAck< PacketType, SocketType > | An object of this class represents a reliable package sent, and how long there is before it times out |
PendingAckKeyCompare< PacketType, SocketType > | This struct can sort the PendingAck for easy retrieval of a certain one, when we get an Ack |
PendingAckList< PacketType, SocketType > | This is the class keeping the list of pending acks. It runs as its own thread, hence it can resend messages that are not Acknowledged in time |
PendingAckTimtoutCompare< PacketType, SocketType > | This comparerer structure is used to sort the PendingAck in the heap |
Plugin< PacketType > | This interface is for plugins. It is assumed that plugins have both a "pack(p)" and an "unpack(p)" |
PointingMapStruct | |
PreSendingChain< PacketType > | This is a chain of plugins(PacketChainStep) ending with the outbound queue |
Queue< PacketType > | A superclass for the queues containing most of the implementation |
QueueComparer< PacketType > | Compare structure used to sort PacketType in the queue |
QueueDeletor | This struct is used to delete all messages for a certain client (when that client disconnects) |
QueueElement< PacketType > | This represents a PacketType in the Queue, priority and sequence number are set upon insertion |
ServerData | This is the interface implemented by all data residing on the server. When your data-classes inherit from this class they must implement the fillXXX methods. This is how the packets used to update/construct a client version of the object are created |
ServerFramework | This class is the framework on the server. it contains a list of connected clients, a sender, a reciever, pending-ack-list and all the data used to represent the gameworld |
ServerPacket | This packet is used from the server-side when sending/receiving packets |
TestClient | |