Files
Archimedes/src/Module.h
2025-03-14 22:16:36 -05:00

34 lines
633 B
C++

#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<Module*>::iterator s) { self = s; }
protected:
std::string name;
void* handle;
std::list<Module*>::iterator self;
App& app;
};
#endif