#ifndef APP_H #define APP_H #include "pch.hpp" #include "utils/Module/Module.h" namespace Archimedes { class App { protected: static App* instance; bool done = false; std::list modules; std::list toClose; std::list toOpen; virtual bool load(std::string, std::list); virtual void unload(std::list::iterator); virtual void handleArgs(const int&, char*[]); virtual void printHelp(); std::list getBlacklist() { std::list l; for(Module* m : modules) l.push_back(m->getName()); return l; } public: App(const int&, char*[]); ~App(); static App& Get() { return *instance; } void run(); void stopModule(std::list::iterator); void startModule(std::string); void end() { done = true; } }; } #endif