338 lines
11 KiB
C++
338 lines
11 KiB
C++
//
|
||
// Created by xkzhang9 on 2020/10/16.
|
||
//
|
||
|
||
#ifndef AIKIT_BIZ_API_H
|
||
#define AIKIT_BIZ_API_H
|
||
|
||
#include "aikit_biz_type.h"
|
||
#include "aikit_biz_builder.h"
|
||
|
||
namespace AIKIT {
|
||
|
||
/**
|
||
* SDK初始化函数用以初始化整个SDK
|
||
* 初始化相关配置参数通过AIKIT_Congigurator配置
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Init();
|
||
|
||
|
||
/**[deprecated]
|
||
* SDK初始化函数用以初始化整个SDK
|
||
* @param param SDK配置参数
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Init(AIKIT_InitParam* param);
|
||
|
||
/**
|
||
* SDK逆初始化函数用以释放SDK所占资源
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_UnInit();
|
||
|
||
/**
|
||
* 注册回调函数用以返回执行结果
|
||
* @param onOutput 能力实际输出回调
|
||
* @param onEvent 能力执行事件回调
|
||
* @param onError 能力执行错误回调
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_RegisterCallback(AIKIT_Callbacks cbs);
|
||
|
||
/**
|
||
* 注册回调函数用以返回执行结果
|
||
* @param ability [in] 能力唯一标识
|
||
* @param onOutput 能力实际输出回调
|
||
* @param onEvent 能力执行事件回调
|
||
* @param onError 能力执行错误回调
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_RegisterAbilityCallback(const char* ability, AIKIT_Callbacks cbs);
|
||
|
||
/**
|
||
* 初始化能力引擎
|
||
* @param ability [in] 能力唯一标识
|
||
* @param param [in] 初始化参数
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_EngineInit(const char* ability, AIKIT_BizParam* param);
|
||
|
||
/**
|
||
* 能力引擎逆初始化,释放能力及对应引擎占用所有资源
|
||
* @param ability [in] 能力唯一标识
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_EngineUnInit(const char* ability);
|
||
|
||
/**
|
||
* 个性化数据预处理
|
||
* @param ability [in] 能力唯一标识
|
||
* @param srcData [in] 原始数据输入
|
||
* @param data [out] 结果数据输出
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_PreProcess(const char* ability, AIKIT_CustomData* srcData, AIKIT_CustomData** data);
|
||
|
||
/**
|
||
* 离线个性化数据加载
|
||
* @param ability 能力唯一标识
|
||
* @param data 个性化数据
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_LoadData(const char* ability, AIKIT_CustomData* data);
|
||
|
||
/**
|
||
* 在线个性化数据上传
|
||
* @param ability 能力唯一标识
|
||
* @param params 个性化参数
|
||
* @param data 个性化数据
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_LoadDataAsync(const char* ability, AIKIT_BizParam* params, AIKIT_InputData* data, void* usrContext, AIKIT_HANDLE** outHandle);
|
||
|
||
/**
|
||
* 个性化数据查询
|
||
* @param ability 能力唯一标识
|
||
* @param data 个性化数据
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_QueryData(const char* ability, AIKIT_CustomData* data);
|
||
|
||
/**
|
||
* @brief 可见即可说(AIUI定制接口)
|
||
* @param ability 能力唯一标识
|
||
* @param params 个性化参数
|
||
* @param data 个性化数据
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_LoadDataSpeakableAsync(const char* ability, AIKIT_BizParam* params, AIKIT_InputData* data, void* usrContext, AIKIT_HANDLE** outHandle);
|
||
|
||
/**
|
||
* 个性化数据卸载
|
||
* @param ability 能力唯一标识
|
||
* @param key 个性化数据唯一标识
|
||
* @param index 个性化数据索引
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_UnLoadData(const char* ability, const char* key, int index);
|
||
|
||
/**
|
||
* 指定要使用的个性化数据集合,未调用,则默认使用所有AIKIT_LoadData加载的数据
|
||
* 可调用多次以使用不同key集合
|
||
* @param abilityId 能力唯一标识
|
||
* @param key 个性化数据唯一标识数组
|
||
* @param index 个性化数据索引数组
|
||
* @param count 个性化数据索引数组成员个数
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SpecifyDataSet(const char* ability, const char* key, int index[], int count);
|
||
|
||
/**
|
||
* 启动one-shot模式能力同步模式调用
|
||
* @param ability 能力唯一标识
|
||
* @param param 能力参数
|
||
* @param inputData 能力数据输入
|
||
* @param outputData 能力数据输出
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_OneShot(const char* ability, AIKIT_BizParam* params, AIKIT_InputData* inputData, AIKIT_OutputData** outputData);
|
||
|
||
/**
|
||
* 启动one-shot模式能力异步模式调用
|
||
* @param ability 能力唯一标识d
|
||
* @param param 能力参数
|
||
* @param data 能力数据输入
|
||
* @param usrContext 上下文指针
|
||
* @param outHandle 生成的引擎会话句柄
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_OneShotAsync(const char* ability, AIKIT_BizParam* params, AIKIT_InputData* data, void* usrContext, AIKIT_HANDLE** outHandle);
|
||
|
||
/**
|
||
* 启动会话模式能力调用实例,若引擎未初始化,则内部首先完成引擎初始化
|
||
* @param ability 能力唯一标识
|
||
* @param len ability长度
|
||
* @param param 初始化参数
|
||
* @param usrContext上下文指针
|
||
* @param outHandle 生成的引擎会话句柄
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Start(const char* ability, AIKIT_BizParam* param, void* usrContext, AIKIT_HANDLE** outHandle);
|
||
|
||
/**
|
||
* 会话模式输入数据
|
||
* @param handle 会话实例句柄
|
||
* @param input 输入数据
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Write(AIKIT_HANDLE* handle, AIKIT_InputData* input);
|
||
|
||
/**
|
||
* 会话模式同步读取数据
|
||
* @param handle 会话实例句柄
|
||
* @param output 输入数据
|
||
* @return 结果错误码,0=成功
|
||
* @note output内存由SDK自行维护,无需主动释放
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Read(AIKIT_HANDLE* handle, AIKIT_OutputData** output);
|
||
|
||
/**
|
||
* 结束会话实例
|
||
* @param handle 会话实例句柄
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_End(AIKIT_HANDLE* handle);
|
||
|
||
|
||
/**
|
||
* 释放能力占用资源,注意不会释放引擎实例
|
||
* 若要释放能力及能力所有资源,需调用AIKIT_EngineUnInit()
|
||
* @param ability 能力唯一标识
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_FreeAbility(const char* ability);
|
||
|
||
/**
|
||
* 设置日志级别
|
||
* @param level 日志级别
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetLogLevel(int32_t level);
|
||
|
||
/**
|
||
* 设置日志输出模式
|
||
* @param mode 日志输出模式
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetLogMode(int32_t mode);
|
||
|
||
/**
|
||
* 输出模式为文件时,设置日志文件名称
|
||
* @param path 日志名称
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetLogPath(const char* path);
|
||
|
||
/**
|
||
* 获取设备ID
|
||
* @param deviceID 设备指纹输出字符串
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_GetDeviceID(const char** deviceID);
|
||
|
||
/**
|
||
* 设置授权更新间隔,单位为秒,默认为300秒
|
||
* AIKIT_Init前设置
|
||
* @param interval 间隔秒数
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetAuthCheckInterval(uint32_t interval);
|
||
|
||
/**
|
||
* 强制更新授权
|
||
* 注意:注意需在AIKIT_Init调用成功后,方可调用
|
||
* @param timeout 超时时间 单位为秒
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_UpdateAuth(uint32_t timeout);
|
||
|
||
/**
|
||
* 获取能力授权剩余秒数
|
||
* 能力输入参数为空时,默认返回最接近授权过期的能力剩余秒数
|
||
* 注意:注意需在AIKIT_Init调用成功后,方可调用
|
||
* @param leftTime 返回的能力授权剩余秒数,0 表示永久授权, 负值表示已过期的秒数
|
||
* @param ability 能力id标识
|
||
* @return 返回调用结果,0 = 成功, 其他值表示调用失败
|
||
*/
|
||
AIKITAPI int AIKIT_GetAuthLeftTime(int64_t& leftTime,int64_t& authEndTime, const char* ability = nullptr);
|
||
|
||
/**
|
||
* 获取SDK版本号
|
||
* @return SDK版本号
|
||
*/
|
||
AIKITAPI const char* AIKIT_GetVersion();
|
||
|
||
/**
|
||
* @brief 获取能力对应的引擎版本
|
||
*
|
||
* @param ability 能力唯一标识
|
||
* @return const* 引擎版本号
|
||
*/
|
||
AIKITAPI const char* AIKIT_GetEngineVersion(const char* ability);
|
||
|
||
/**
|
||
* 本地日志是否开启
|
||
* @param open
|
||
* @return
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetILogOpen(bool open);
|
||
|
||
/**
|
||
* 本地日志最大存储个数(【1,300】)
|
||
* @param count
|
||
* @return
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetILogMaxCount(uint32_t count);
|
||
|
||
/**
|
||
* 设置单日志文件大小((0,10M】)
|
||
* @param bytes
|
||
* @return
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetILogMaxSize(long long bytes);
|
||
|
||
/**
|
||
* 设置SDK相关配置
|
||
* @param key 参数名字
|
||
* @param value 参数值
|
||
* @return 结果错误码,0=成功
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetConfig(const char* key, const void* value);
|
||
|
||
/**
|
||
* 设置SDK内存模式
|
||
* @param ability 能力id
|
||
* @param mode 模式,取值参见 AIKIT_MEMORY_MODE
|
||
* @return AIKITAPI
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetMemoryMode(const char* ability,int32_t mode);
|
||
|
||
|
||
/**自2.1.6版本开始已废弃接口,当前仅保留空实现接口声明
|
||
* 自2.1.6版本开始AIKIT_OneShot响应数据由SDK内部自己维护,无需用户维护
|
||
* 同步接口响应数据缓存释放接口
|
||
* @param outputData 由同步接口AIKIT_OneShot获取的响应结果数据
|
||
*/
|
||
AIKITAPI int32_t AIKIT_Free(AIKIT_OutputData** outputData);
|
||
|
||
/**自2.1.6版本开始已废弃接口,由AIKIT_FreeAbility替代
|
||
* 释放能力占用资源
|
||
* @param ability 能力唯一标识
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_GC(const char* ability);
|
||
|
||
/**
|
||
* 设置日志级别,模式,以及保存路径,旧版日志接口,不推荐使用
|
||
* @param level 日志级别
|
||
* @param mode 日志输出模式
|
||
* @param level 输出模式为文件时的文件名称
|
||
* @return 错误码 0=成功,其他表示失败
|
||
*/
|
||
AIKITAPI int32_t AIKIT_SetLogInfo(int32_t level, int32_t mode, const char* path);
|
||
|
||
/**
|
||
* 获取能力授权剩余秒数
|
||
* 能力输入参数为空时,默认返回最接近授权过期的能力剩余秒数
|
||
* 注意:注意需在AEE_Init调用成功后,方可调用
|
||
* @param leftTime 返回的能力授权剩余秒数,0 表示永久授权, 负值表示已过期的秒数
|
||
* @param ability 能力id标识
|
||
* @return 返回调用结果,0 = 成功, 其他值表示调用失败
|
||
*/
|
||
AIKITAPI int AIKIT_GetAuthLeftTime(int64_t& leftTime, const char* ability = nullptr);
|
||
|
||
} // namespace AIKIT
|
||
|
||
#endif //AIKIT_BIZ_API_H
|