AceUtils  0.3
Useful Arduino utilties which are too small as separate libraries, but complex enough to have external dependencies to other libraries.
Public Member Functions | Protected Member Functions | Static Protected Member Functions | List of all members
cli::CommandHandler Class Referenceabstract

Signature for a command handler. More...

#include <CommandHandler.h>

Public Member Functions

virtual void run (Print &printer, int argc, const char *const *argv) const =0
 Run the command. More...
 
ace_common::FCString getName () const
 Return the name of the command.
 
ace_common::FCString getHelpString () const
 Return the help string of the command.
 

Protected Member Functions

 CommandHandler (const char *name, const char *helpString)
 Constructor. More...
 
 CommandHandler (const __FlashStringHelper *name, const __FlashStringHelper *helpString)
 Constructor. More...
 

Static Protected Member Functions

static bool isArgEqual (const char *arg, const char *token)
 Test for equality against token.
 
static bool isArgEqual (const char *arg, const __FlashStringHelper *token)
 Test for equality when token is in PROGMEM.
 

Detailed Description

Signature for a command handler.

Definition at line 46 of file CommandHandler.h.

Constructor & Destructor Documentation

◆ CommandHandler() [1/2]

cli::CommandHandler::CommandHandler ( const char *  name,
const char *  helpString 
)
inlineprotected

Constructor.

Using C strings.

Definition at line 84 of file CommandHandler.h.

◆ CommandHandler() [2/2]

cli::CommandHandler::CommandHandler ( const __FlashStringHelper *  name,
const __FlashStringHelper *  helpString 
)
inlineprotected

Constructor.

Using Flash strings.

Definition at line 89 of file CommandHandler.h.

Member Function Documentation

◆ run()

virtual void cli::CommandHandler::run ( Print &  printer,
int  argc,
const char *const *  argv 
) const
pure virtual

Run the command.

Parameters
printerThe output printer, normally Serial. This is not expected to change during the lifetime of the CommandHandler instance, so normally I would inject this parameter into the object. However, that would cause each instance to consume 2 more bytes, even though all instances are expected to have the same 'printer'. For an 8-bit AVR processor with only 2kB of RAM, every byte is important , so I am keeping this as a parameter passed into the run() method.
argcNumber of tokens in the input command, including the name of the command itself.
argvAn array of strings for each token.

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