#include"Managers/ActionManager.h" #include #include #include #include using std::cout; using std::endl; using std::string; using std::vector; using Models::Flags; using Models::IcarusAction; namespace Managers { #pragma ActionManager::ActionManager(char **param) { this->params = param; initialize(); } #pragma Constructors #pragma IcarusAction ActionManager::retrieveIcarusAction() const { auto icarusAction = IcarusAction{}; icarusAction.flags = flags; icarusAction.action = action; return icarusAction; } vector ActionManager::retrieveFlags() const { return flags; } string ActionManager::retrieveAction() const { return action; } bool ActionManager::isNumber(string val) { return !val.empty() && std::find_if(val.begin(), val.end(), [](char c) { return !std::isdigit(c); }) == val.end(); } void ActionManager::initialize() { validateFlags(); action = string{params[1]}; transform(action.begin(), action.end(), action.begin(), ::tolower); } void ActionManager::validateAction() { cout<<"Validating action"< 3 || isNumber(flag)) { flg.value = flag; //cout<<"flag value "< ActionManager::parsedFlags() { auto parsed = vector{}; try { for (auto i = 2; true; ++i) { string val{*(params + i)}; //cout<<"Parsed flag "< flagVals) { if (flagVals.empty()) { printf("Flags and values are empty\n"); } else { printf("Printing flags and values..\n"); for (auto flgVal : flagVals) { cout<