14 typedef int(*t_AM_API_Create)(
int am_type,
AlgoMarker **new_am);
15 typedef int(*t_AM_API_Load)(
AlgoMarker * pAlgoMarker,
const char *config_fname);
16 typedef int(*t_AM_API_AdditionalLoad)(
AlgoMarker * pAlgoMarker,
const int load_type,
const char *load);
17 typedef int(*t_AM_API_ClearData)(
AlgoMarker * pAlgoMarker);
18 typedef int(*t_AM_API_AddData)(
AlgoMarker * pAlgoMarker,
int patient_id,
const char *signalName,
int TimeStamps_len,
long long* TimeStamps,
int Values_len,
float* Values);
19 typedef int(*t_AM_API_AddDataStr)(
AlgoMarker * pAlgoMarker,
int patient_id,
const char *signalName,
int TimeStamps_len,
long long* TimeStamps,
int Values_len,
char** Values);
20 typedef int(*t_AM_API_AddDataByType)(
AlgoMarker * pAlgoMarker,
const char *data,
char ** messages);
21 typedef int(*t_AM_API_CreateRequest)(
char *requestId,
char **score_types,
int n_score_types,
int *patient_ids,
long long *time_stamps,
int n_points,
AMRequest **new_req);
22 typedef int(*t_AM_API_CreateResponses)(
AMResponses **);
24 typedef int(*t_AM_API_CalculateByType)(
AlgoMarker *pAlgoMarker,
int CalcType,
char *request,
char **responses);
25 typedef int(*t_AM_API_GetSharedMessages)(
AMResponses *responses,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
26 typedef int(*t_AM_API_GetResponsesNum)(
AMResponses *responses);
27 typedef int(*t_AM_API_GetResponseIndex)(
AMResponses *responses,
int _pid,
long long _timestamp);
28 typedef int(*t_AM_API_GetResponsesRequestId)(
AMResponses *responses,
char **requestId);
29 typedef int(*t_AM_API_GetResponseScoreByType)(
AMResponses *responses,
int res_index,
char *_score_type,
float *out_score);
31 typedef int(*t_AM_API_GetResponseScoresNum)(
AMResponse *response,
int *n_scores);
32 typedef int(*t_AM_API_GetResponseScoreByIndex)(
AMResponse *response,
int score_index,
float *score,
char **_score_type);
33 typedef int(*t_AM_API_GetResponseExtendedScoreByIndex)(
AMResponse *response,
int score_index,
char **ext_score,
char **_score_type);
34 typedef int(*t_AM_API_GetResponseMessages)(
AMResponse *response,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
35 typedef int(*t_AM_API_GetScoreMessages)(
AMResponse *response,
int score_index,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
36 typedef int(*t_AM_API_GetResponsePoint)(
AMResponse *response,
int *pid,
long long *timestamp);
37 typedef int(*t_AM_API_GetName)(
AlgoMarker * pAlgoMArker,
char **name);
38 typedef void(*t_AM_API_DisposeAlgoMarker)(
AlgoMarker*);
39 typedef void(*t_AM_API_DisposeResponses)(
AMResponses*);
40 typedef void(*t_AM_API_DisposeRequest)(
AMRequest*);
41 typedef void(*t_AM_API_Discovery)(
AlgoMarker*,
char **);
42 typedef void(*t_AM_API_Dispose)(
char *);
43 void *addr_AM_API_Create =
nullptr;
44 void *addr_AM_API_Load =
nullptr;
45 void *addr_AM_API_AdditionalLoad =
nullptr;
46 void *addr_AM_API_ClearData =
nullptr;
47 void *addr_AM_API_AddData =
nullptr;
48 void *addr_AM_API_AddDataStr =
nullptr;
49 void *addr_AM_API_AddDataByType =
nullptr;
50 void *addr_AM_API_CreateRequest =
nullptr;
51 void *addr_AM_API_CreateResponses =
nullptr;
52 void *addr_AM_API_Calculate =
nullptr;
53 void *addr_AM_API_CalculateByType =
nullptr;
54 void *addr_AM_API_GetSharedMessages =
nullptr;
55 void *addr_AM_API_GetResponsesNum =
nullptr;
56 void *addr_AM_API_GetResponseIndex =
nullptr;
57 void *addr_AM_API_GetResponsesRequestId =
nullptr;
58 void *addr_AM_API_GetResponseScoreByType =
nullptr;
59 void *addr_AM_API_GetResponseAtIndex =
nullptr;
60 void *addr_AM_API_GetResponseScoresNum =
nullptr;
61 void *addr_AM_API_GetResponseScoreByIndex =
nullptr;
62 void *addr_AM_API_GetResponseExtendedScoreByIndex =
nullptr;
63 void *addr_AM_API_GetResponseMessages =
nullptr;
64 void *addr_AM_API_GetScoreMessages =
nullptr;
65 void *addr_AM_API_GetResponsePoint =
nullptr;
66 void *addr_AM_API_GetName =
nullptr;
67 void *addr_AM_API_DisposeAlgoMarker =
nullptr;
68 void *addr_AM_API_DisposeResponses =
nullptr;
69 void *addr_AM_API_DisposeRequest =
nullptr;
70 void *addr_AM_API_Discovery =
nullptr;
71 void *addr_AM_API_Dispose =
nullptr;
73 static int load(
const char * am_fname);
75 static std::vector<DynAM> sos;
76 static void set_so_id(
int id) { assert(
id>=0 &&
id < sos.size()); so = &sos[id]; };
78 static int AM_API_ClearData(
AlgoMarker * pAlgoMarker);
79 static void AM_API_DisposeAlgoMarker(
AlgoMarker * pAlgoMarker);
80 static void AM_API_DisposeRequest(
AMRequest *pRequest);
81 static void AM_API_Dispose(
char *data);
82 static void AM_API_Discovery(
AlgoMarker * pAlgoMarker,
char **resp);
83 static void AM_API_DisposeResponses(
AMResponses *responses);
84 static int AM_API_GetResponseScoresNum(
AMResponse *response,
int *n_scores);
85 static int AM_API_GetName(
AlgoMarker * pAlgoMArker,
char **name);
86 static int AM_API_GetScoreMessages(
AMResponse *response,
int score_index,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
87 static int AM_API_GetResponseMessages(
AMResponse *response,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
88 static int AM_API_GetResponseScoreByType(
AMResponses *responses,
int res_index,
char *_score_type,
float *out_score);
89 static int AM_API_GetResponseScoreByIndex(
AMResponse *response,
int score_index,
float *score,
char **_score_type);
90 static int AM_API_GetResponseExtendedScoreByIndex(
AMResponse *response,
int score_index,
char **ext_score,
char **_score_type);
91 static int AM_API_GetResponsePoint(
AMResponse *response,
int *pid,
long long *timestamp);
92 static int AM_API_GetSharedMessages(
AMResponses *responses,
int *n_msgs,
int **msgs_codes,
char ***msgs_args);
93 static int AM_API_GetResponsesNum(
AMResponses *responses);
94 static int AM_API_GetResponseIndex(
AMResponses *responses,
int _pid,
long long _timestamp);
95 static int AM_API_GetResponseIndex(
AMResponses *responses,
char **requestId);
97 static int AM_API_Create(
int am_type,
AlgoMarker **new_am);
98 static int AM_API_Load(
AlgoMarker * pAlgoMarker,
const char *config_fname);
99 static int AM_API_AdditionalLoad(
AlgoMarker * pAlgoMarker,
const int load_type,
const char *load);
100 static int AM_API_AddData(
AlgoMarker * pAlgoMarker,
int patient_id,
const char *signalName,
int TimeStamps_len,
long long* TimeStamps,
int Values_len,
float* Values);
101 static int AM_API_AddDataStr(
AlgoMarker * pAlgoMarker,
int patient_id,
const char *signalName,
int TimeStamps_len,
long long* TimeStamps,
int Values_len,
char** Values);
102 static int AM_API_AddDataByType(
AlgoMarker * pAlgoMarker,
const char *data,
char ** messages);
103 static int AM_API_CreateRequest(
char *requestId,
char **score_types,
int n_score_types,
int *patient_ids,
long long *time_stamps,
int n_points,
AMRequest **new_req);
104 static int AM_API_CreateResponses(
AMResponses **new_responses);
106 static int AM_API_CalculateByType(
AlgoMarker *pAlgoMarker,
int CalcType,
char *request,
char **responses);
108 static bool initialized() {
return (sos.size() > 0); }