Data Structures | |
class | Assert |
Assert functions for validating proper program state. More... | |
class | AsymmetricKey |
class | BitSet32 |
Represents a word of bits. More... | |
struct | Point3F |
Point3F is used by BitStream for transmitting 3D points and vectors. More... | |
class | BitStream |
BitStream provides a bit-level stream interface to a data buffer. More... | |
class | PacketStream |
PacketStream provides a network interface to the BitStream for easy construction of data packets. More... | |
class | ByteBuffer |
class | Certificate |
The Certificate class manages a digitally signed certificate. More... | |
class | ClientPuzzleManager |
The ClientPuzzleManager class issues, solves and validates client puzzles for connection authentication. More... | |
class | ClientPuzzleManager::NonceTable |
NonceTable manages the list of client nonces for which clients have constructed valid puzzle solutions for the current server nonce. More... | |
struct | ClientPuzzleManager::NonceTable::Entry |
class | ConnectionStringTable |
ConnectionStringTable is a helper class to EventConnection for reducing duplicated string data sends. More... | |
struct | ConnectionStringTable::PacketEntry |
struct | ConnectionStringTable::PacketList |
struct | ConnectionStringTable::Entry |
An entry in the EventConnection's string table. More... | |
class | DataChunker |
Implements a chunked data allocater. More... | |
struct | DataChunker::DataBlock |
DataBlock representation for each page of the DataChunker. More... | |
class | ClassChunker |
Templatized data chunker class with proper construction and destruction of its elements. More... | |
class | EventConnection |
EventConnection is a NetConnection subclass used for sending guaranteed and unguaranteed event packages across a connection. More... | |
struct | EventConnection::EventNote |
EventNote associates a single event posted to a connection with a sequence number for ordered processing. More... | |
struct | EventConnection::EventPacketNotify |
EventPacketNotify tracks all the events sent with a single packet. More... | |
class | GhostConnection |
GhostConnection is a subclass of EventConnection that manages the transmission (ghosting) and updating of NetObjects over a connection. More... | |
struct | GhostConnection::GhostRef |
GhostRef tracks an update sent in one packet for the ghost of one NetObject. More... | |
struct | GhostConnection::GhostPacketNotify |
Notify structure attached to each packet with information about the ghost updates in the packet. More... | |
struct | GhostInfo |
Each GhostInfo structure tracks the state of a single NetObject's ghost for a single GhostConnection. More... | |
class | Journal |
The Journal class represents the recordable entry point(s) into program execution. More... | |
struct | JournalEntryRecord |
class | JournalToken |
class | JournalBlockTypeToken |
class | LogConsumer |
LogConsumer is the base class for the message logging system in TNL. More... | |
struct | LogType |
struct | LogTypeRef |
struct | Functor |
Base class for FunctorDecl template classes. More... | |
struct | FunctorDecl |
FunctorDecl template class. More... | |
struct | FunctorDecl< void(T::*)()> |
struct | FunctorDecl< void(T::*)(A)> |
struct | FunctorDecl< void(T::*)(A, B)> |
struct | FunctorDecl< void(T::*)(A, B, C)> |
struct | FunctorDecl< void(T::*)(A, B, C, D)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E, F)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E, F, G)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E, F, G, H)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E, F, G, H, I)> |
struct | FunctorDecl< void(T::*)(A, B, C, D, E, F, G, H, I, J)> |
class | NetClassRep |
class | NetClassRepInstance |
NetClassRepInstance - one of these templates is instantiated for each class that is declared via the IMPLEMENT_* macros below. More... | |
class | Object |
class | RefObjectRef |
Base class for Object reference counting. More... | |
class | RefPtr |
Reference counted object template pointer class. More... | |
class | SafeObjectRef |
Base class for Object safe pointers. More... | |
class | SafePtr |
Safe object template pointer class. More... | |
struct | NetConnectionRep |
NetConnectionRep maintians a linked list of valid connection classes. More... | |
struct | ConnectionParameters |
All data associated with the negotiation of the connection. More... | |
class | NetConnection |
TNL network connection base class. More... | |
struct | NetConnection::PacketNotify |
Structure used to track what was sent in an individual packet for processing upon notification of delivery success or failure. More... | |
struct | NetConnection::NetRate |
Rate management structure used specify the rate at which packets are sent and the maximum size of each packet. More... | |
class | NetEvent |
An event to be sent over the network. More... | |
class | NetInterface |
NetInterface class. More... | |
struct | NetInterface::DelaySendPacket |
Structure used to track packets that are delayed in sending for simulating a high-latency connection. More... | |
class | NetObject |
class | NetObjectRPCEvent |
Event class for handling RPC method invocations on NetObjects. More... | |
class | StringTableEntry |
The StringTableEntry class encapsulates an entry in the network StringTable. More... | |
struct | Nonce |
class | RPCEvent |
Base class for RPC events. More... | |
struct | StringData |
class | StringPtr |
class | SymmetricCipher |
Class for symmetric encryption of data across a connection. More... | |
struct | SymmetricCipher::Key |
class | Semaphore |
Platform independent semaphore class. More... | |
class | Mutex |
Platform independent Mutual Exclusion implementation. More... | |
class | Thread |
Platform independent Thread class. More... | |
class | ThreadStorage |
Platform independent per-thread storage class. More... | |
class | ThreadQueue |
Managing object for a queue of worker threads that pass messages back and forth to the main thread. More... | |
class | ThreadQueue::ThreadQueueThread |
struct | NetType |
NetType serves as a base class for all bit-compressed versions of the base types that can be transmitted using TNL's RPC mechanism. More... | |
struct | Int |
Unsigned integer bit-level RPC template wrapper. More... | |
struct | SignedInt |
Signed integer bit-level RPC template wrapper. More... | |
struct | Float |
Floating point 0...1 value bit-level RPC template wrapper. More... | |
struct | SignedFloat |
Floating point -1...1 value bit-level RPC template wrapper. More... | |
struct | RangedU32 |
Unsigned ranged integer bit-level RPC template wrapper. More... | |
struct | Address |
Representation of a network address. More... | |
struct | IPAddress |
Packed representaion of an IPAddress. More... | |
class | Socket |
The Socket class encapsulates a platform's network socket. More... | |
struct | VectorRep |
VectorRep is an image of a Vector template object that is used for marshalling and unmarshalling Vectors across RPCs. More... | |
class | Vector |
A dynamic array template class. More... | |
GeneralMath Math Helpers | |
Some general numeric utility functions. | |
bool | isPow2 (const U32 number) |
Determines if number is a power of two. | |
U32 | getBinLog2 (U32 value) |
Determines the binary logarithm of the input value rounded down to the nearest power of 2. | |
U32 | getNextBinLog2 (U32 number) |
Determines the binary logarithm of the next greater power of two of the input number. | |
U32 | getNextPow2 (U32 value) |
Determines the next greater power of two from the value. If the value is a power of two, it is returned. | |
DeclareTemplatizedMinMax (U32) DeclareTemplatizedMinMax(S32) DeclareTemplatizedMinMax(U16) DeclareTemplatizedMinMax(S16) DeclareTemplatizedMinMax(U8) DeclareTemplatizedMinMax(S8) DeclareTemplatizedMinMax(F32) DeclareTemplatizedMinMax(F64) inline void writeU32ToBuffer(U32 value | |
@} | |
Typedefs | |
typedef RefPtr< AsymmetricKey > | AsymmetricKeyPtr |
typedef RefPtr< ByteBuffer > | ByteBufferPtr |
typedef const ByteBuffer & | ByteBufferRef |
typedef U32 | StringTableEntryId |
typedef const StringTableEntry & | StringTableEntryRef |
typedef signed char | S8 |
Compiler independent signed char (8bit integer). | |
typedef unsigned char | U8 |
Compiler independent unsigned char (8bit integer). | |
typedef signed short | S16 |
Compiler independent signed 16-bit short integer. | |
typedef unsigned short | U16 |
Compiler independent unsigned 16-bit short integer. | |
typedef signed int | S32 |
Compiler independent signed 32-bit integer. | |
typedef unsigned int | U32 |
Compiler independent unsigned 32-bit integer. | |
typedef float | F32 |
Compiler independent 32-bit float. | |
typedef double | F64 |
Compiler independent 64-bit float. | |
typedef const IPAddress & | IPAddressRef |
typedef int(QSORT_CALLBACK * | qsort_compare_func )(const void *, const void *) |
Enumerations | |
enum | NetClassType { NetClassTypeNone = -1, NetClassTypeObject = 0, NetClassTypeDataBlock, NetClassTypeEvent, NetClassTypeCount } |
NetClassTypes are used to define the ranges of individual class identifiers, in order to reduce the number of bits necessary to identify the class of an object across the network. More... | |
enum | NetClassGroup { NetClassGroupGame, NetClassGroupCommunity, NetClassGroupMaster, NetClassGroupUnused2, NetClassGroupCount, NetClassGroupInvalid = NetClassGroupCount } |
NetClassGroups are used to define different service types for an application. More... | |
enum | NetClassMask { NetClassGroupGameMask = 1 << NetClassGroupGame, NetClassGroupCommunityMask = 1 << NetClassGroupCommunity, NetClassGroupMasterMask = 1 << NetClassGroupMaster, NetClassGroupAllMask = (1 << NetClassGroupCount) - 1 } |
Mask values used to indicate which NetClassGroup(s) a NetObject or NetEvent can be transmitted through. More... | |
enum | NetObjectRPCDirection { RPCToGhost = 1, RPCToGhostParent = 2 } |
Direction that a NetObject RPC method call should travel. More... | |
enum | RPCDirection { RPCDirAny = NetEvent::DirAny, RPCDirServerToClient = NetEvent::DirServerToClient, RPCDirClientToServer = NetEvent::DirClientToServer } |
Enumeration for valid directions that RPC messages can travel. More... | |
enum | RPCGuaranteeType { RPCGuaranteedOrdered = NetEvent::GuaranteedOrdered, RPCGuaranteed = NetEvent::Guaranteed, RPCUnguaranteed = NetEvent::Unguaranteed } |
Type of data guarantee this RPC should use. More... | |
enum | TransportProtocol { IPProtocol, TCPProtocol, IPXProtocol, IPv6Protocol } |
Enumeration for transport protocols for the TNL. More... | |
enum | Constants { MaxPacketDataSize = 1500 } |
Packet level network constants. More... | |
enum | NetError { NoError, InvalidPacketProtocol, WouldBlock, UnknownError } |
Error conditions that can be returned by sendto and recvfrom. More... | |
Functions | |
const char * | avar (const char *in_msg,...) |
sprintf style string formating into a fixed temporary buffer. | |
U8 | endianSwap (const U8 in_swap) |
S8 | endianSwap (const S8 in_swap) |
U16 | endianSwap (const U16 in_swap) |
Convert the byte ordering on the U16 to and from big/little endian format. | |
S16 | endianSwap (const S16 in_swap) |
U32 | endianSwap (const U32 in_swap) |
Convert the byte ordering on the U32 to and from big/little endian format. | |
S32 | endianSwap (const S32 in_swap) |
U64 | endianSwap (const U64 in_swap) |
S64 | endianSwap (const S64 in_swap) |
F32 | endianSwap (const F32 in_swap) |
F64 | endianSwap (const F64 in_swap) |
void | logprintf (const char *format,...) |
Global interface to the TNL logging system. | |
bool | atob (const char *str) |
String to boolean conversion. | |
int | dSprintf (char *buffer, U32 bufferSize, const char *format,...) |
Printf into string with a buffer size. | |
int | dVsprintf (char *buffer, U32 bufferSize, const char *format, void *arglist) |
compiler independent | |
char | dToupper (const char c) |
Converts an ASCII character to upper case. | |
char | dTolower (const char c) |
Converts an ASCII character to lower case. | |
template<class T> T * | constructInPlace (T *p) |
Constructs an object that already has memory allocated for it. | |
template<class T> T * | constructInPlace (T *p, const T *copy) |
Copy constructs an object that already has memory allocated for it. | |
template<class T> void | destructInPlace (T *p) |
Destructs an object without freeing the memory associated with it. | |
Variables | |
const U32 | MinimumPaddingBits = 128 |
Padding space that is required at the end of each packet for bit flag writes and such. | |
const F32 | FloatOne = F32(1.0) |
Constant float 1.0. | |
const F32 | FloatHalf = F32(0.5) |
Constant float 0.5. | |
const F32 | FloatZero = F32(0.0) |
Constant float 0.0. | |
const F32 | FloatPi = F32(3.14159265358979323846) |
Constant float PI. | |
const F32 | Float2Pi = F32(2.0 * 3.14159265358979323846) |
Constant float 2*PI. | |
const F32 | FloatInversePi = F32(1.0 / 3.14159265358979323846) |
Constant float 1 / PI. | |
const F32 | FloatHalfPi = F32(0.5 * 3.14159265358979323846) |
Constant float 1/2 * PI. | |
const F32 | Float2InversePi = F32(2.0 / 3.14159265358979323846) |
Constant float 2 / PI. | |
const F32 | FloatInverse2Pi = F32(0.5 / 3.14159265358979323846) |
Constant float 2 / PI. | |
const F32 | FloatSqrt2 = F32(1.41421356237309504880f) |
Constant float sqrt(2). | |
const F32 | FloatSqrtHalf = F32(0.7071067811865475244008443f) |
Constant float sqrt(0.5). | |
const S8 | S8_MIN = S8(-128) |
Constant Min Limit S8. | |
const S8 | S8_MAX = S8(127) |
Constant Max Limit S8. | |
const U8 | U8_MAX = U8(255) |
Constant Max Limit U8. | |
const S16 | S16_MIN = S16(-32768) |
Constant Min Limit S16. | |
const S16 | S16_MAX = S16(32767) |
Constant Max Limit S16. | |
const U16 | U16_MAX = U16(65535) |
Constant Max Limit U16. | |
const S32 | S32_MIN = S32(-2147483647 - 1) |
Constant Min Limit S32. | |
const S32 | S32_MAX = S32(2147483647) |
Constant Max Limit S32. | |
const U32 | U32_MAX = U32(0xffffffff) |
Constant Max Limit U32. | |
const F32 | F32_MIN = F32(1.175494351e-38F) |
Constant Min Limit F32. | |
const F32 | F32_MAX = F32(3.402823466e+38F) |
Constant Max Limit F32. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NetClassTypes are used to define the ranges of individual class identifiers, in order to reduce the number of bits necessary to identify the class of an object across the network. For example, if there are only 21 classes declared of NetClassTypeObject, the class identifier only needs to be sent using 5 bits. |
|
NetClassGroups are used to define different service types for an application. Each network-related class can be marked as valid across one or more NetClassGroups. Each network connection belongs to a particular group, and can only transmit objects that are valid in that group. |
|
Mask values used to indicate which NetClassGroup(s) a NetObject or NetEvent can be transmitted through.
|
|
Direction that a NetObject RPC method call should travel.
|
|
Enumeration for valid directions that RPC messages can travel.
|
|
|
Enumeration for transport protocols for the TNL. Currently only IP and IPX are supported - the IPv6 constant is for future use. |
|
Packet level network constants.
|
|
Error conditions that can be returned by sendto and recvfrom.
|
|
sprintf style string formating into a fixed temporary buffer.
|
|
|
|
|
|
Convert the byte ordering on the U16 to and from big/little endian format.
|
|
|
|
Convert the byte ordering on the U32 to and from big/little endian format.
|
|
|
|
|
|
|
|
|
|
|
|
Global interface to the TNL logging system. The TNL logging system is consumer based. This is just a global stub that routes the log string to all the consumers. You should really be using the TNLLogMessage() and TNLLogMessageV() macros instead of calling this.
|
|
String to boolean conversion.
|
|
Printf into string with a buffer size. This will print into the specified string until the buffer size is reached. |
|
compiler independent This will print into the specified string until the buffer size is reached. |
|
Converts an ASCII character to upper case.
|
|
Converts an ASCII character to lower case.
|
|
Determines if number is a power of two.
|
|
Determines the binary logarithm of the input value rounded down to the nearest power of 2.
|
|
Determines the binary logarithm of the next greater power of two of the input number.
|
|
Determines the next greater power of two from the value. If the value is a power of two, it is returned.
|
|
@}
|
|
Padding space that is required at the end of each packet for bit flag writes and such.
|