AceRoutine
1.0.1
A low-memory, fast-switching, cooperative multitasking library using stackless coroutines on Arduino platforms.
|
25 #ifndef ACE_ROUTINE_COMMAND_HANDLER_H
26 #define ACE_ROUTINE_COMMAND_HANDLER_H
28 #include <AceRoutine.h>
39 #define SHIFT_ARGC_ARGV(argc, argv) do { argc--; argv++; } while (false)
41 namespace ace_routine {
64 virtual void run(Print& printer,
int argc,
const char*
const* argv)
75 static bool isArgEqual(
const char* arg,
const char* token) {
76 return strcmp(arg, token) == 0;
80 static bool isArgEqual(
const char* arg,
const __FlashStringHelper* token) {
81 return strcmp_P(arg, (
const char*) token) == 0;
87 mHelpString(helpString) {}
91 const __FlashStringHelper* helpString):
93 mHelpString(helpString) {}
CommandHandler(const char *name, const char *helpString)
Constructor.
A union of (const char*) and (const __FlashStringHelper*) with a discriminator.
CommandHandler(const __FlashStringHelper *name, const __FlashStringHelper *helpString)
Constructor.
static bool isArgEqual(const char *arg, const __FlashStringHelper *token)
Test for equality when token is in PROGMEM.
static bool isArgEqual(const char *arg, const char *token)
Test for equality against token.
virtual void run(Print &printer, int argc, const char *const *argv) const =0
Run the command.
Signature for a command handler.
FCString getName() const
Return the name of the command.
FCString getHelpString() const
Return the help string of the command.