static modules list failed

This commit is contained in:
2025-03-29 20:03:05 -05:00
parent dc389ef0c5
commit ea67c91a4f
3 changed files with 3 additions and 14 deletions

View File

@@ -11,17 +11,13 @@ namespace Archimedes {
friend class App; friend class App;
public: public:
typedef Module* create_t(void*, App*); typedef Module* create_t(void*, App*);
static std::list<std::string*> modules; Module(void* h, App* a) : handle(h), app(a) {}
static std::list<std::string*>& GetModules() { return modules; }
Module(void* h, App* a) : handle(h), app(a) { modules.push_back(&name); }
virtual ~Module() { modules.remove_if([this](std::string* s) -> bool { return s ? *s == name : false; }); } virtual ~Module() {}
virtual void run() = 0; virtual void run() = 0;
virtual void onLoad() = 0; virtual void onLoad() = 0;
@@ -42,6 +38,4 @@ namespace Archimedes {
}; };
} }
auto Archimedes::Module::modules = std::list<std::string*>();
#endif #endif

View File

@@ -11,8 +11,5 @@ Print::~Print() {
void Print::run() { void Print::run() {
std::cout << "Print lib loaded and run!\n"; std::cout << "Print lib loaded and run!\n";
for(auto m : Archimedes::Module::GetModules())
std::cout << m << std::endl;
app->stopModule(self); app->stopModule(self);
} }

View File

@@ -6,8 +6,6 @@ void MinimalApp::run() {
for(auto* m : modules) for(auto* m : modules)
m->onLoad(); m->onLoad();
for(auto* s : Archimedes::Module::modules)
std::cout << "Module: " << (s ? *s : "nullptr") << std::endl;
// Main loop // Main loop
while (!done && !modules.empty()) { while (!done && !modules.empty()) {