1 /*
2  * Copyright (C) 2021-2023 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _AI_AGENT_ENGINE_H_
6 #define _AI_AGENT_ENGINE_H_
7 #include <stdint.h>
8 #include <stdbool.h>
9 #include "aiagent_common.h"
10 #ifdef CONFIG_UCLOUD_AI_ENGINE_ENABLE
11 #include "engine/ucloud_ai_engine.h"
12 #endif
13 
14 typedef struct _aiagent_engine_t {
15     /* * * */
16     /* The name of this ucloud ai engine */
17     const char *name;
18 
19     bool is_dummy; /*if no engine, use dummy*/
20 
21     ai_model_t model;
22     char *src1; /*source data1*/
23     char *src2; /*source data2, some cases need two image to compare*/
24 
25     ai_engine_cb_t callback;
26 
27     ai_config_t *config;
28 
29     /*init ai engine*/
30     int32_t (*ai_engine_init) (struct _aiagent_engine_t *eng);
31 
32     /*uninit ai engine*/
33     void (*ai_engine_uninit) (struct _aiagent_engine_t *eng);
34 
35     /*config ai engine*/
36     void (*ai_engine_config) (struct _aiagent_engine_t *eng);
37     /*run ai engine model*/
38     int32_t (*ai_engine_model_infer) (struct _aiagent_engine_t *eng);
39 
40     /*free ai engine*/
41     void (*ai_engine_free) (struct _aiagent_engine_t *eng);
42 } aiagent_engine_t;
43 
44 #endif // _AI_AGENT_ENGINE_H_
45