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 = ''
clang++ \
src/*.cpp \
example_apps/MinimalApp/MinimalApp.cpp \
src/example_apps/MinimalApp/*.cpp \
include/utils/App/*.cpp \
-I src -I include \
-Wall \

View File

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

View File

@@ -1,41 +1,29 @@
#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()) {
}
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* 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();
}
}

View File

@@ -1,32 +1,30 @@
#ifndef MINIMALAPP_H
#define MINIMALAPP_H
#define APP_TYPE MinimalApp
#include "Archimedes.h"
#include "pch.hpp"
#include "utils/App/App.h"
#include "utils/Module/Module.h"
class MinimalApp : public Archimedes::App {
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:
MinimalApp();
~MinimalApp();
void stopModule(std::list<Archimedes::Module*>::iterator);
void run();
void startModule(std::string);
void stopModule(std::list<Module*>::iterator);
void startModule(std::string);
};
}
#endif
};