Files
Archimedes/include/utils/App/App.h
2025-03-27 13:15:30 -05:00

52 lines
1.1 KiB
C++

#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<Module*> modules;
std::list<Module*> toClose;
std::list<std::string> toOpen;
virtual bool load(std::string, std::list<std::string>);
virtual void unload(std::list<Module*>::iterator);
virtual void handleArgs(const int&, char*[]);
virtual void printHelp();
std::list<std::string> getBlacklist() {
std::list<std::string> 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<Module*>::iterator);
void startModule(std::string);
void end() { done = true; }
};
}
#endif