1 
2 #include "base/modules/c/include/WrapperIHaasML.h"
3 #include "base/include/IHaasML.h"
4 #include "ulog/ulog.h"
5 #include "base/modules/core/include/HaasErrno.h"
6 
7 #define LOG_TAG "WRAPPER_ML"
8 
MLCreateInstance(MLEngineType_t type)9 void* MLCreateInstance(MLEngineType_t type)
10 {
11     LOGD(LOG_TAG, "entern %s;\n", __func__);
12     IHaasML* mIHaasML =  IHaasMLInstance(type);
13     if (mIHaasML == NULL)
14     {
15         LOGD(LOG_TAG, "IHaasInstance failed %s;\n", __func__);
16         return NULL;
17     }
18     return (void*)mIHaasML;
19 }
20 
MLDestoryInstance(void * instance)21 void MLDestoryInstance(void* instance)
22 {
23     LOGD(LOG_TAG, "entern %s;\n", __func__);
24     IHaasML* mIHaasML = (IHaasML*)instance;
25     if (mIHaasML == NULL)
26     {
27         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
28         return;
29     }
30     delete mIHaasML;
31 }
32 
MLConfig(void * instance,char * key,char * secret,char * region_id,char * endpoint,char * url)33 int MLConfig(void* instance, char *key, char *secret, char *region_id,
34         char *endpoint, char *url)
35 {
36     LOGD(LOG_TAG, "key = %s;\n", key);
37     LOGD(LOG_TAG, "secret = %s;\n", secret);
38     LOGD(LOG_TAG, "region_id = %s;\n", region_id);
39     LOGD(LOG_TAG, "endpoint = %s;\n", endpoint);
40     LOGD(LOG_TAG, "url = %s;\n", url);
41     IHaasML* mIHaasML = (IHaasML*)instance;
42     if (mIHaasML == NULL)
43     {
44         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
45         return -1;
46     }
47     int ret = mIHaasML->Config(key, secret, region_id, endpoint, url);
48     return ret;
49 }
50 
MLSetInputData(void * instance,const char * dataPath)51 int MLSetInputData(void* instance, const char* dataPath)
52 {
53     LOGD(LOG_TAG, "entern %s;\n", __func__);
54     IHaasML* mIHaasML = (IHaasML*)instance;
55     if (mIHaasML == NULL)
56     {
57         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
58         return -1;
59     }
60     int ret = mIHaasML->SetInputData(dataPath);
61     return ret;
62 }
63 
MLLoadNet(void * instance,const char * modePath)64 int MLLoadNet(void* instance, const char* modePath)
65 {
66     LOGD(LOG_TAG, "entern %s;\n", __func__);
67     IHaasML* mIHaasML = (IHaasML*)instance;
68     if (mIHaasML == NULL)
69     {
70         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
71         return -1;
72     }
73     int ret = mIHaasML->LoadNet(modePath);
74     return ret;
75 }
76 
MLPredict(void * instance)77 int MLPredict(void* instance)
78 {
79     LOGD(LOG_TAG, "entern %s;\n", __func__);
80     IHaasML* mIHaasML = (IHaasML*)instance;
81     if (mIHaasML == NULL)
82     {
83         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
84         return -1;
85     }
86     int ret = mIHaasML->Predict();
87     return ret;
88 }
89 
MLGetPredictResponses(void * instance,char * outResult,int len)90 int MLGetPredictResponses(void* instance, char* outResult, int len)
91 {
92     LOGD(LOG_TAG, "entern %s;\n", __func__);
93     IHaasML* mIHaasML = (IHaasML*)instance;
94     if (mIHaasML == NULL)
95     {
96         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
97         return -1;
98     }
99     int ret = mIHaasML->GetPredictResponses(outResult, len);
100     LOGD(LOG_TAG, "out %s; ret = %d;\n", __func__, ret);
101     return ret;
102 }
103 
MLUnLoadNet(void * instance)104 int MLUnLoadNet(void* instance)
105 {
106     LOGD(LOG_TAG, "entern %s;\n", __func__);
107     IHaasML* mIHaasML = (IHaasML*)instance;
108     if (mIHaasML == NULL)
109     {
110         LOGD(LOG_TAG, "mIHaasML is NULL %s;\n", __func__);
111         return -1;
112     }
113     int ret = mIHaasML->UnLoadNet();
114     return ret;
115 }
116 
117