会话 API
元信息
darra_session_meta_json()
int32_t darra_session_meta_json(darra_session* session, char** out_json);
读会话元信息。内容:task / labels / 输入宽高与通道 / Layout / Mean / Std / PayloadKind / 实际选中的 Provider / 是否加密 / 授权摘要(去敏,含试用剩余次数)。
全部来自容器头或明文探测,用户零配置。头里缺的字段派生 JSON 里为 null / 缺席,不编默认 640/80/17。调用代价:读会话缓存的头信息,微秒级。
参数:
session(darra_session*) — 已打开的会话out_json(char**) — SDK 分配的 UTF-8 JSON,用完darra_string_free
返回值:
int32_t—DARRA_OK成功;DARRA_INTERNAL(NULL 句柄等契约违反)
示例:
char* meta = NULL;
if (darra_session_meta_json(session, &meta) == DARRA_OK) {
puts(meta);
darra_string_free(meta);
}
相关结构:
{
"schema": 1,
"task": "detect",
"labels": ["scratch", "dent"],
"input": { "width": 640, "height": 640, "channels": 3 },
"payloadKind": "onnx",
"provider": "onnx-cuda",
"encrypted": true,
"containerFormat": "DARM1",
"license": { "mode": "trial", "trialRemaining": 12, "machineBound": true }
}
task派生短名随容器头;推理结果results元素结构以此为准。缺席不编detect。头文件对结果形态的承诺:detect→box,classify→top-k,segment→掩码。payloadKind:onnx/trt-engine/openvino/rknn/paddle。Windows 上rknn打不开。input.width/height/channels来自容器头。缺则null,不编 640/80/17。provider是实际选中的 Provider(不是 prefer 入参)。encrypted=false时无containerFormat/license(明文会话)。- 标准字段表见 元数据。
关闭
darra_session_close()
void darra_session_close(darra_session* session);
关闭会话并释放全部资源(含解密明文窗口清零)。NULL 安全。close 后句柄失效,再用 = 未定义行为;禁止与任何在飞调用并发。
参数:
session(darra_session*) — 要关闭的会话;NULL 安全
示例:
darra_session_close(s);