回调函数原型。定义了引擎如何向宿主应用程序推送异步生成结果。使用 User Pointer 模式实现上下文保持。
由于 C-API 无法识别 C++ 类成员函数,必须通过 LiteRtLmCallback 这种静态函数或 Lambda,配合 user_ptr 来重新找回 C++ 对象的上下文。
typedef void (*LiteRtLmCallback)(LiteRtLm_Result result, void* user_ptr);
参数: result
包含本次增量的文本片段及状态信息。详情见 LiteRtLm_Result。参数: user_ptr
由调用方在RunInference 中传入的原始指针。通常指向 C++ 类实例(如 this)。
// 静态回调适配器
static void OnStaticResult(LiteRtLm_Result Result, void* UserPtr) {
// 强制转换为对应的 C++ 类
UMyAiSubsystem* Subsystem = static_cast<UMyAiSubsystem*>(UserPtr);
if (Subsystem) {
Subsystem->HandleAsyncText(Result);
}
}
// 调用处
LiteRtLm_RunInference(Conv, Params, OnStaticResult, this); // 传入 this 指针