Skip to content

工具函数与常量

本页汇总通用工具函数(key expression 交集判断、休眠、版本查询)与全套常量定义(编码、拥塞控制、样本类型、节点类型、查询合并 / 目标、默认选项宏)。

工具函数

onepath_keyexpr_intersects

c
int onepath_keyexpr_intersects(const char *a, const char *b);

检测两个 key expression 是否存在交集。

  • 参数a — 第一个 key expression;b — 第二个 key expression
  • 返回值1 存在交集,0 不存在交集

onepath_sleep_s

c
void onepath_sleep_s(unsigned int seconds);

休眠指定秒数。

  • 参数seconds — 休眠秒数

onepath_sleep_ms

c
void onepath_sleep_ms(unsigned int milliseconds);

休眠指定毫秒数。

  • 参数milliseconds — 休眠毫秒数

onepath_version

c
const char *onepath_version(void);

获取 OnePath 库版本字符串。

  • 返回值:指向静态字符串的指针,如 "0.1.0"
  • 注意:返回的指针指向静态存储区,无需释放

onepath_strerror

c
const char *onepath_strerror(int err);

将错误码转换为可读描述字符串。

  • 参数err — 错误码
  • 返回值:指向静态字符串的指针,描述错误原因;无需释放

错误码取值见 错误码

常量定义

编码常量 (ONEPATH_ENCODING_*)

用于指定数据的编码格式(作为发布 / 写入的 encoding 参数)。

常量说明
ONEPATH_ENCODING_TEXT_PLAIN"text/plain"纯文本
ONEPATH_ENCODING_APPLICATION_JSON"application/json"JSON
ONEPATH_ENCODING_APPLICATION_OCTET_STREAM"application/octet-stream"二进制流
ONEPATH_ENCODING_APPLICATION_PROTOBUF"application/protobuf"Protocol Buffers
ONEPATH_ENCODING_APPLICATION_CBOR"application/cbor"CBOR
ONEPATH_ENCODING_APPLICATION_XML"application/xml"XML
ONEPATH_ENCODING_APPLICATION_YAML"application/yaml"YAML
ONEPATH_ENCODING_IMAGE_PNG"image/png"PNG 图片
ONEPATH_ENCODING_IMAGE_JPEG"image/jpeg"JPEG 图片
ONEPATH_ENCODING_TEXT_CSV"text/csv"CSV

拥塞控制 (ONEPATH_CC_*)

用于 onepath_pub_opts_t.congestion_control

常量说明
ONEPATH_CC_DROP0当发送缓冲区满时丢弃消息(默认)
ONEPATH_CC_BLOCK1当发送缓冲区满时阻塞等待

样本类型 (ONEPATH_SAMPLE_*)

用于 onepath_sample_t.kind

常量说明
ONEPATH_SAMPLE_PUT0数据发布
ONEPATH_SAMPLE_DELETE1数据删除

节点类型

用于 onepath_hello_t.whatami 等。

常量说明
ONEPATH_ROUTER1路由器节点
ONEPATH_PEER2对等节点
ONEPATH_CLIENT4客户端节点

查询合并模式 (ONEPATH_CONSOLIDATION_*, v0.10.0+)

用于 onepath_get_opts_t.consolidation,控制同键应答如何合并。

常量说明
ONEPATH_CONSOLIDATION_AUTO自动选择(默认)
ONEPATH_CONSOLIDATION_NONE不合并,逐份返回(多应答者投票 / 聚合须用此项)
ONEPATH_CONSOLIDATION_MONOTONIC单调合并
ONEPATH_CONSOLIDATION_LATEST仅保留最新

查询目标 (ONEPATH_QUERY_TARGET_*, v0.10.0+)

用于 onepath_get_opts_t.target,控制查询路由到哪些应答者。

常量说明
ONEPATH_QUERY_TARGET_BEST_MATCHING最佳匹配的应答者(默认)
ONEPATH_QUERY_TARGET_ALL全部匹配的应答者(多副本投票须用此项)
ONEPATH_QUERY_TARGET_ALL_COMPLETE全部声明为 complete 的应答者

默认选项宏

每个选项结构体都配有 _DEFAULT 宏,传 NULL 给接口等效于使用对应默认值。结构体定义见 数据类型

展开值说明
ONEPATH_PUB_OPTS_DEFAULT{ NULL, ONEPATH_CC_DROP }发布者默认选项
ONEPATH_GET_OPTS_DEFAULT{ 5000, NULL, 0, AUTO, BEST_MATCHING }查询默认选项(5 秒超时、自动合并、最近匹配)
ONEPATH_REQUESTER_OPTS_DEFAULT{ 5000 }Requester 默认选项(5 秒超时)
ONEPATH_WRITE_OPTS_DEFAULT{ NULL, NULL, 0 }扩展写入默认选项
ONEPATH_ADVANCED_PUB_OPTS_DEFAULT{ 1, 10, 1, 1 }高级发布默认选项(见 高级发布订阅
ONEPATH_ADVANCED_SUB_OPTS_DEFAULT{ 1, 1, 1 }高级订阅默认选项(见 高级发布订阅

OnePath™ 以预构建库形式交付,运行时零外部依赖。