Files
Archimedes/example_apps/MinimalApp/MinimalApp.h
2025-03-27 13:15:30 -05:00

52 lines
1.0 KiB
C++

#ifndef APP_H
#define APP_H
#include "pch.hpp"
#include "utils/Module/Module.h"
namespace Archimedes {
class App {
private:
static App* instance;
bool done = false;
std::list<Module*> modules;
std::list<Module*> toClose;
std::list<std::string> toOpen;
bool load(std::string, std::list<std::string>);
void unload(std::list<Module*>::iterator);
void handleArgs(const int&, char*[]);
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