SDRPlusPlus/core/src/module_com.h

23 wiersze
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;
};