Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Generic / ConsoleInterface / Command.cpp
diff options
context:
space:
mode:
Commit3098e987d83a7fa2ea33e66b901e6941233a9879 (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-28 09:33:26 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-28 09:33:26 +0300
Files8fe54cd3f7c29b24b822762d7249e6310ae97d6a /src/Generic/ConsoleInterface/Command.cpp
FMI-OOP-P2_Tables-3098e987d83a7fa2ea33e66b901e6941233a9879.tar
FMI-OOP-P2_Tables-3098e987d83a7fa2ea33e66b901e6941233a9879.tar.gz
FMI-OOP-P2_Tables-3098e987d83a7fa2ea33e66b901e6941233a9879.zip
Parent12df7aa3b9ec4bc6d9b74ae86ef0248d049f8785 (diff)
Added generic stuff from previous project
1 files changed, 24 insertions, 0 deletions
-rw-r--r--src/Generic/ConsoleInterface/Command.cpp24
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;
+}