Code clean up + added inter module communication

This commit is contained in:
Ryzerth
2021-04-22 04:15:23 +02:00
parent 2c83d79836
commit 72cbf741b3
8 changed files with 169 additions and 20 deletions

24
core/src/module_com.h Normal file
View File

@ -0,0 +1,24 @@
#pragma once
#include <map>
#include <string>
#include <mutex>
#include <spdlog/spdlog.h>
struct ModuleComInterface {
std::string moduleName;
void* ctx;
void (*handler)(int code, void* in, void* out, void* ctx);
};
class ModuleComManager {
public:
bool registerInterface(std::string moduleName, std::string name, void (*handler)(int code, void* in, void* out, void* ctx), void* ctx);
bool unregisterInterface(std::string name);
bool interfaceExists(std::string name);
std::string getModuleName(std::string name);
bool callInterface(std::string name, int code, void* in, void* out);
private:
std::mutex mtx;
std::map<std::string, ModuleComInterface> interfaces;
};