工具函数与常量
本页汇总通用工具函数(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_DROP | 0 | 当发送缓冲区满时丢弃消息(默认) |
ONEPATH_CC_BLOCK | 1 | 当发送缓冲区满时阻塞等待 |
样本类型 (ONEPATH_SAMPLE_*)
用于 onepath_sample_t.kind。
| 常量 | 值 | 说明 |
|---|---|---|
ONEPATH_SAMPLE_PUT | 0 | 数据发布 |
ONEPATH_SAMPLE_DELETE | 1 | 数据删除 |
节点类型
用于 onepath_hello_t.whatami 等。
| 常量 | 值 | 说明 |
|---|---|---|
ONEPATH_ROUTER | 1 | 路由器节点 |
ONEPATH_PEER | 2 | 对等节点 |
ONEPATH_CLIENT | 4 | 客户端节点 |
查询合并模式 (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 } | 高级订阅默认选项(见 高级发布订阅) |