SDRPlusPlus/core/src/module_com.h
AlexandreRouma 55ddd383d2 Fix #1199
2023-09-29 14:42:45 +02:00

23 lines
689 B
C++

#pragma once
#include <map>
#include <string>
#include <mutex>
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::recursive_mutex mtx;
std::map<std::string, ModuleComInterface> interfaces;
};