SDK

The function of the SDK header file is implemented by mapping SDK API calls to client API calls. Table 1 lists the APIs provided by the client.

Table 1 APIs provided by the client

API

Description

Parameters

int AieClientInit(const ConfigInfo &configInfo, ClientInfo &clientInfo, const AlgorithmInfo &algorithmInfo, IServiceDeadCb *cb)

Function: Links and initializes the engine service and activates IPC call.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

configInfo: Indicates engine-related initial configuration data. This parameter must not be null.

clientInfo: Indicates engine client information. This parameter must not be null.

algorithmInfo: Indicates information about the called algorithm. This parameter must not be null.

cb: Indicates the death callback object. This parameter can be null.

int AieClientPrepare(const ClientInfo &clientInfo, const AlgorithmInfo &algorithmInfo, const DataInfo &inputInfo, DataInfo &outputInfo, IClientCb *cb)

Function: Loads an algorithm plug-in.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

algorithmInfo: Indicates information about the called algorithm. This parameter must not be null.

inputInfo: Indicates input information specified for algorithm plug-in loading. This parameter can be null.

outputInfo: Indicates information returned after algorithm plug-in loading, if any. This parameter can be null.

cb: Indicates the return result of the asynchronous algorithm. This parameter must not be null for the asynchronous algorithm. For the synchronous algorithm, this parameter must be null.

int AieClientAsyncProcess(const ClientInfo &clientInfo, const AlgorithmInfo &algorithmInfo, const DataInfo &inputInfo)

Function: Executes an asynchronous algorithm.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

algorithmInfo: Indicates information about the called algorithm. This parameter must not be null.

inputInfo: Indicates input information specified for algorithm operations. This parameter can be null.

int AieClientSyncProcess(const ClientInfo &clientInfo, const AlgorithmInfo &algorithmInfo, const DataInfo &inputInfo, DataInfo &outputInfo)

Function: Executes a synchronous algorithm.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

algorithmInfo: Indicates information about the called algorithm. This parameter must not be null.

inputInfo: Indicates input information specified for algorithm operations. This parameter can be null.

outputInfo: Indicates output information in the return result of the synchronous algorithm. This parameter can be null.

int AieClientRelease(const ClientInfo &clientInfo, const AlgorithmInfo &algorithmInfo, const DataInfo &inputInfo)

Function: Uninstalls an algorithm plug-in.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

algorithmInfo: Indicates information about the algorithm plug-in to be uninstalled. This parameter must not be null.

inputInfo: Indicates input information specified for algorithm plug-in uninstallation. This parameter can be null.

int AieClientDestroy(ClientInfo &clientInfo)

Function: Disconnects from the server and releases the cache.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates information about the engine client to be destroyed. This parameter must not be null.

int AieClientSetOption(const ClientInfo &clientInfo, int optionType, const DataInfo &inputInfo)

Function: Sets configuration items. You can use this API to pass algorithm's extended information to plug-ins.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

optionType: Indicates the algorithm for obtaining the configuration item information. An algorithm plug-in can use this parameter as needed. This parameter must not be null.

inputInfo: Indicates algorithm parameter information. An algorithm plug-in can use this parameter as needed. This parameter can be null.

int AieClientGetOption(const ClientInfo &clientInfo, int optionType, const DataInfo &inputInfo, DataInfo &outputInfo)

Function: Obtains configuration item information based on the specified optionType and inputInfo.

Return value: Returns 0 if the operation is successful; returns a non-zero value otherwise.

clientInfo: Indicates engine client information. This parameter must not be null.

optionType: Indicates the algorithm for obtaining the configuration item information. This parameter must not be null.

inputInfo: Indicates input information specified for obtaining configuration item information of the algorithm. This parameter can be null.

outputInfo: Indicates the configuration item information in the return result. This parameter can be null.

Table 2 describes the data structure of ConfigInfo, ClientInfo, AlgorithmInfo, and DataInfo.

Table 2 Data structure of ConfigInfo, ClientInfo, AlgorithmInfo, and DataInfo

Structure

Description

Attributes

ConfigInfo

Algorithm configuration item information

const char *description: Indicates the body of configuration item information.

ClientInfo

Client information

long long clientVersion: Indicates client version number. This parameter is not used currently.

int clientId: Indicates the client ID.

int sessionId: Indicates the session ID.

uid_t serverUid: Indicates the UID of the server.

uid_t clientUid: Indicates the UID of the client.

int extendLen: Indicates the length of the extended information (extendMsg).

unsigned char *extendMsg: Indicates the body of the extended information.

AlgorithmInfo

Algorithm information

long long clientVersion: Indicates client version number. This parameter is not used currently.

bool isAsync: Indicates whether asynchronous execution is used.

int algorithmType: Indicates the algorithm type ID allocated by the AI engine framework based on the plug-in loading sequence.

long long algorithmVersion: Indicates the algorithm version number.

bool isCloud: Indicates whether to migrate data to the cloud. This parameter is not used currently.

int operateId: Indicates the execution ID. This parameter is not used currently.

int requestId: Indicates the request ID, which identifies each request and corresponds to the execution result.

int extendLen: Indicates the length of the extended information (extendMsg).

unsigned char *extendMsg: Indicates the body of the extended information.

DataInfo

Algorithm input parameter configuration information (inputInfo) and output parameter configuration information (outputInfo)

unsigned char *data: Indicates the data body.

int length: Indicates the data length.

For details about the development process, see the development example for the KWS SDK.