#ifndef MODULE_H #define MODULE_H #include "pch.hpp" class App; class Module { friend class App; public: typedef Module* create_t(void*, App&); typedef void* destroy_t(Module*); Module(void* h, App& a) : handle(h), app(a) {}; virtual ~Module() {} virtual void run() = 0; std::string getName() const { return name; } void* getHandle() { return handle; } void setSelf(std::list::iterator s) { self = s; } protected: std::string name; void* handle; std::list::iterator self; App& app; }; #endif