跨平台IPC的包装器接口



我是IPC的新手。我想在我的项目中使用不同的IPC机制。根据性能和要求,我需要将IPC机制更改为消息队列/共享内存或套接字。

即使IPC机制在内部发生变化,我也希望使用通用API来发送、接收和初始化IPC。

C++中是否有可用的开源包装器库或通用接口?还是我需要开发自己的API来定义它?我想参考是否有任何已经可用的接口。

我在下面看到类似的东西

  1. init(参数(
  2. send(arguments(
  3. 接收(自变量(

和更多

提前感谢

有许多用于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.编写的

不是非常精确的答案,但我希望它能让你从哪里开始。

最新更新