RakNet::LogCommandParser Class Reference

Adds the ability to send logging output to a remote console. More...

#include <LogCommandParser.h>

Inheritance diagram for RakNet::LogCommandParser:

RakNet::CommandParserInterface

List of all members.

Classes

struct  SystemAddressAndChannel
 One of these structures is created per player. More...

Public Member Functions

bool OnCommand (const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString)
const char * GetName (void) const
void SendHelp (TransportInterface *transport, const SystemAddress &systemAddress)
void AddChannel (const char *channelName)
 All logs must be associated with a channel. This is a filter so that remote clients only get logs for a system they care about.
void WriteLog (const char *channelName, const char *format,...)
void OnNewIncomingConnection (const SystemAddress &systemAddress, TransportInterface *transport)
void OnConnectionLost (const SystemAddress &systemAddress, TransportInterface *transport)
void OnTransportChange (TransportInterface *transport)

Protected Member Functions

void PrintChannels (const SystemAddress &systemAddress, TransportInterface *transport) const
unsigned Unsubscribe (const SystemAddress &systemAddress, const char *channelName)
unsigned Subscribe (const SystemAddress &systemAddress, const char *channelName)
unsigned GetChannelIndexFromName (const char *channelName)

Protected Attributes

DataStructures::List
< SystemAddressAndChannel
remoteUsers
 The list of remote users. Added to when users subscribe, removed when they disconnect or unsubscribe.
const char * channelNames [32]
 Names of the channels at each bit, or 0 for an unused channel.
TransportInterfacetrans
 This is so I can save the current transport provider, solely so I can use it without having the user pass it to Log.


Detailed Description

Adds the ability to send logging output to a remote console.

Member Function Documentation

void RakNet::LogCommandParser::AddChannel ( const char *  channelName  ) 

All logs must be associated with a channel. This is a filter so that remote clients only get logs for a system they care about.

Parameters:
[in] channelName A persistent string naming the channel. Don't deallocate this string.

unsigned RakNet::LogCommandParser::GetChannelIndexFromName ( const char *  channelName  )  [protected]

Given the name of a channel, return the index into channelNames where it is located

Parameters:
[in] channelName The name of the channel

const char* RakNet::LogCommandParser::GetName ( void   )  const [virtual]

You are responsible for overriding this function and returning a static string, which will identifier your parser. This should return a static string

Returns:
The name that you return.

Implements RakNet::CommandParserInterface.

bool RakNet::LogCommandParser::OnCommand ( const char *  command,
unsigned  numParameters,
char **  parameterList,
TransportInterface transport,
const SystemAddress systemAddress,
const char *  originalString 
) [virtual]

Given command with parameters parameterList , do whatever processing you wish.

Parameters:
[in] command The command to process
[in] numParameters How many parameters were passed along with the command
[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on.
[in] transport The transport interface we can use to write to
[in] systemAddress The player that sent this command.
[in] originalString The string that was actually sent over the network, in case you want to do your own parsing

Implements RakNet::CommandParserInterface.

void RakNet::LogCommandParser::OnConnectionLost ( const SystemAddress systemAddress,
TransportInterface transport 
) [virtual]

A callback for when systemAddress has disconnected, either gracefully or forcefully

Parameters:
[in] systemAddress The player that has disconnected.
[in] transport The transport interface that sent us this information.

Reimplemented from RakNet::CommandParserInterface.

void RakNet::LogCommandParser::OnNewIncomingConnection ( const SystemAddress systemAddress,
TransportInterface transport 
) [virtual]

A callback for when systemAddress has connected to us.

Parameters:
[in] systemAddress The player that has connected.
[in] transport The transport interface that sent us this information. Can be used to send messages to this or other players.

Reimplemented from RakNet::CommandParserInterface.

void RakNet::LogCommandParser::OnTransportChange ( TransportInterface transport  )  [virtual]

This is called every time transport interface is registered. If you want to save a copy of the TransportInterface pointer This is the place to do it

Parameters:
[in] transport The new TransportInterface

Reimplemented from RakNet::CommandParserInterface.

void RakNet::LogCommandParser::PrintChannels ( const SystemAddress systemAddress,
TransportInterface transport 
) const [protected]

Sends the currently active channels to the user

Parameters:
[in] systemAddress The player to send to
[in] transport The transport interface to use to send the channels

void RakNet::LogCommandParser::SendHelp ( TransportInterface transport,
const SystemAddress systemAddress 
) [virtual]

A callback for when you are expected to send a brief description of your parser to systemAddress

Parameters:
[in] transport The transport interface we can use to write to
[in] systemAddress The player that requested help.

Implements RakNet::CommandParserInterface.

unsigned RakNet::LogCommandParser::Subscribe ( const SystemAddress systemAddress,
const char *  channelName 
) [protected]

Subscribe a user to a channel (or to all channels)

Parameters:
[in] systemAddress The player to subscribe to
[in] channelName If 0, then subscribe from all channels. Otherwise subscribe to the named channel

unsigned RakNet::LogCommandParser::Unsubscribe ( const SystemAddress systemAddress,
const char *  channelName 
) [protected]

Unsubscribe a user from a channel (or from all channels)

Parameters:
[in] systemAddress The player to unsubscribe to
[in] channelName If 0, then unsubscribe from all channels. Otherwise unsubscribe from the named channel

void RakNet::LogCommandParser::WriteLog ( const char *  channelName,
const char *  format,
  ... 
)

Write a log to a channel. Logs are not buffered, so only remote consoles connected and subscribing at the time you write will get the output.

Parameters:
[in] format Same as RAKNET_DEBUG_PRINTF()
[in] ... Same as RAKNET_DEBUG_PRINTF()


The documentation for this class was generated from the following file:

Generated on Wed Feb 1 13:33:47 2012 for RakNet by  doxygen 1.5.7.1