work on MinimalApp

This commit is contained in:
2025-03-29 17:49:17 -05:00
parent db9b8cc924
commit 00727469e2
4 changed files with 45 additions and 60 deletions

View File

@@ -35,8 +35,7 @@
buildPhase = '' buildPhase = ''
clang++ \ clang++ \
src/*.cpp \ src/example_apps/MinimalApp/*.cpp \
example_apps/MinimalApp/MinimalApp.cpp \
include/utils/App/*.cpp \ include/utils/App/*.cpp \
-I src -I include \ -I src -I include \
-Wall \ -Wall \

View File

@@ -20,8 +20,6 @@ namespace Archimedes {
virtual bool load(std::string, std::list<std::string>); virtual bool load(std::string, std::list<std::string>);
virtual void unload(std::list<Module*>::iterator); virtual void unload(std::list<Module*>::iterator);
virtual void handleArgs(const int&, char*[]) = 0;
virtual void printHelp() = 0; virtual void printHelp() = 0;
std::list<std::string> getBlacklist() { std::list<std::string> getBlacklist() {
@@ -37,6 +35,8 @@ namespace Archimedes {
static App* Get() { return instance; } static App* Get() { return instance; }
virtual void handleArgs(const int&, char*[]) = 0;
virtual void run() = 0; virtual void run() = 0;
virtual void stopModule(std::list<Module*>::iterator); virtual void stopModule(std::list<Module*>::iterator);

View File

@@ -1,41 +1,29 @@
#include "MinimalApp.h" #include "MinimalApp.h"
namespace Archimedes { void MinimalApp::run() {
std::cout << "\nTesting...\n";
for(auto* m : modules)
m->onLoad();
MinimalApp::MinimalApp() : App() { for(auto* s : Archimedes::Module::GetModules())
std::cout << "Module: " << (s ? *s : "nullptr") << std::endl;
// Main loop
while (!done && !modules.empty()) {
} for(auto* m : modules) {
m->run();
MinimalApp::~MinimalApp() {
}
void MinimalApp::run() {
std::cout << "\nTesting...\n";
for(auto* m : modules)
m->onLoad();
for(auto* s : Archimedes::Module::GetModules())
std::cout << "Module: " << (s ? *s : "nullptr") << std::endl;
// Main loop
while (!done && !modules.empty()) {
for(auto* m : modules) {
m->run();
}
for(auto it = toClose.begin(); it != toClose.end(); it++) {
unload(it);
}
toClose.clear();
for(std::string s : toOpen) {
load(s, getBlacklist());
}
toOpen.clear();
} }
for(auto it = toClose.begin(); it != toClose.end(); it++) {
unload(it);
}
toClose.clear();
for(std::string s : toOpen) {
load(s, getBlacklist());
}
toOpen.clear();
} }
} }

View File

@@ -1,32 +1,30 @@
#ifndef MINIMALAPP_H #define APP_TYPE MinimalApp
#define MINIMALAPP_H #include "Archimedes.h"
#include "pch.hpp" class MinimalApp : public Archimedes::App {
#include "utils/App/App.h"
#include "utils/Module/Module.h"
namespace Archimedes { private:
class MinimalApp : public App { void printHelp() {};
private: public:
MinimalApp() {};
~MinimalApp() {};
void handleArgs(const int&, char*[]) {}; void handleArgs(const int& argc, char* argv[]) {
if(argc > 1) {
for(int i = 0; i < argc; i++)
load(argv[i], getBlacklist());
} else {
std::cout << "No modules to load\n";
end();
}
};
void printHelp() {}; void run();
public: void stopModule(std::list<Archimedes::Module*>::iterator);
MinimalApp();
~MinimalApp();
void run(); void startModule(std::string);
void stopModule(std::list<Module*>::iterator); };
void startModule(std::string);
};
}
#endif