# RakNetTypes.h File Reference

Types used by RakNet, most of which involve user code. More...

`#include "RakNetDefines.h"`
`#include "Export.h"`

## Namespaces

namespace | RakNet

## Classes

struct | SocketDescriptor
| Describes the local socket to use for RakPeer::Startup. More...
struct | SystemAddress
| Unique identifier for a system. Corresponds to a network address. More...
struct | Packet
| This represents a user message from another system. More...
struct | RPCParameters

## Defines

#define | BITS_TO_BYTES(x) (((x)+7)>>3)
| Given a number of bits, return how many bytes are needed to represent that.
#define | SystemAddress_Size 6
| Size of SystemAddress data.
#define | REGISTER_STATIC_RPC(networkObject, functionName) (networkObject)->RegisterAsRemoteProcedureCall((#functionName),(functionName))
| RPC Function Implementation.
#define | CLASS_MEMBER_ID(className, functionName) #className "_" #functionName
| Concatenate two strings.
#define | REGISTER_CLASS_MEMBER_RPC(networkObject, className, functionName) {union {void (__cdecl className::*cFunc)( RPCParameters *rpcParms ); void* voidFunc;}; cFunc=&className::functionName; networkObject->RegisterClassMemberRPC(CLASS_MEMBER_ID(className, functionName),voidFunc);}
| Register a member function of an instantiated object as a Remote procedure call. RPC member Functions MUST be marked __cdecl!
#define | UNREGISTER_STATIC_RPC(networkObject, functionName) (networkObject)->UnregisterAsRemoteProcedureCall((#functionName))

## Typedefs

typedef unsigned char | UniqueIDType

See also:
  NetworkIDObject.h

typedef unsigned char | MessageID
| First byte of a network message.

## Variables

const SystemIndex | UNASSIGNED_PLAYER_INDEX = 65535
| Index of an unassigned player.
const SystemAddress | UNASSIGNED_SYSTEM_ADDRESS
| Index of an invalid SystemAddress.
const NetworkID | UNASSIGNED_NETWORK_ID
| Unassigned object ID.

## Detailed Description

Types used by RakNet, most of which involve user code.

This file is part of RakNet Copyright 2003 Kevin Jenkins.

Usage of RakNet is subject to the appropriate license agreement. Creative Commons Licensees are subject to the license found at http://creativecommons.org/licenses/by-nc/2.5/ Single application licensees are subject to the license found at http://www.jenkinssoftware.com/SingleApplicationLicense.html Custom license users are subject to the terms therein. GPL license users are subject to the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.