Skip to content
mutouyun edited this page Dec 9, 2025 · 1 revision

ipc.h

#include "libipc/ipc.h"

IPC库的主头文件,包含了IPC通讯的核心类和函数。

包含的类

  • ipc::route - 单写多读IPC路由
  • ipc::channel - 多写多读IPC通道
  • ipc::buffer - 数据缓冲区
  • ipc::chan<Rp, Rc, Ts> - 自定义策略的IPC通道模板

类型定义

using handle_t = void*;     // IPC句柄类型
using buff_t   = buffer;    // buffer别名

模式常量

enum : unsigned {
    sender,      // 发送者模式
    receiver     // 接收者模式
};

使用示例

#include "libipc/ipc.h"

// 创建route(单写多读)
ipc::route producer{"my-route"};              // 发送者
ipc::route consumer{"my-route", ipc::receiver}; // 接收者

// 发送数据
producer.send("Hello, IPC!");

// 接收数据
auto buf = consumer.recv();

预定义的通道类型

ipc::route

using route = chan<relat::single, relat::multi, trans::broadcast>;

单写多读广播路由。

ipc::channel

using channel = chan<relat::multi, relat::multi, trans::broadcast>;

多写多读广播通道。

自定义通道

// 定义工作队列(多写多读单播)
using work_queue = ipc::chan<ipc::relat::multi, ipc::relat::multi, ipc::trans::unicast>;

work_queue wq{"task_queue"};
wq.send("Task 1");  // 只有一个接收者会收到

相关文档

  • ipc::route - Route类详细文档
  • ipc::channel - Channel类详细文档
  • ipc::buffer - Buffer类详细文档
  • def.h - 基础定义
  • Tutorial - 使用教程

Clone this wiki locally