Skip to content

Commit 7b8ae9c

Browse files
Meir Shpilraien (Spielrein)lantiga
authored andcommitted
change LLAPI to use RedisModule_GetSharedAPI instead of RedisModule_GetApi (#134)
* change LLAPI to use RedisModule_GetSharedAPI instead of RedisModule_GetApi * checked that RedisModule_GetSharedAPI exists before using it
1 parent 5f785de commit 7b8ae9c

File tree

1 file changed

+49
-44
lines changed

1 file changed

+49
-44
lines changed

src/redisai.h

Lines changed: 49 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -69,53 +69,58 @@ RAI_Script* MODULE_API_FUNC(RedisAI_ScriptGetShallowCopy)(RAI_Script* script);
6969

7070
int MODULE_API_FUNC(RedisAI_GetLLAPIVersion)();
7171

72-
73-
#define REDISAI_MODULE_INIT_FUNCTION(name) \
74-
if (RedisModule_GetApi("RedisAI_" #name, ((void **)&RedisAI_ ## name))) { \
75-
printf("could not initialize RedisAI_" #name "\r\n");\
72+
#define REDISAI_MODULE_INIT_FUNCTION(ctx, name) \
73+
RedisAI_ ## name = RedisModule_GetSharedAPI(ctx, "RedisAI_" #name);\
74+
if(!RedisAI_ ## name){\
75+
RedisModule_Log(ctx, "warning", "could not initialize RedisAI_" #name "\r\n");\
7676
return REDISMODULE_ERR; \
7777
}
7878

79-
static int RedisAI_Initialize(){
80-
81-
REDISAI_MODULE_INIT_FUNCTION(GetLLAPIVersion);
82-
83-
REDISAI_MODULE_INIT_FUNCTION(TensorCreate);
84-
REDISAI_MODULE_INIT_FUNCTION(TensorGetDataSize);
85-
REDISAI_MODULE_INIT_FUNCTION(TensorFree);
86-
REDISAI_MODULE_INIT_FUNCTION(TensorSetData);
87-
REDISAI_MODULE_INIT_FUNCTION(TensorSetValueFromLongLong);
88-
REDISAI_MODULE_INIT_FUNCTION(TensorSetValueFromDouble);
89-
REDISAI_MODULE_INIT_FUNCTION(TensorGetValueAsDouble);
90-
REDISAI_MODULE_INIT_FUNCTION(TensorGetValueAsLongLong);
91-
REDISAI_MODULE_INIT_FUNCTION(TensorGetShallowCopy);
92-
REDISAI_MODULE_INIT_FUNCTION(TensorNumDims);
93-
REDISAI_MODULE_INIT_FUNCTION(TensorDim);
94-
REDISAI_MODULE_INIT_FUNCTION(TensorByteSize);
95-
REDISAI_MODULE_INIT_FUNCTION(TensorData);
96-
97-
REDISAI_MODULE_INIT_FUNCTION(ModelCreate);
98-
REDISAI_MODULE_INIT_FUNCTION(ModelFree);
99-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxCreate);
100-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxAddInput);
101-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxAddOutput);
102-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxNumOutputs);
103-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxOutputTensor);
104-
REDISAI_MODULE_INIT_FUNCTION(ModelRunCtxFree);
105-
REDISAI_MODULE_INIT_FUNCTION(ModelRun);
106-
REDISAI_MODULE_INIT_FUNCTION(ModelGetShallowCopy);
107-
REDISAI_MODULE_INIT_FUNCTION(ModelSerialize);
108-
109-
REDISAI_MODULE_INIT_FUNCTION(ScriptCreate);
110-
REDISAI_MODULE_INIT_FUNCTION(ScriptFree);
111-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxCreate);
112-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxAddInput);
113-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxAddOutput);
114-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxNumOutputs);
115-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxOutputTensor);
116-
REDISAI_MODULE_INIT_FUNCTION(ScriptRunCtxFree);
117-
REDISAI_MODULE_INIT_FUNCTION(ScriptRun);
118-
REDISAI_MODULE_INIT_FUNCTION(ScriptGetShallowCopy);
79+
static int RedisAI_Initialize(RedisModuleCtx* ctx){
80+
81+
if(!RedisModule_GetSharedAPI){
82+
RedisModule_Log(ctx, "warning", "redis version is not compatible with module shared api, use redis 5.0.4 or above.");
83+
return REDISMODULE_ERR;
84+
}
85+
86+
REDISAI_MODULE_INIT_FUNCTION(ctx, GetLLAPIVersion);
87+
88+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorCreate);
89+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorGetDataSize);
90+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorFree);
91+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorSetData);
92+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorSetValueFromLongLong);
93+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorSetValueFromDouble);
94+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorGetValueAsDouble);
95+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorGetValueAsLongLong);
96+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorGetShallowCopy);
97+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorNumDims);
98+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorDim);
99+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorByteSize);
100+
REDISAI_MODULE_INIT_FUNCTION(ctx, TensorData);
101+
102+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelCreate);
103+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelFree);
104+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxCreate);
105+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxAddInput);
106+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxAddOutput);
107+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxNumOutputs);
108+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxOutputTensor);
109+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRunCtxFree);
110+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelRun);
111+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelGetShallowCopy);
112+
REDISAI_MODULE_INIT_FUNCTION(ctx, ModelSerialize);
113+
114+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptCreate);
115+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptFree);
116+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxCreate);
117+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxAddInput);
118+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxAddOutput);
119+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxNumOutputs);
120+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxOutputTensor);
121+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRunCtxFree);
122+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptRun);
123+
REDISAI_MODULE_INIT_FUNCTION(ctx, ScriptGetShallowCopy);
119124

120125
if(RedisAI_GetLLAPIVersion() < REDISAI_LLAPI_VERSION){
121126
return REDISMODULE_ERR;

0 commit comments

Comments
 (0)