Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes

CommandParserInterface Class Reference

The interface used by command parsers. More...

#include <CommandParserInterface.h>

Inherited by LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.

Collaboration diagram for CommandParserInterface:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CommandParserInterface ()
virtual ~CommandParserInterface ()
virtual const char * GetName (void) const =0
virtual void OnNewIncomingConnection (SystemAddress systemAddress, TransportInterface *transport)
 A callback for when systemAddress has connected to us.
virtual void OnConnectionLost (SystemAddress systemAddress, TransportInterface *transport)
 A callback for when systemAddress has disconnected, either gracefully or forcefully.
virtual void SendHelp (TransportInterface *transport, SystemAddress systemAddress)=0
 A callback for when you are expected to send a brief description of your parser to systemAddress.
virtual bool OnCommand (const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, SystemAddress systemAddress, const char *originalString)=0
 Given command with parameters parameterList , do whatever processing you wish.
virtual void OnTransportChange (TransportInterface *transport)
 This is called every time transport interface is registered.
virtual bool GetRegisteredCommand (const char *command, RegisteredCommand *rc)
virtual void SendCommandList (TransportInterface *transport, SystemAddress systemAddress)
virtual void RegisterCommand (unsigned char parameterCount, const char *command, const char *commandHelp)
virtual void ReturnResult (bool res, const char *command, TransportInterface *transport, SystemAddress systemAddress)
 Just writes a string to the remote system based on the result ( res ) of your operation.
virtual void ReturnResult (char *res, const char *command, TransportInterface *transport, SystemAddress systemAddress)
virtual void ReturnResult (SystemAddress res, const char *command, TransportInterface *transport, SystemAddress systemAddress)
virtual void ReturnResult (int res, const char *command, TransportInterface *transport, SystemAddress systemAddress)
virtual void ReturnResult (const char *command, TransportInterface *transport, SystemAddress systemAddress)
 Just writes a string to the remote system when you are calling a function that has no return value.
SystemAddress IntegersToSystemAddress (int binaryAddress, int port)
 Since there's no way to specify a systemAddress directly, the user needs to specify both the binary address and port.

Static Public Member Functions

static void ParseConsoleString (char *str, const char delineator, unsigned char delineatorToggle, unsigned *numParameters, char **parameterList, unsigned parameterListLength)

Static Public Attributes

static const unsigned char VARIABLE_NUMBER_OF_PARAMETERS = 255

Protected Attributes

DataStructures::OrderedList
< const char
*, RegisteredCommand,
RegisteredCommandComp > 
commandList

Detailed Description

The interface used by command parsers.

CommandParserInterface provides a set of functions and interfaces that plug into the ConsoleServer class. Each CommandParserInterface works at the same time as other interfaces in the system.

Definition at line 35 of file CommandParserInterface.h.


Constructor & Destructor Documentation

CommandParserInterface::CommandParserInterface (  ) 

Definition at line 31 of file CommandParserInterface.cpp.

CommandParserInterface::~CommandParserInterface (  )  [virtual]

Definition at line 32 of file CommandParserInterface.cpp.


Member Function Documentation

virtual const char* CommandParserInterface::GetName ( void   )  const [pure 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.

Implemented in LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.

Here is the caller graph for this function:

bool CommandParserInterface::GetRegisteredCommand ( const char *  command,
RegisteredCommand rc 
) [virtual]

Definition at line 104 of file CommandParserInterface.cpp.

Here is the call graph for this function:

SystemAddress CommandParserInterface::IntegersToSystemAddress ( int  binaryAddress,
int  port 
)

Since there's no way to specify a systemAddress directly, the user needs to specify both the binary address and port.

Given those parameters, this returns the corresponding SystemAddress

Parameters:
[in] binaryAddress The binaryAddress portion of SystemAddress
[in] port The port portion of SystemAddress

Definition at line 157 of file CommandParserInterface.cpp.

Here is the caller graph for this function:

virtual bool CommandParserInterface::OnCommand ( const char *  command,
unsigned  numParameters,
char **  parameterList,
TransportInterface transport,
SystemAddress  systemAddress,
const char *  originalString 
) [pure 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

Implemented in LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.

void CommandParserInterface::OnConnectionLost ( 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 in LogCommandParser.

Definition at line 122 of file CommandParserInterface.cpp.

void CommandParserInterface::OnNewIncomingConnection ( 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 in LogCommandParser.

Definition at line 117 of file CommandParserInterface.cpp.

void CommandParserInterface::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 in LogCommandParser.

Definition at line 113 of file CommandParserInterface.cpp.

Here is the caller graph for this function:

void CommandParserInterface::ParseConsoleString ( char *  str,
const char  delineator,
unsigned char  delineatorToggle,
unsigned *  numParameters,
char **  parameterList,
unsigned  parameterListLength 
) [static]

Definition at line 34 of file CommandParserInterface.cpp.

Here is the caller graph for this function:

void CommandParserInterface::RegisterCommand ( unsigned char  parameterCount,
const char *  command,
const char *  commandHelp 
) [virtual]

Registers a command.

Parameters:
[in] parameterCount How many parameters your command requires. If you want to accept a variable number of commands, pass CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS
[in] command A pointer to a STATIC string that has your command. I keep a copy of the pointer here so don't deallocate the string.
[in] commandHelp A pointer to a STATIC string that has the help information for your command. I keep a copy of the pointer here so don't deallocate the string.

Definition at line 96 of file CommandParserInterface.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CommandParserInterface::ReturnResult ( char *  res,
const char *  command,
TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Definition at line 142 of file CommandParserInterface.cpp.

Here is the call graph for this function:

void CommandParserInterface::ReturnResult ( int  res,
const char *  command,
TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Definition at line 134 of file CommandParserInterface.cpp.

Here is the call graph for this function:

void CommandParserInterface::ReturnResult ( SystemAddress  res,
const char *  command,
TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Definition at line 146 of file CommandParserInterface.cpp.

Here is the call graph for this function:

void CommandParserInterface::ReturnResult ( const char *  command,
TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Just writes a string to the remote system when you are calling a function that has no return value.

This is not necessary to call, but makes it easier to return results of function calls.

Parameters:
[in] res The result to write
[in] command The command that this result came from
[in] transport The transport interface that will be written to
[in] systemAddress The player this result will be sent to

Definition at line 138 of file CommandParserInterface.cpp.

Here is the call graph for this function:

void CommandParserInterface::ReturnResult ( bool  res,
const char *  command,
TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Just writes a string to the remote system based on the result ( res ) of your operation.

This is not necessary to call, but makes it easier to return results of function calls.

Parameters:
[in] res The result to write
[in] command The command that this result came from
[in] transport The transport interface that will be written to
[in] systemAddress The player this result will be sent to

Definition at line 127 of file CommandParserInterface.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void CommandParserInterface::SendCommandList ( TransportInterface transport,
SystemAddress  systemAddress 
) [virtual]

Definition at line 80 of file CommandParserInterface.cpp.

Here is the call graph for this function:

virtual void CommandParserInterface::SendHelp ( TransportInterface transport,
SystemAddress  systemAddress 
) [pure 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.

Implemented in LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.


Member Data Documentation

DataStructures::OrderedList<const char*, RegisteredCommand, RegisteredCommandComp> CommandParserInterface::commandList [protected]

Definition at line 139 of file CommandParserInterface.h.

const unsigned char CommandParserInterface::VARIABLE_NUMBER_OF_PARAMETERS = 255 [static]

Definition at line 99 of file CommandParserInterface.h.


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