The interface used by command parsers. More...
#include <CommandParserInterface.h>
Inherited by LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.
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 |
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.
CommandParserInterface::CommandParserInterface | ( | ) |
Definition at line 31 of file CommandParserInterface.cpp.
CommandParserInterface::~CommandParserInterface | ( | ) | [virtual] |
Definition at line 32 of file CommandParserInterface.cpp.
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
Implemented in LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.
bool CommandParserInterface::GetRegisteredCommand | ( | const char * | command, | |
RegisteredCommand * | rc | |||
) | [virtual] |
Definition at line 104 of file CommandParserInterface.cpp.
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
[in] | binaryAddress | The binaryAddress portion of SystemAddress |
[in] | port | The port portion of SystemAddress |
Definition at line 157 of file CommandParserInterface.cpp.
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.
[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.
[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.
[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
[in] | transport | The new TransportInterface |
Reimplemented in LogCommandParser.
Definition at line 113 of file CommandParserInterface.cpp.
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.
void CommandParserInterface::RegisterCommand | ( | unsigned char | parameterCount, | |
const char * | command, | |||
const char * | commandHelp | |||
) | [virtual] |
Registers a command.
[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.
void CommandParserInterface::ReturnResult | ( | char * | res, | |
const char * | command, | |||
TransportInterface * | transport, | |||
SystemAddress | systemAddress | |||
) | [virtual] |
Definition at line 142 of file CommandParserInterface.cpp.
void CommandParserInterface::ReturnResult | ( | int | res, | |
const char * | command, | |||
TransportInterface * | transport, | |||
SystemAddress | systemAddress | |||
) | [virtual] |
Definition at line 134 of file CommandParserInterface.cpp.
void CommandParserInterface::ReturnResult | ( | SystemAddress | res, | |
const char * | command, | |||
TransportInterface * | transport, | |||
SystemAddress | systemAddress | |||
) | [virtual] |
Definition at line 146 of file CommandParserInterface.cpp.
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.
[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.
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.
[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.
void CommandParserInterface::SendCommandList | ( | TransportInterface * | transport, | |
SystemAddress | systemAddress | |||
) | [virtual] |
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.
[in] | transport | The transport interface we can use to write to |
[in] | systemAddress | The player that requested help. |
Implemented in LogCommandParser, RakNetCommandParser, and RakNetTransportCommandParser.
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.