static modules list failed
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()) {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user