昇腾社区首页
中文
注册

OpenHiva::Publisher::Publish

产品支持情况

产品

是否支持

Atlas A3 训练系列产品/Atlas A3 推理系列产品

x

Atlas A2 训练系列产品/Atlas 800I A2 推理产品/A200I A2 Box 异构组件

x

Atlas 200I/500 A2 推理产品

Atlas 推理系列产品

x

Atlas 训练系列产品

x

Atlas 200/300/500 推理产品

x

功能说明

消息发布函数。

函数原型

  • 支持用户输入序列化函数
    1
    uint32_t OpenHiva::Publisher::Publish(const std::function<bool (uint8_t *, uint32_t)> &serializeFunc, const uint32_t bufferLength)
    
  • 支持HivaMessage消息发布
    1
    uint32_t OpenHiva::Publisher::Publish(const HivaMessage &message)
    

参数说明

  • 支持用户输入序列化函数

    参数名

    输入/输出

    说明

    serializeFunc

    输入

    序列化回调函数。

    bufferLength

    输入

    消息序列化的长度。

  • 支持HivaMessage消息发布

    参数名

    输入/输出

    说明

    message

    输入

    用户要发布的消息,详见OpenHiva::HivaMessage类型定义

返回值

返回uint32_t类型,成功返回HIVA_SUCCESS,该值为0;其他值为失败。

约束说明

  • 本接口不可重入,同步接口。
  • 通过Publisher对象调用,在Publish之前,必须保证Topic已经通过CreatePublisher接口声明。
  • 不允许多个线程同时进行publish。
  • SHM通信模式下,消息大小不能超过30000000(bytes)。
  • 使用uint32_t OpenHiva::Publisher::Publish(const HivaMessage &message)接口时,消息类型必须继承HivaMessage,必须实现GetMessageType,GetMd5Sum等static接口。