跨平台IPC的包装器接口

时间:2020-07-30 13:00:58

标签: c++ interface ipc wrapper

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

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

C ++中是否提供任何开源包装器库或公共接口?还是我需要开发自己的API来定义它?我想参考一下这些接口是否已经可用。

我在下面找类似的东西

  1. init(arguments);
  2. 发送(参数);
  3. receive(arguments);

还有更多

预先感谢

1 个答案:

答案 0 :(得分:2)

有许多用于IPC的C ++库(在SO上向libs提问是off-topic)。我在和

一起工作

他们对我来说还算不错。对于C ++,没有“统一IPC接口”之类的东西,您必须完全考虑您需要什么并根据需要设计接口。我通常使用与以下界面类似的东西:

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编写的其他组件的兼容性。

不是非常精确的答案,但我希望它会给您一些从哪里开始的见识。