32 lines
614 B
C++
32 lines
614 B
C++
|
|
#pragma once
|
||
|
|
|
||
|
|
#include "core/inc/Types.h"
|
||
|
|
#include "modules/ModuleAPI.h"
|
||
|
|
|
||
|
|
namespace MBFT
|
||
|
|
{
|
||
|
|
class Module
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
void *module_shared_object{nullptr};
|
||
|
|
std::string module_path;
|
||
|
|
|
||
|
|
void (*loaded_init)(void){nullptr};
|
||
|
|
void (*loaded_process)(MBFT::ModuleAPI& api, const MBFT::InboundMessage& message){nullptr};
|
||
|
|
|
||
|
|
bool enabled{true};
|
||
|
|
public:
|
||
|
|
Module(const std::string& module_path);
|
||
|
|
~Module(void);
|
||
|
|
void load(void);
|
||
|
|
void unload(void);
|
||
|
|
void reload(void);
|
||
|
|
|
||
|
|
void disable(void);
|
||
|
|
void enable(void);
|
||
|
|
|
||
|
|
void init(void);
|
||
|
|
void process(MBFT::ModuleAPI& api, const MBFT::InboundMessage& message);
|
||
|
|
};
|
||
|
|
}
|