From 00727469e25d565791f855a65c16a00da3243832 Mon Sep 17 00:00:00 2001 From: Nathan Date: Sat, 29 Mar 2025 17:49:17 -0500 Subject: [PATCH] work on MinimalApp --- flake.nix | 3 +- include/utils/App/App.h | 4 +- src/example_apps/MinimalApp/MinimalApp.cpp | 52 +++++++++------------- src/example_apps/MinimalApp/MinimalApp.h | 46 +++++++++---------- 4 files changed, 45 insertions(+), 60 deletions(-) diff --git a/flake.nix b/flake.nix index eaaa8cd..a02e9e8 100755 --- a/flake.nix +++ b/flake.nix @@ -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 \ diff --git a/include/utils/App/App.h b/include/utils/App/App.h index 0bc7762..8b9fcf1 100644 --- a/include/utils/App/App.h +++ b/include/utils/App/App.h @@ -20,8 +20,6 @@ namespace Archimedes { virtual bool load(std::string, std::list); virtual void unload(std::list::iterator); - virtual void handleArgs(const int&, char*[]) = 0; - virtual void printHelp() = 0; std::list 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::iterator); diff --git a/src/example_apps/MinimalApp/MinimalApp.cpp b/src/example_apps/MinimalApp/MinimalApp.cpp index 5f581cc..0ee394d 100644 --- a/src/example_apps/MinimalApp/MinimalApp.cpp +++ b/src/example_apps/MinimalApp/MinimalApp.cpp @@ -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(); } + } diff --git a/src/example_apps/MinimalApp/MinimalApp.h b/src/example_apps/MinimalApp/MinimalApp.h index 18fd1eb..dbe06be 100644 --- a/src/example_apps/MinimalApp/MinimalApp.h +++ b/src/example_apps/MinimalApp/MinimalApp.h @@ -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 { - - class MinimalApp : public App { + private: - private: + void printHelp() {}; - void handleArgs(const int&, char*[]) {}; + public: + MinimalApp() {}; + ~MinimalApp() {}; - void printHelp() {}; + 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 run(); - public: - MinimalApp(); - ~MinimalApp(); + void stopModule(std::list::iterator); - void run(); + void startModule(std::string); - void stopModule(std::list::iterator); - - void startModule(std::string); - - }; - -} - -#endif +};