# RakNet Namespace Reference

Forward declaration. More...

## Classes
class | AutoRPC
class | BitStream
class | FunctionThread
class | Functor
class | NatTypeDetectionClient
| Client code for NatTypeDetection. More...
class | NatTypeDetectionServer
| Server code for NatTypeDetection. More...
class | RakString
| String class. More...
class | ReplicaManager2
| A management system for your game objects and players to make serialization, scoping, and object creation and destruction easier. More...
struct | SerializationContext
| Contextual information about serialization, passed to some functions in Replica2. More...
class | Replica2
| Base class for game objects that use the ReplicaManager2 system. More...
class | 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. More...
class | Connection_RM2
| This class represents a connection between two instances of ReplicaManager2. More...
class | ReplicaManager3
| System to help automate game object construction, destruction, and serialization. More...
struct | LastSerializationResult
struct | SerializeParameters
class | Connection_RM3
| Each remote system is represented by Connection_RM3. Used to allocate Replica3 and track which instances have been allocated. More...
class | Replica3
| Base class for your replicated objects for the ReplicaManager3 system. More...
class | Router2
| Class interface for the Router2 system. More...
class | RPC4Plugin
| The RPC4Plugin plugin is just an association between a C function pointer and a string. More...
class | StringTable
| Writes a string index, instead of the whole string. More...
class | TeamBalancer
| Set and network team selection (supports peer to peer or client/server). More...
class | UDPForwarder
| Forwards UDP datagrams. Independent of RakNet's protocol. More...
struct | UDPProxyClientResultHandler
class | UDPProxyClient
| Communicates with UDPProxyCoordinator, in order to find a UDPProxyServer to forward our datagrams. More...
class | UDPProxyCoordinator
| Middleman between UDPProxyServer and UDPProxyClient, maintaining a list of UDPProxyServer, and managing state for clients to find an available forwarding server. More...
struct | UDPProxyServerResultHandler
class | UDPProxyServer
| UDPProxyServer to control our instance of UDPForwarder. More...
class | VariableDeltaSerializer
| Class to compare memory values of variables in a current state to a prior state Results of the comparisons will be written to a bitStream, such that only changed variables get written Can be used with ReplicaManager3 to Serialize a Replica3 per-variable, rather than comparing the entire object against itself Usage: BR> 1. Call BeginUnreliableAckedSerialize(), BeginUniqueSerialize(), or BeginIdenticalSerialize(). In the case of Replica3, this would be in the Serialize() call 2. For each variable of the type in step 1, call Serialize(). The same variables must be serialized every tick() 3. Call EndSerialize() 4. Repeat step 1 for each of the other categories of how to send varaibles. More...
class | VariableListDeltaTracker
class | Lobby2Client
| Class used to send commands to Lobby2Server. More...
struct | Lobby2Message
| A Lobby2Message encapsulates a networked function call from the client. More...
struct | Lobby2Callbacks
struct | Lobby2Printf
struct | Platform_Startup
| Platform specific startup. Unused on the PC. More...
struct | Platform_Shutdown
| Platform specific startup. Unused on the PC. More...
struct | System_CreateDatabase
| Create all tables and stored procedures on a system that does not already have them. More...
struct | System_DestroyDatabase
| Destroy all tables and stored procedures created with System_CreateDatabase. More...
struct | System_CreateTitle
| Each title essentially corresponds to a game. For example, the same lobby system may be used for both asteroids and Pac-man. When logging in, and for some functions, it is necessary to specify which title you are logging in under. This way users playing asteroids do not interact with users playing pac-man, where such interations are game specific (such as ranking). More...
struct | System_DestroyTitle
| Destroy a previously added title. More...
struct | System_GetTitleRequiredAge
| Get the required age set with System_CreateTitle. More...
struct | System_GetTitleBinaryData
| Get the binary data set with System_CreateTitle. More...
struct | System_RegisterProfanity
| Adds the input strings to a table of profanity. non-unique or empty strings can be ignored. This table will be used internally to ensure that handles and clan names do not contain profanity. Multiple calls add to the table. This table will be used for functions that take a user-defined string that is highly visible, such as clan and user names. It does not need to be checked for emails or message boards. More...
struct | System_BanUser
| Bans a specific user (will be most likely called by a moderator). Adds the user's primary key to a ban table, along with the name of the moderator, the reason for the ban. Banning is used to prevent the banned user from logging on for some specified duration. A date column should be present and automatically filled in. When bans are expired, the ban can be deleted from the database. However, a separate table should log bans, so that even expired bans can be looked up in case. More...
struct | System_UnbanUser
| Unban a user banned with System_BanUser. More...
struct | CDKey_Add
| Adds CDKeys to the database. Duplicate CDKeys for a particular title are ignored. CDKeys can be identical for different titles. More...
struct | CDKey_GetStatus
| Returns if a CD key was previously added with AddCDKey. More...
struct | CDKey_Use
| Associates a cd key with a user, such that the cd key cannot be used again. If Client_Login() is called with check cd key as true, then this table will be checked to make sure UserCDKey() was previously called with this user and a valid key. If this user is already associated with a CD Key, add the new key, and use the most recent key. All CD Key usage should be logged in a separate table, including the date used and result. More...
struct | CDKey_FlagStolen
| Flags one or more CD keys as stolen. Stolen CD keys will prevent Client_Login() if check cd key is true. They will also prevent these cd keys from being used with CDKey_Use. If this key is already in use by certain users for this particular title, then log this similarly to how CDKey_Use does so. More...
struct | Client_Login
| Logon with a previously registered account. More...
struct | Client_Logoff
| Logoff, after logging in. More...
struct | Client_RegisterAccount
| This creates a new account in the database, which can be used in a subsequent call to Login. Most parameters are optional. handle is not optional, and must be unique using case-insensitive compare. emailAddress should be validated to have a sensible format, including an @ sign and a period with a 3 letter extension. allowLoginWithoutEmailAddressValidation is used in Client_Login to potentially disallow logon attempts with unverified email addresses. More...
struct | System_SetEmailAddressValidated
| For the client with the given handle, mark a column emailAddressValidated as true or false as appropriate. This is potentially used in Client_Login. More...
struct | Client_ValidateHandle
| Looks up in the database if this handle is already in use, subject to the usual constraints of handles. This will be used by the user to quickly check for available handles. More...
struct | System_DeleteAccount
| Flags as deleted an account registered with RegisterAccount. Accounts are not actually deleted, only tagged as deleted. More...
struct | System_PruneAccounts
| Unused accounts are deleted. This is cascading, such that emails and other tables that reference this key are also deleted. unused accounts are defined as:. More...
struct | Client_GetEmailAddress
| Returns the email address associated with a specific handle, invalid handle. This is used for password recovery. More...
struct | Client_GetPasswordRecoveryQuestionByHandle
| Returns the passwordRecoveryQuestion associated with handle, invalid handle. More...
struct | Client_GetPasswordByPasswordRecoveryAnswer
| Returns the password associated with a handle, if the passwordRecoveryAnswer is correct. More...
struct | Client_ChangeHandle
| Changes the handle for a user. More...
struct | Client_UpdateAccount
| Will update any or all of the inputs that were previously passed to Client_RegisterAccount, except handle. More...
struct | Client_GetAccountDetails
| Get the parameters set with Client_RegisterAccount. More...
struct | Client_StartIgnore
| Adds the specified user to an ignore list for my user. Recommended to store the primary key of the remote user, both for speed and so if the other use changes their handle it still works. The ignore list is checked for friend invites, emails, and elsewhere where indicated. Ignoring is uni-directional, so if A ignores B, A will block messages from B where appropriate, but B will not immediately block messages from A. More...
struct | Client_StopIgnore
| Removes an entry in the database such that myHandle will no longer ignore theirHandle. More...
struct | Client_GetIgnoreList
| Returns all users I have ignored. More...
struct | Client_PerTitleBinaryStorage
| For each combination of user and title, structures can be stored. More...
struct | Client_SetPresence
| Sets in-memory information about your login state, such as which game you are playing, or if you are playing a game Online friends will be notified when you presence changes. More...
struct | Client_GetPresence
| Gets in-memory information about a user's login state, such as which game they are playing, or if they are playing a game This can also be a quick way to query if a user is logged in or not. If they are not logged in, presence will be set to Lobby2Presence::NOT_ONLINE. More...
struct | Friends_SendInvite
| Stores in the database an add friend invite from my handle to their handle. The combination of my handle and their handle must be unique, so you cannot send more than one add friend invite to a single user. Sends an email to their handle the subject, body, and binary data. Note: if myHandle is ignored by theirHandle, then the function fails. See Client_StartIgnore. More...
struct | Friends_AcceptInvite
| Stores in the database that this user is now my friend. This is bidirectional, which is to say if someone accepts an add friend invite, they are my friend, and I am their friend. Recommended to store by primary key for speed and in case the friend's handle changes. Store in the emails table from my handle to their handle the subject, body, and binary data. Note: if myHandle is ignored by theirHandle, then the function fails. See AddToIgnoreList. More...
struct | Friends_RejectInvite
| Removes from the database the pending add friend invite. Operation completes even if ignored. Unless ignored, store in the emails table from my handle to their handle the subject, body, binary data, and procedure type flag. More...
struct | Friends_GetInvites
| Returns all invites for this user. More...
struct | Friends_GetFriends
| Gets all friends to this user. More...
struct | Friends_Remove
| Ends a friendship between two users. Remove from the database the friend entry between my handle and their handle. As with accept add friend invite, this is bidirectional. Either user can terminate the friendship. Store in the emails table from my handle to their handle the subject, body, and binary data, and procedure type flag. More...
struct | BookmarkedUsers_Add
| Remembers a user, with a type integer and description for you to use, if desired. More...
struct | BookmarkedUsers_Remove
| Remove a user added with BookmarkedUsers_Add. More...
struct | BookmarkedUsers_Get
| Returns all users added to BookmarkedUsers_Add. More...
struct | Emails_Send
| Adds to an emails table from myHandle (store primary key) to recipient handles (store primary key) the specified subject, body, and binary data. Emails are persistent, therefore emails should be stored in a separate table and referenced by the user. Deleting the user does not delete previously send email. Emails should have an automatic timestamp to store when they were created. Email should be flagged as sent=true (boolean), markedRead=true (boolean), deletedBySender=false (boolean), deletedByReciever=false (boolean). More...
struct | Emails_Get
| Returns emails as noted. Emails which were marked deleted are not returned. More...
struct | Emails_Delete
| Deletes an email with a specified ID. This ID is returned in GetEmail and should uniquely identify an email (it's fine to use the primary key). Note: Emails are not actually deleted from the database in this function. This just sets the deletedBySender or deletedByReciever flags. Emails are actually stored in a log recording past emails and sender and receiver primary key. They are not truly destroyed until done so with System_PruneAccounts. More...
struct | Emails_SetStatus
| Sets the status flag for an email. This is a property defined by and used by the user. More...
struct | Ranking_SubmitMatch
| Will record in the database the results of a match. This will store in the database the the match which is defined by the the match notes, match id, winner and loser participant primary keys, winner and loser participant scores, and binary data. More...
struct | Ranking_GetMatches
| Gets matches recorded with Ranking_SubmitMatch ordered from most recent to least recent. Each returned match has all columns submitted to Ranking_SubmitMatch, except binary data, which can be retrieved with Ranking_GetMatchBinaryData. Additionally, each returned match returns the primary key of each match, to be passed to Ranking_GetMatchBinaryData. More...
struct | Ranking_GetMatchBinaryData
| Because of the large amount of binary data potentially returned, this function is used to retrieve binary data for a particular match. More...
struct | Ranking_GetTotalScore
| When a match is submitted with Ranking_SubmitMatch, the total running score and number of matches played for each player for each game title and game mode combination should be recorded. Because matches can be pruned wth PruneMatches(), the total score sum and number of scores submitted should be stored, rather than summed up from prior submitted matches. More...
struct | Ranking_WipeScoresForPlayer
| Resets the sum of all submitted scores to 0, the number of scores submitted to 0. More...
struct | Ranking_WipeMatches
| Deletes all matches submitted with submit match. Also deletes all scores for all players associated with this titleName and gameType (e.g. same thing that WipeScoresForPlayer does, but for all players). More...
struct | Ranking_PruneMatches
| Will delete all matches submitted with SubmitMatch over PruneTime days old. Will also prune matches if the total storage space of all matches exceeds PruneSizeMB megabytes in the database. More...
struct | Ranking_UpdateRating
| Add or update a rating for a user, in a particular game and game mode. More...
struct | Ranking_WipeRatings
| Deletes all ratings for all players for this combination of titleName and gameType. More...
struct | Ranking_GetRating
| Get rating for a player. More...
struct | Clans_Create
| userHandle updates the clanDescription and clanBinaryData of a clan with the specified clanHandle. userHandle must be the clan leader. More...
struct | Clans_SetProperties
| userHandle updates the clanDescription and clanBinaryData of a clan with the specified clanHandle. userHandle must be the clan leader. More...
struct | Clans_GetProperties
| Returns clanDescription and clanBinaryData for the given clan. More...
struct | Clans_SetMyMemberProperties
| Each member of each clan has the the properties clanMemberDescription and clanMemberBinaryData which default to empty. These properties can be set here, and retrieved via GetClanMemberProperties. More...
struct | Clans_GrantLeader
| myPrimaryKey becomes a subleader. newLeaderHandle becomes the leader. An email is sent with Emails_Send() to all members with the specified subject and body More...
struct | Clans_SetSubleaderStatus
| Promotes a clan member to a subleader, or demotes a subleader to a regular member. On promotion, email is sent to all members from myPrimary key with the specified subject and body. On demotion, email is sent to all leaders from myPrimary key with the specified subject and body. More...
struct | Clans_SetMemberRank
| Lets the clan leader set the rank property for a clan member. More...
struct | Clans_GetMemberProperties
| Returns properties for a clan member of a given clan. More...
struct | Clans_ChangeHandle
| Renames the clan. Note that this may be called asynchronously, in which case the stored procedure should account for this occuring at the same time as another function that uses the old clan handle. More...
struct | Clans_Leave
| Remove user identified by myPrimaryKey from clan identified by clanHandle. More...
struct | Clans_Get
| Returns all clans that userHandle is a member of. Clans and clan members should be sorted by name, using ascending or descending sort as specified. More...
struct | Clans_SendJoinInvitation
| if myPrimaryKey is a leader or subleader of clanHandle, and invitedUserHandle is a valid user not already invited to this clan, add this user to the invite table. The invite table contains the clan, who send the invite, and who the invite was sent to, and when it was sent. Invites expire after expiration time in seconds. Also, use Emails_Send() to send an email from myPrimaryKey to invitedUserHandle with the specified subject and body. More...
struct | Clans_WithdrawJoinInvitation
| if myPrimaryKey is a leader or subleader of clanHandle, and invitedUserHandle is a valid user with an invite to this clan, remove this invite. Also, use Emails_Send() to send an email from myPrimaryKey to invitedUserHandle with the specified subject and body. More...
struct | Clans_AcceptJoinInvitation
| If myPrimaryKey has an invitation to the specified clan, add him to the clan. Fail on specified output parameters. Use Emails_Send() to send an email from myPrimaryKey to all clan members with the specified subject and body. More...
struct | Clans_RejectJoinInvitation
| If we have an open clan invitation, reject it (just delete it from the database). More...
struct | Clans_DownloadInvitationList
| Returns all invites sent by Clans_SendJoinInvitation that were not yet acted upon (withdrawn, accepted, rejected). More...
struct | Clans_SendJoinRequest
| Function has two forms:. More...
struct | Clans_WithdrawJoinRequest
| Withdraws a previously sent clan join request via SendClanJoinRequest. Use Emails_Send() to send an email from myPrimaryKey to the clan leader and all subleaders with the specified subject and body. More...
struct | Clans_AcceptJoinRequest
| A clan leader or subleader accepts a join request from requestingUserHandle to this clan. requestingUserHandle joins the clan as a regular member. Use Emails_Send() to send an email from requestingUserHandle to all clan members with the specified subject and body. More...
struct | Clans_RejectJoinRequest
| Rejects a clan join request from requestingUserHandle. Send an email from myPrimaryKey to requestingUserHandle with the specified subject and body. More...
struct | Clans_DownloadRequestList
| Returns all open requests this user has sent to clans, that have not yet acted upon (withdrawn, accepted, rejected, expired). More...
struct | Clans_KickAndBlacklistUser
| Kicks a user from the clan and/or blacklists a user so they cannot join. Only a clan leader or subleader can perform this operation. The operation can only be performed on members of lower status (leader can perform on subleader or regular member or nonmember, subleader on regular members or nonmember). If a member is banned, they are added to the banned table which contains the member's primary key, which user banned them, and the reason. Email is sent from myPrimaryKey to all leaders if a clan member is banned. Emails is furthermore sent to all clan members if successfully kicked. More...
struct | Clans_UnblacklistUser
| Removes a user from the blacklist for this clan. More...
struct | Clans_GetBlacklist
| Returns a list of all members blacklisted from this clan. Each element in the list contains the handle of the user that did the ban, who was banned, when the user was banned, and the reason passed to ClanKickAndBlacklistUser. More...
struct | Clans_GetMembers
| Returns all clan members for this clan. Each entry returned contains handle, description, binary data, status (leader, regular member, subleader). More...
struct | Clans_GetList
| Returns all clans names. More...
struct | Clans_CreateBoard
| Creates a new clan board for clan members to post in using AddPostToClanBoard. Clan boards are unique, and are destroyed when the clan is destroyed, or if DestroyClanBoard is called. More...
struct | Clans_DestroyBoard
| Success, invalid parameter syntax, myPrimaryKey is not the leader or subleader of clanHandle, unknown myPrimaryKey, unknown clanHandle, unknown clanBoardName. More...
struct | Clans_CreateNewTopic
| Each clan has a clan board that only clan members can post to. This adds a topic to the clan board. Posts should reference the primary key of the poster, so that even if the poster chagnes his or her handle, the post author is updated properly. Each post automatically stores the timestamp when it was created. Banned users may not add new posts to the clan board. More...
struct | Clans_ReplyToTopic
| Replies to a topic created with Clans_CreateTopic(). If postId references a post within a topic, just add the reply to the last post. Banned users may not add new posts to the clan board. More...
struct | Clans_RemovePost
| The clan leader or subleaders may remove posts or topics from a clan board. More...
struct | Clans_GetBoards
| Gets clan boards created for clanHandle. Boards are returned if we are a clan member, or if allowPublicReads in Clans_CreateBoard() was passed as false. However, if we are banned from this clan, no boards are returned. More...
struct | Clans_GetTopics
| Gets topics (posts that are not replies to other posts, created with Clans_CreateTopic()) for the specified clanHandle and clanBoardName. If we are not a clan member and the clan was created with allowPublicReads==false, then the user is not allowed to read topics. More...
struct | Clans_GetPosts
| Gets all posts for a particular topic. If postId is not a topic but is instead a post in a topic, treat it as if the topic postId was passed. If we are not a clan member and the clan was created with allowPublicReads==false, then the user is not allowed to read topics. More...
class | Lobby2Plugin
| Both Lobby2Server and Lobby2Client derive from this class. More...
struct | Lobby2Presence
struct | Lobby2ServerCommand
class | Lobby2Server
| The base class for the lobby server, without database specific functionality. More...
class | Lobby2Server_PGSQL
| PostgreSQL specific functionality to the lobby server. More...
struct | RoomsPluginFunc
| Base class for rooms functionality. More...
struct | CreateRoom_Func
| Create a room. Each user can be in at most one room, so will fail if the user is already in a room. More...
struct | EnterRoom_Func
| Joins a room if possible. If not, creates a room. More...
struct | JoinByFilter_Func
| Joins a room given the filter parameters and desired room member mode. More...
struct | LeaveRoom_Func
| Leaves a room. You can leave at any time, even if the room is locked. More...
struct | GetInvitesToParticipant_Func
struct | SendInvite_Func
| Sends an invitation to someone. More...
struct | AcceptInvite_Func
| Accept an invitation from a user to a room. More...
struct | StartSpectating_Func
| Begin spectating. Spectators are considered room members that are not playing the game, only watching. More...
struct | StopSpectating_Func
| Stop spectating. This will rejoin the room as a player, using a reserved slot if we were invited, and a public slot if not or if there are no reserved slots. More...
struct | GrantModerator_Func
| Give moderator to another player. Moderators cannot be spectators. More...
struct | ChangeSlotCounts_Func
| Change the allowed slot counts for the room. Setting fewer slot counts than the number of players does not kick out players, though it may prevent changing spectator status. More...
struct | SetCustomRoomProperties_Func
| Sets a table of user-defined room properties. More...
struct | GetRoomProperties_Func
| Given a named room, return the properties of that room, including member list. More...
struct | ChangeRoomName_Func
| Change the name of the room. More...
struct | SetHiddenFromSearches_Func
| Set or unset the room hidden from searches. If a room is hidden from searches, it can only be joined through invitations. More...
struct | SetDestroyOnModeratorLeave_Func
| Sets or unsets to destroy the room when the moderator leaves the room. More...
struct | SetReadyStatus_Func
| Sets or unsets the user as flagged 'ready'. More...
struct | GetReadyStatus_Func
| Gets the ready states for every user in the room, excluding spectators. More...
struct | SetRoomLockState_Func
| Lock or unlock the room. More...
struct | GetRoomLockState_Func
| Gets the lock state of the room. More...
struct | AreAllMembersReady_Func
| If all members have been set to ready using SetReadyStatus_Func, this operation will set allReady to true. More...
struct | KickMember_Func
| Kick a member out of the room. This will also automatically ban that member from rejoining as long as the moderator does not change, or the member is unbanned. More...
struct | UnbanMember_Func
| Allow a member previously kicked out of the room to rejoin. More...
struct | GetBanReason_Func
| For a given room, get the reason parameter of KickMember_Func when we were kicked out. More...
struct | AddUserToQuickJoin_Func
| Enter quick join mode. More...
struct | RemoveUserFromQuickJoin_Func
| Leave quick join mode. More...
struct | IsInQuickJoin_Func
| Returns if you are waiting in quick join mode. More...
struct | SearchByFilter_Func
| Return all rooms that pass the roomQuery filter. More...
struct | ChangeHandle_Func
| Change your handle. More...
struct | Chat_Func
| Send a chat message. More...
struct | Bitstream_Func
| Send an arbitrary binary message. More...
struct | RoomsPluginNotification
| Base class for notification callbacks. More...
struct | QuickJoinExpired_Notification
| The quick join duration has expired without joining or creating any rooms. More...
struct | QuickJoinEnteredRoom_Notification
| Quick join succeeded, and you are now in a room. More...
struct | RoomMemberStartedSpectating_Notification
| Another room member has started spectating. More...
struct | RoomMemberStoppedSpectating_Notification
| Another room member has stopped spectating. More...
struct | ModeratorChanged_Notification
| The room has a new moderator (possibly you). More...
struct | SlotCountsSet_Notification
| The slot counts in the room has changed. More...
struct | CustomRoomPropertiesSet_Notification
| The custom properties for the room has changed. More...
struct | RoomNameSet_Notification
| The name of the room has been changed. More...
struct | HiddenFromSearchesSet_Notification
| The room is now hidden, or no longer hidden, from searches. More...
struct | RoomMemberReadyStatusSet_Notification
| Another room member has changed their ready status. More...
struct | RoomLockStateSet_Notification
| The room is now, or is no longer, locked. More...
struct | RoomMemberKicked_Notification
| A room member has been kicked out of the room (possibly you). More...
struct | RoomMemberHandleSet_Notification
| A room member has changed their handle. More...
struct | RoomMemberLeftRoom_Notification
struct | RoomMemberJoinedRoom_Notification
| A room member has joined the room. More...
struct | RoomInvitationSent_Notification
| You have received an invitation to a room. More...
struct | RoomInvitationWithdrawn_Notification
| A previous room invitation is no longer valid (possibly due to moderator change, or the room no longer exists). More...
struct | RoomDestroyedOnModeratorLeft_Notification
| The moderator has left the room, and everyone left is a spectator, or the room was set to be destroyed when the moderator left You are no longer in the room. More...
struct | Chat_Notification
| You got a chat message from another user. More...
struct | Bitstream_Notification
| You got a generic bitstream message from another user. More...
class | RoomsPlugin
| Used to create rooms for players where they can matchmake. More...
class | RPC3
| The RPC3 plugin allows you to call remote functions as if they were local functions, using the standard function call syntax. More...
class | SQLite3PluginResultInterface
| Handles results of calls to SQLite3Plugin::_sqlite3_exec() Results from calling SQLite3Plugin::_sqlite3_exec() are handled in this callback. You should implement the callback, and let the plugin know about it via SQLite3Plugin::AddResultHandler() Be sure to call SQLite3Plugin::RemoveResultHandler() or SQLite3Plugin::ClearResultHandlers() if you delete the callback. More...
class | SQLite3PluginResultInterface_Printf
class | SQLite3ClientPlugin
class | SQLite3ServerPlugin
| Exec SQLLite commands over the network. More...
## Typedefs
typedef int | SerializationType
| These are the types of events that can cause network data to be transmitted.
typedef unsigned char | TeamId
## Enumerations
enum | RPCErrorCodes { RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP, RPC_ERROR_STACK_TOO_SMALL, RPC_ERROR_STACK_DESERIALIZATION_FAILED, RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP }
enum | NATTypeDetectionResult { NAT_TYPE_NONE, NAT_TYPE_FULL_CONE, NAT_TYPE_ADDRESS_RESTRICTED, NAT_TYPE_PORT_RESTRICTED, NAT_TYPE_SYMMETRIC, NAT_TYPE_UNKNOWN, NAT_TYPE_DETECTION_IN_PROGRESS, NAT_TYPE_SUPPORTS_UPNP }
| All possible types of NATs (except NAT_TYPE_COUNT, which is an internal value). More...
enum | { SEND_SERIALIZATION_GENERIC_TO_SYSTEM, BROADCAST_SERIALIZATION_GENERIC_TO_SYSTEM, SEND_SERIALIZATION_CONSTRUCTION_TO_SYSTEM, BROADCAST_SERIALIZATION_CONSTRUCTION_TO_SYSTEM, SEND_AUTO_SERIALIZE_TO_SYSTEM, BROADCAST_AUTO_SERIALIZE_TO_SYSTEM, RELAY_SERIALIZATION_TO_SYSTEMS, SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM , SEND_DATA_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM, SEND_DESTRUCTION_GENERIC_TO_SYSTEM, SEND_DESTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, BROADCAST_DESTRUCTION_GENERIC_TO_SYSTEM, RELAY_DESTRUCTION_TO_SYSTEMS, SEND_CONSTRUCTION_GENERIC_TO_SYSTEM, SEND_CONSTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM, BROADCAST_CONSTRUCTION_GENERIC_TO_SYSTEM, SEND_CONSTRUCTION_REQUEST_TO_SERVER, BROADCAST_CONSTRUCTION_REQUEST_ACCEPTED_TO_SYSTEM, SEND_CONSTRUCTION_REPLY_ACCEPTED_TO_CLIENT, SEND_CONSTRUCTION_REPLY_DENIED_TO_CLIENT, SEND_VISIBILITY_TRUE_TO_SYSTEM, BROADCAST_VISIBILITY_TRUE_TO_SYSTEM, SEND_VISIBILITY_FALSE_TO_SYSTEM, BROADCAST_VISIBILITY_FALSE_TO_SYSTEM, RELAY_VISIBILITY_TRUE_TO_SYSTEMS, RELAY_VISIBILITY_FALSE_TO_SYSTEMS, AUTOSERIALIZE_RESYNCH_ONLY, AUTOSERIALIZE_DEFAULT, UNDEFINED_REASON }
enum | RM3ConstructionState { RM3CS_SEND_CONSTRUCTION, RM3CS_ALREADY_EXISTS_REMOTELY, RM3CS_NEVER_CONSTRUCT, RM3CS_NO_ACTION }
| Return codes for Connection_RM3::GetConstructionState() and Replica3::QueryConstruction(). More...
enum | RM3DestructionState { RM3DS_SEND_DESTRUCTION, RM3DS_DO_NOT_QUERY_DESTRUCTION, RM3DS_NO_ACTION }
enum | RM3SerializationResult { RM3SR_BROADCAST_IDENTICALLY, RM3SR_BROADCAST_IDENTICALLY_FORCE_SERIALIZATION, RM3SR_SERIALIZED_UNIQUELY, RM3SR_SERIALIZED_ALWAYS, RM3SR_SERIALIZED_ALWAYS_IDENTICALLY, RM3SR_DO_NOT_SERIALIZE, RM3SR_NEVER_SERIALIZE_FOR_THIS_CONNECTION }
enum | RM3QuerySerializationResult { RM3QSR_CALL_SERIALIZE, RM3QSR_DO_NOT_CALL_SERIALIZE, RM3QSR_NEVER_CALL_SERIALIZE }
enum | RPCErrorCodes { RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP, RPC_ERROR_STACK_TOO_SMALL, RPC_ERROR_STACK_DESERIALIZATION_FAILED, RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP }
| Error codes returned by a remote system as to why an RPC function call cannot execute. More...
enum | Lobby2MessageID
enum | RPCErrorCodes { RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP, RPC_ERROR_STACK_TOO_SMALL, RPC_ERROR_STACK_DESERIALIZATION_FAILED, RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE, RPC_ERROR_OBJECT_DOES_NOT_EXIST, RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE, RPC_ERROR_FUNCTION_NOT_REGISTERED, RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED, RPC_ERROR_CALLING_CPP_AS_C, RPC_ERROR_CALLING_C_AS_CPP }
| Error codes returned by a remote system as to why an RPC function call cannot execute. More...
## Functions
RakNetTime RAK_DLL_EXPORT | GetTime (void)
| Returns the value from QueryPerformanceCounter. This is the function RakNet uses to represent time. Should be renamed GetTimeMS.
RakNetTimeUS RAK_DLL_EXPORT | GetTimeNS (void)
bool RAK_DLL_EXPORT | CanConnect (NATTypeDetectionResult type1, NATTypeDetectionResult type2)
RAK_DLL_EXPORT const char * | NATTypeDetectionResultToString (NATTypeDetectionResult type)
| Return a technical string representin the enumeration.
RAK_DLL_EXPORT const char * | NATTypeDetectionResultToStringFriendly (NATTypeDetectionResult type)

## Detailed Description

Forward declaration.

Forward declarations.

The namespace RakNet is not consistently used. It's only purpose is to avoid compiler errors for classes whose names are very common. For the most part I've tried to avoid this simply by using names very likely to be unique for my classes.

## Enumeration Type Documentation

anonymous enum

Enumerator:

  SEND_SERIALIZATION_GENERIC_TO_SYSTEM | Serialization command initiated by the user.
  BROADCAST_SERIALIZATION_GENERIC_TO_SYSTEM | Serialization command initiated by the user.
  SEND_SERIALIZATION_CONSTRUCTION_TO_SYSTEM | Serialization command automatically called after sending construction of the object.
  BROADCAST_SERIALIZATION_CONSTRUCTION_TO_SYSTEM | Serialization command automatically called after sending construction of the object.
  SEND_AUTO_SERIALIZE_TO_SYSTEM | Automatic serialization of data, based on Replica2::AddAutoSerializeTimer.
  BROADCAST_AUTO_SERIALIZE_TO_SYSTEM | Automatic serialization of data, based on Replica2::AddAutoSerializeTimer.
  RELAY_SERIALIZATION_TO_SYSTEMS | Received a serialization command, relaying to systems other than the sender.
  SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM | If SetAutoAddNewConnections is true, this is the command sent when sending all game objects to new connections automatically.
  SEND_DATA_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM | The data portion of the game download, preceeded by SEND_CONSTRUCTION_SERIALIZATION_AUTO_INITIAL_DOWNLOAD_TO_SYSTEM.
  SEND_DESTRUCTION_GENERIC_TO_SYSTEM | Default reason to send a destruction command.
  SEND_DESTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM | Triggered by ReplicaManager2::RecalculateVisibility - A replica is now never constructed, so needs to be destroyed.
  BROADCAST_DESTRUCTION_GENERIC_TO_SYSTEM | Triggered by Replica2::BroadcastDestruction.
  RELAY_DESTRUCTION_TO_SYSTEMS | Received destruction message, relaying to other systems.
  SEND_CONSTRUCTION_GENERIC_TO_SYSTEM | Default reason to send a construction command.
  SEND_CONSTRUCTION_VISIBILITY_RECALCULATION_TO_SYSTEM | Triggered by ReplicaManager2::RecalculateVisibility - A replica is now always constructed, so needs to be created.
  BROADCAST_CONSTRUCTION_GENERIC_TO_SYSTEM | Triggered by Replica2::BroadcastConstruction().
  SEND_CONSTRUCTION_REQUEST_TO_SERVER | Replica2::QueryIsConstructionAuthority()==false yet we called ReplicaManager2::SendConstruction().
  BROADCAST_CONSTRUCTION_REQUEST_ACCEPTED_TO_SYSTEM | A non-authority object was created by a client, accepted, and is now relayed to all other connected systems.
  SEND_CONSTRUCTION_REPLY_ACCEPTED_TO_CLIENT | A non-authority object was created by a client, accepted.
  SEND_CONSTRUCTION_REPLY_DENIED_TO_CLIENT | A non-authority object was created by a client, denied.
  SEND_VISIBILITY_TRUE_TO_SYSTEM | An object is visible.
  BROADCAST_VISIBILITY_TRUE_TO_SYSTEM | An object is visible.
  SEND_VISIBILITY_FALSE_TO_SYSTEM | An object is not visible.
  BROADCAST_VISIBILITY_FALSE_TO_SYSTEM | An object is not visible.
  RELAY_VISIBILITY_TRUE_TO_SYSTEMS | An object is visible, and we are telling other systems about this.
  RELAY_VISIBILITY_FALSE_TO_SYSTEMS | An object is visible, and we are telling other systems about this.
  AUTOSERIALIZE_RESYNCH_ONLY | Calling Replica2::Serialize() for the purpose of reading memory to compare against later. This read will not be transmitted.
  AUTOSERIALIZE_DEFAULT | Calling Replica2::Serialize() to compare against a prior call. The serialization may be transmitted.
  UNDEFINED_REASON | Start your own reasons one unit past this enum.

enum RakNet::NATTypeDetectionResult

All possible types of NATs (except NAT_TYPE_COUNT, which is an internal value).

Enumerator:

  NAT_TYPE_NONE | Works with anyone.
  NAT_TYPE_FULL_CONE | Accepts any datagrams to a port that has been previously used. Will accept the first datagram from the remote peer.
  NAT_TYPE_ADDRESS_RESTRICTED | Accepts datagrams to a port as long as the datagram source IP address is a system we have already sent to. Will accept the first datagram if both systems send simultaneously. Otherwise, will accept the first datagram after we have sent one datagram.
  NAT_TYPE_PORT_RESTRICTED | Same as address-restricted cone NAT, but we had to send to both the correct remote IP address and correct remote port. The same source address and port to a different destination uses the same mapping.
  NAT_TYPE_SYMMETRIC | A different port is chosen for every remote destination. The same source address and port to a different destination uses a different mapping. Since the port will be different, the first external punchthrough attempt will fail. For this to work it requires port-prediction (MAX_PREDICTIVE_PORT_RANGE>1) and that the router chooses ports sequentially.
  NAT_TYPE_UNKNOWN | Hasn't been determined. NATTypeDetectionClient does not use this, but other plugins might.
  NAT_TYPE_DETECTION_IN_PROGRESS | In progress. NATTypeDetectionClient does not use this, but other plugins might.
  NAT_TYPE_SUPPORTS_UPNP | Didn't bother figuring it out, as we support UPNP, so it is equivalent to NAT_TYPE_NONE. NATTypeDetectionClient does not use this, but other plugins might.

enum RakNet::RPCErrorCodes

Error codes returned by a remote system as to why an RPC function call cannot execute Follows packet ID ID_RPC_REMOTE_ERROR Name of the function will be appended, if available. Read as follows: char outputBuff[256]; stringCompressor->DecodeString(outputBuff,256,&RakNet::BitStream(p->data+sizeof(MessageID)+1,p->length-sizeof(MessageID)-1,false),0); printf("Function: %s\n", outputBuff);

Enumerator:

  RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE | AutoRPC::SetNetworkIDManager() was not called, and it must be called to call a C++ object member. RPC3::SetNetworkIDManager() was not called, and it must be called to call a C++ object member.
  RPC_ERROR_OBJECT_DOES_NOT_EXIST | Cannot execute C++ object member call because the object specified by SetRecipientObject() does not exist on this system.
  RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE | Internal error, index optimization for function lookup does not exist.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED | Named function was registered, but later unregistered with UnregisterFunction() and can no longer be called.
  RPC_ERROR_CALLING_CPP_AS_C | SetRecipientObject() was not called before Call(), but RegisterFunction() was called with isObjectMember=true If you intended to call a CPP function, call SetRecipientObject() with a valid object first. SetRecipientObject() was not called before Call(), but the registered pointer is a class member If you intended to call a class member function, call SetRecipientObject() with a valid object first.
  RPC_ERROR_CALLING_C_AS_CPP | SetRecipientObject() was called before Call(), but RegisterFunction() was called with isObjectMember=false If you intended to call a C function, call SetRecipientObject(UNASSIGNED_NETWORK_ID) first.
  RPC_ERROR_STACK_TOO_SMALL | Internal error, passed stack is bigger than current stack. Check that the version is the same on both systems.
  RPC_ERROR_STACK_DESERIALIZATION_FAILED | Internal error, formatting error with how the stack was serialized.
  RPC_ERROR_INCORRECT_NUMBER_OF_PARAMETERS | The parameterCount parameter passed to RegisterFunction() on this system does not match the parameterCount parameter passed to SendCall() on the remote system.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_NETWORK_ID_MANAGER_UNAVAILABLE | AutoRPC::SetNetworkIDManager() was not called, and it must be called to call a C++ object member. RPC3::SetNetworkIDManager() was not called, and it must be called to call a C++ object member.
  RPC_ERROR_OBJECT_DOES_NOT_EXIST | Cannot execute C++ object member call because the object specified by SetRecipientObject() does not exist on this system.
  RPC_ERROR_FUNCTION_INDEX_OUT_OF_RANGE | Internal error, index optimization for function lookup does not exist.
  RPC_ERROR_FUNCTION_NOT_REGISTERED | Named function was not registered with RegisterFunction(). Check your spelling.
  RPC_ERROR_FUNCTION_NO_LONGER_REGISTERED | Named function was registered, but later unregistered with UnregisterFunction() and can no longer be called.
  RPC_ERROR_CALLING_CPP_AS_C | SetRecipientObject() was not called before Call(), but RegisterFunction() was called with isObjectMember=true If you intended to call a CPP function, call SetRecipientObject() with a valid object first. SetRecipientObject() was not called before Call(), but the registered pointer is a class member If you intended to call a class member function, call SetRecipientObject() with a valid object first.
  RPC_ERROR_CALLING_C_AS_CPP | SetRecipientObject() was called before Call(), but RegisterFunction() was called with isObjectMember=false If you intended to call a C function, call SetRecipientObject(UNASSIGNED_NETWORK_ID) first.

## Function Documentation

bool RAK_DLL_EXPORT RakNet::CanConnect | ( | NATTypeDetectionResult | type1,
|  | NATTypeDetectionResult | type2 |
| ) |  |  |

Returns:
  Can one system with NATTypeDetectionResult type1 connect to type2

RakNetTime RAK_DLL_EXPORT RakNet::GetTime | ( | void |  | ) |

Returns the value from QueryPerformanceCounter. This is the function RakNet uses to represent time. Should be renamed GetTimeMS.

Note:
  This time won't match the time returned by GetTimeCount(). See http://www.jenkinssoftware.com/forum/index.php?topic=2798.0

RakNetTimeUS RAK_DLL_EXPORT RakNet::GetTimeNS | ( | void |  | ) |

Should be renamed GetTimeUS

Note:
  The maximum delta between returned calls is 1 second - however, RakNet calls this constantly anyway. See NormalizeTime() in the cpp.

RAK_DLL_EXPORT const char* RakNet::NATTypeDetectionResultToStringFriendly | ( | NATTypeDetectionResult | type | ) |

Return a friendly string representing the enumeration None and relaxed can connect to anything Moderate can connect to moderate or less Strict can connect to relaxed or less