Skip to content

工具函数与常量

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

工具函数

onepath_sign_intersects

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

检测两个路标 (sign) 是否存在交集(含通配符匹配)。

  • 参数a — 第一个路标;b — 第二个路标
  • 返回值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.11.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_PRIORITY_*)

用于 onepath_pub_opts_t.priorityonepath_sample_t.priority,数值越小优先级越高。

常量说明
ONEPATH_PRIORITY_REALTIME1实时(最高)
ONEPATH_PRIORITY_INTERACTIVE_HIGH2交互 - 高
ONEPATH_PRIORITY_INTERACTIVE_LOW3交互 - 低
ONEPATH_PRIORITY_DATA_HIGH4数据 - 高
ONEPATH_PRIORITY_DATA5数据(默认)
ONEPATH_PRIORITY_DATA_LOW6数据 - 低
ONEPATH_PRIORITY_BACKGROUND7后台(最低)

可靠性 (ONEPATH_RELIABILITY_*)

用于 onepath_pub_opts_t.reliabilityonepath_sample_t.reliability

常量说明
ONEPATH_RELIABILITY_BEST_EFFORT0尽力而为(可能丢失)
ONEPATH_RELIABILITY_RELIABLE1可靠传输(默认)

样本类型 (ONEPATH_SAMPLE_*)

用于 onepath_sample_t.kind

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

节点类型

用于 onepath_hello_t.whatami 等。

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

查询合并模式 (ONEPATH_CONSOLIDATION_*)

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

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

查询目标 (ONEPATH_QUERY_TARGET_*)

用于 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_PRIORITY_DATA, 0, ONEPATH_RELIABILITY_RELIABLE }发布者默认选项
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™ 是西安汉为信息技术有限公司的注册商标。