#ifndef ACTIONMANAGER_H_ #define ACTIONMANAGER_H_ #include #include #include #include #include"Models/Flags.h" #include"Models/IcarusAction.h" namespace Managers { class ActionManager { public: ActionManager(char**, int); Models::IcarusAction retrieveIcarusAction() const; private: constexpr std::array supportedFlags() noexcept; constexpr std::array supportedActions() noexcept; bool isNumber(const std::string_view) noexcept; void initialize(); void validateFlags(); std::vector parsedFlags(); void printAction() noexcept; void printFlags() noexcept; std::string action; std::vector flags; char **params; int paramCount; }; } #endif