diff options
Added generic stuff from previous project
1 files changed, 24 insertions, 0 deletions
| -rw-r--r-- | src/Generic/ConsoleInterface/Command.cpp | 24 |
diff --git a/src/Generic/ConsoleInterface/Command.cpp b/src/Generic/ConsoleInterface/Command.cpp new file mode 100644 index 0000000..c14bcc8 --- /dev/null +++ b/src/Generic/ConsoleInterface/Command.cpp @@ -0,0 +1,24 @@ +#include "Command.h" +#include <cstring> + +Command::Command() : Command("", nullptr) {} + +/*! \param nameInMenu C-style string, class stores at most 255 characters (last character is always terminating zero) + * \param exec Function pointer that will be executed when run() is called. Can be nullptr. + */ +Command::Command(const char* nameInMenu, void (*exec)()) { + strncpy(this->nameInMenu, nameInMenu, 255); + this->nameInMenu[255] = '\0'; + this->exec = exec; +} + +/*! Executes the stored function pointer, when it's not nullptr. Otherwise does nothing. + */ +void Command::run() const { + if (exec != nullptr) + exec(); +} + +const char* Command::get_nameInMenu() const { + return nameInMenu; +} |
