跳到主要内容

属性

Model 构造只给路径,析构自动关。

约定​

darra_ai.h 只导出 C 函数与定长结构体,结构体首字段 size。char** 出参用 darra_string_free 释放。

元信息​

只读元信息构造即加载,打开成功后刷新。全 0 / 空 = 缺席,不编造。

类别属性类型读写说明
Meta.*meta().path()`std::string`只读构造登记的模型路径原样回读;不做存在性校验
meta().task()`std::string`只读任务短名 detect / classify / …;未声明为空串
meta().labels()`std::vector<std::string>`只读类别名表(下标 = class_id);未声明空表;装入类别名后为生效表
has_class_count()bool只读class_count 是否声明(Model 直读;缺 = 不编造)
meta().class_count()`int64_t`只读类别数;未声明为 0
meta().input_width() / input_height() / input_channels()`uint32_t`只读输入宽 / 高 / 通道;未声明为 0
meta().is_encrypted()bool只读是否加密容器(构造即判定,不等 Open())
meta_json()`std::string`只读元数据 JSON 原文(Model 直读);未给为空串
状态license()ModelState只读授权态 NotOpened / Unencrypted / Trial / Binding / Bound;未打开或 close() 后为 NotOpened
phase()Phase只读生命周期相位 Loaded / Opened / Error;构造后 Loaded,Open() 成功 Opened,失败 Error
last_error()LastError只读category + code + message;成功后清空
selected_provider()`std::string`只读打开后实测 Provider;池模式记打开请求值;close() 后空串

状态管理​

时机看哪个属性预期
Open() 前phase() / selected_provider() / license()Loaded / "" / NotOpened
Open() 后license() / selected_provider()明文 / 试用 / 绑定 / 已绑定 之一;实际后端 Provider
推理失败时last_error().code非 0;phase() 仍 Opened
close() 后license() / selected_provider() / phase()NotOpened / "" / Loaded