Introduce MBFT::Module and MBFT::ModuleAPI
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#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);
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user