diff --git a/include/utils/Module/Module.h b/include/utils/Module/Module.h index 222d10a..b5c0380 100644 --- a/include/utils/Module/Module.h +++ b/include/utils/Module/Module.h @@ -11,17 +11,13 @@ namespace Archimedes { friend class App; - public: + typedef Module* create_t(void*, App*); - static std::list modules; - - static std::list& GetModules() { return modules; } - - Module(void* h, App* a) : handle(h), app(a) { modules.push_back(&name); } + Module(void* h, App* a) : handle(h), app(a) {} - virtual ~Module() { modules.remove_if([this](std::string* s) -> bool { return s ? *s == name : false; }); } + virtual ~Module() {} virtual void run() = 0; virtual void onLoad() = 0; @@ -42,6 +38,4 @@ namespace Archimedes { }; } -auto Archimedes::Module::modules = std::list(); - #endif diff --git a/modules/Print/src/Print.cpp b/modules/Print/src/Print.cpp index f3a474d..509bf89 100644 --- a/modules/Print/src/Print.cpp +++ b/modules/Print/src/Print.cpp @@ -11,8 +11,5 @@ Print::~Print() { void Print::run() { std::cout << "Print lib loaded and run!\n"; - for(auto m : Archimedes::Module::GetModules()) - std::cout << m << std::endl; - app->stopModule(self); } diff --git a/src/example_apps/MinimalApp/MinimalApp.cpp b/src/example_apps/MinimalApp/MinimalApp.cpp index 104ded8..8d246b4 100644 --- a/src/example_apps/MinimalApp/MinimalApp.cpp +++ b/src/example_apps/MinimalApp/MinimalApp.cpp @@ -6,8 +6,6 @@ void MinimalApp::run() { for(auto* m : modules) m->onLoad(); - for(auto* s : Archimedes::Module::modules) - std::cout << "Module: " << (s ? *s : "nullptr") << std::endl; // Main loop while (!done && !modules.empty()) {