我是IPC的新手。我想在我的项目中使用不同的IPC机制。根据性能和要求,我需要将IPC机制更改为消息队列/共享内存或套接字。
即使IPC机制在内部发生变化,我也希望使用通用API来发送、接收和初始化IPC。
C++中是否有可用的开源包装器库或通用接口?还是我需要开发自己的API来定义它?我想参考是否有任何已经可用的接口。
我在下面看到类似的东西
- init(参数(
- send(arguments(
- 接收(自变量(
和更多
提前感谢
有许多用于IPC的C++库(在SO上请求库是离题的(。我在工作
- 提升进程间
- ZeroMQ
- protobuf-仅限序列化
他们对我来说很好;统一IPC接口";对于C++,您必须准确地思考您需要什么,并根据您的需求设计接口。我通常使用类似于下面界面的东西:
class AbstractIPC
{
public:
virtual ~AbstractIPC() = default;
virtual bool open() = 0;
virtual bool close() = 0;
virtual int send(const uint8_t* data, size_t, length) = 0;
virtual int receive(uint8_t* data, size_t, length) = 0;
};
不使用std::vector<uint8_t>
或std::string
的原因是与其他组件的兼容性,这些组件可能是用C.编写的
不是非常精确的答案,但我希望它能让你从哪里开始。