Skip to content

Commit 25edf1c

Browse files
Update redismodule.h to redis5.0 version
1 parent 3e4daab commit 25edf1c

File tree

1 file changed

+176
-12
lines changed

1 file changed

+176
-12
lines changed

redismodule.h

Lines changed: 176 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,46 @@
5858
#define REDISMODULE_HASH_CFIELDS (1<<2)
5959
#define REDISMODULE_HASH_EXISTS (1<<3)
6060

61+
/* Context Flags: Info about the current context returned by
62+
* RM_GetContextFlags(). */
63+
64+
/* The command is running in the context of a Lua script */
65+
#define REDISMODULE_CTX_FLAGS_LUA (1<<0)
66+
/* The command is running inside a Redis transaction */
67+
#define REDISMODULE_CTX_FLAGS_MULTI (1<<1)
68+
/* The instance is a master */
69+
#define REDISMODULE_CTX_FLAGS_MASTER (1<<2)
70+
/* The instance is a slave */
71+
#define REDISMODULE_CTX_FLAGS_SLAVE (1<<3)
72+
/* The instance is read-only (usually meaning it's a slave as well) */
73+
#define REDISMODULE_CTX_FLAGS_READONLY (1<<4)
74+
/* The instance is running in cluster mode */
75+
#define REDISMODULE_CTX_FLAGS_CLUSTER (1<<5)
76+
/* The instance has AOF enabled */
77+
#define REDISMODULE_CTX_FLAGS_AOF (1<<6)
78+
/* The instance has RDB enabled */
79+
#define REDISMODULE_CTX_FLAGS_RDB (1<<7)
80+
/* The instance has Maxmemory set */
81+
#define REDISMODULE_CTX_FLAGS_MAXMEMORY (1<<8)
82+
/* Maxmemory is set and has an eviction policy that may delete keys */
83+
#define REDISMODULE_CTX_FLAGS_EVICT (1<<9)
84+
/* Redis is out of memory according to the maxmemory flag. */
85+
#define REDISMODULE_CTX_FLAGS_OOM (1<<10)
86+
/* Less than 25% of memory available according to maxmemory. */
87+
#define REDISMODULE_CTX_FLAGS_OOM_WARNING (1<<11)
88+
89+
#define REDISMODULE_NOTIFY_GENERIC (1<<2) /* g */
90+
#define REDISMODULE_NOTIFY_STRING (1<<3) /* $ */
91+
#define REDISMODULE_NOTIFY_LIST (1<<4) /* l */
92+
#define REDISMODULE_NOTIFY_SET (1<<5) /* s */
93+
#define REDISMODULE_NOTIFY_HASH (1<<6) /* h */
94+
#define REDISMODULE_NOTIFY_ZSET (1<<7) /* z */
95+
#define REDISMODULE_NOTIFY_EXPIRED (1<<8) /* x */
96+
#define REDISMODULE_NOTIFY_EVICTED (1<<9) /* e */
97+
#define REDISMODULE_NOTIFY_STREAM (1<<10) /* t */
98+
#define REDISMODULE_NOTIFY_ALL (REDISMODULE_NOTIFY_GENERIC | REDISMODULE_NOTIFY_STRING | REDISMODULE_NOTIFY_LIST | REDISMODULE_NOTIFY_SET | REDISMODULE_NOTIFY_HASH | REDISMODULE_NOTIFY_ZSET | REDISMODULE_NOTIFY_EXPIRED | REDISMODULE_NOTIFY_EVICTED | REDISMODULE_NOTIFY_STREAM) /* A */
99+
100+
61101
/* A special pointer that we can use between the core and the module to signal
62102
* field deletion, and that is impossible to be a valid pointer. */
63103
#define REDISMODULE_HASH_DELETE ((RedisModuleString*)(long)1)
@@ -68,8 +108,27 @@
68108
#define REDISMODULE_POSITIVE_INFINITE (1.0/0.0)
69109
#define REDISMODULE_NEGATIVE_INFINITE (-1.0/0.0)
70110

111+
/* Cluster API defines. */
112+
#define REDISMODULE_NODE_ID_LEN 40
113+
#define REDISMODULE_NODE_MYSELF (1<<0)
114+
#define REDISMODULE_NODE_MASTER (1<<1)
115+
#define REDISMODULE_NODE_SLAVE (1<<2)
116+
#define REDISMODULE_NODE_PFAIL (1<<3)
117+
#define REDISMODULE_NODE_FAIL (1<<4)
118+
#define REDISMODULE_NODE_NOFAILOVER (1<<5)
119+
120+
#define REDISMODULE_CLUSTER_FLAG_NONE 0
121+
#define REDISMODULE_CLUSTER_FLAG_NO_FAILOVER (1<<1)
122+
#define REDISMODULE_CLUSTER_FLAG_NO_REDIRECTION (1<<2)
123+
71124
#define REDISMODULE_NOT_USED(V) ((void) V)
72125

126+
/* This type represents a timer handle, and is returned when a timer is
127+
* registered and used in order to invalidate a timer. It's just a 64 bit
128+
* number, because this is how each timer is represented inside the radix tree
129+
* of timers that are going to expire, sorted by expire time. */
130+
typedef uint64_t RedisModuleTimerID;
131+
73132
/* ------------------------- End of common defines ------------------------ */
74133

75134
#ifndef REDISMODULE_CORE
@@ -85,15 +144,21 @@ typedef struct RedisModuleIO RedisModuleIO;
85144
typedef struct RedisModuleType RedisModuleType;
86145
typedef struct RedisModuleDigest RedisModuleDigest;
87146
typedef struct RedisModuleBlockedClient RedisModuleBlockedClient;
147+
typedef struct RedisModuleClusterInfo RedisModuleClusterInfo;
148+
typedef struct RedisModuleDict RedisModuleDict;
149+
typedef struct RedisModuleDictIter RedisModuleDictIter;
88150

89-
typedef int (*RedisModuleCmdFunc) (RedisModuleCtx *ctx, RedisModuleString **argv, int argc);
90-
151+
typedef int (*RedisModuleCmdFunc)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc);
152+
typedef void (*RedisModuleDisconnectFunc)(RedisModuleCtx *ctx, RedisModuleBlockedClient *bc);
153+
typedef int (*RedisModuleNotificationFunc)(RedisModuleCtx *ctx, int type, const char *event, RedisModuleString *key);
91154
typedef void *(*RedisModuleTypeLoadFunc)(RedisModuleIO *rdb, int encver);
92155
typedef void (*RedisModuleTypeSaveFunc)(RedisModuleIO *rdb, void *value);
93156
typedef void (*RedisModuleTypeRewriteFunc)(RedisModuleIO *aof, RedisModuleString *key, void *value);
94157
typedef size_t (*RedisModuleTypeMemUsageFunc)(const void *value);
95158
typedef void (*RedisModuleTypeDigestFunc)(RedisModuleDigest *digest, void *value);
96159
typedef void (*RedisModuleTypeFreeFunc)(void *value);
160+
typedef void (*RedisModuleClusterMessageReceiver)(RedisModuleCtx *ctx, const char *sender_id, uint8_t type, const unsigned char *payload, uint32_t len);
161+
typedef void (*RedisModuleTimerProc)(RedisModuleCtx *ctx, void *data);
97162

98163
#define REDISMODULE_TYPE_METHOD_VERSION 1
99164
typedef struct RedisModuleTypeMethods {
@@ -119,7 +184,8 @@ void *REDISMODULE_API_FUNC(RedisModule_Calloc)(size_t nmemb, size_t size);
119184
char *REDISMODULE_API_FUNC(RedisModule_Strdup)(const char *str);
120185
int REDISMODULE_API_FUNC(RedisModule_GetApi)(const char *, void *);
121186
int REDISMODULE_API_FUNC(RedisModule_CreateCommand)(RedisModuleCtx *ctx, const char *name, RedisModuleCmdFunc cmdfunc, const char *strflags, int firstkey, int lastkey, int keystep);
122-
int REDISMODULE_API_FUNC(RedisModule_SetModuleAttribs)(RedisModuleCtx *ctx, const char *name, int ver, int apiver);
187+
void REDISMODULE_API_FUNC(RedisModule_SetModuleAttribs)(RedisModuleCtx *ctx, const char *name, int ver, int apiver);
188+
int REDISMODULE_API_FUNC(RedisModule_IsModuleNameBusy)(const char *name);
123189
int REDISMODULE_API_FUNC(RedisModule_WrongArity)(RedisModuleCtx *ctx);
124190
int REDISMODULE_API_FUNC(RedisModule_ReplyWithLongLong)(RedisModuleCtx *ctx, long long ll);
125191
int REDISMODULE_API_FUNC(RedisModule_GetSelectedDb)(RedisModuleCtx *ctx);
@@ -160,6 +226,7 @@ int REDISMODULE_API_FUNC(RedisModule_ReplicateVerbatim)(RedisModuleCtx *ctx);
160226
const char *REDISMODULE_API_FUNC(RedisModule_CallReplyStringPtr)(RedisModuleCallReply *reply, size_t *len);
161227
RedisModuleString *REDISMODULE_API_FUNC(RedisModule_CreateStringFromCallReply)(RedisModuleCallReply *reply);
162228
int REDISMODULE_API_FUNC(RedisModule_DeleteKey)(RedisModuleKey *key);
229+
int REDISMODULE_API_FUNC(RedisModule_UnlinkKey)(RedisModuleKey *key);
163230
int REDISMODULE_API_FUNC(RedisModule_StringSet)(RedisModuleKey *key, RedisModuleString *str);
164231
char *REDISMODULE_API_FUNC(RedisModule_StringDMA)(RedisModuleKey *key, size_t *len, int mode);
165232
int REDISMODULE_API_FUNC(RedisModule_StringTruncate)(RedisModuleKey *key, size_t newlen);
@@ -183,6 +250,7 @@ int REDISMODULE_API_FUNC(RedisModule_HashGet)(RedisModuleKey *key, int flags, ..
183250
int REDISMODULE_API_FUNC(RedisModule_IsKeysPositionRequest)(RedisModuleCtx *ctx);
184251
void REDISMODULE_API_FUNC(RedisModule_KeyAtPos)(RedisModuleCtx *ctx, int pos);
185252
unsigned long long REDISMODULE_API_FUNC(RedisModule_GetClientId)(RedisModuleCtx *ctx);
253+
int REDISMODULE_API_FUNC(RedisModule_GetContextFlags)(RedisModuleCtx *ctx);
186254
void *REDISMODULE_API_FUNC(RedisModule_PoolAlloc)(RedisModuleCtx *ctx, size_t bytes);
187255
RedisModuleType *REDISMODULE_API_FUNC(RedisModule_CreateDataType)(RedisModuleCtx *ctx, const char *name, int encver, RedisModuleTypeMethods *typemethods);
188256
int REDISMODULE_API_FUNC(RedisModule_ModuleTypeSetValue)(RedisModuleKey *key, RedisModuleType *mt, void *value);
@@ -207,17 +275,64 @@ int REDISMODULE_API_FUNC(RedisModule_StringAppendBuffer)(RedisModuleCtx *ctx, Re
207275
void REDISMODULE_API_FUNC(RedisModule_RetainString)(RedisModuleCtx *ctx, RedisModuleString *str);
208276
int REDISMODULE_API_FUNC(RedisModule_StringCompare)(RedisModuleString *a, RedisModuleString *b);
209277
RedisModuleCtx *REDISMODULE_API_FUNC(RedisModule_GetContextFromIO)(RedisModuleIO *io);
210-
RedisModuleBlockedClient *REDISMODULE_API_FUNC(RedisModule_BlockClient)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(void*), long long timeout_ms);
278+
long long REDISMODULE_API_FUNC(RedisModule_Milliseconds)(void);
279+
void REDISMODULE_API_FUNC(RedisModule_DigestAddStringBuffer)(RedisModuleDigest *md, unsigned char *ele, size_t len);
280+
void REDISMODULE_API_FUNC(RedisModule_DigestAddLongLong)(RedisModuleDigest *md, long long ele);
281+
void REDISMODULE_API_FUNC(RedisModule_DigestEndSequence)(RedisModuleDigest *md);
282+
RedisModuleDict *REDISMODULE_API_FUNC(RedisModule_CreateDict)(RedisModuleCtx *ctx);
283+
void REDISMODULE_API_FUNC(RedisModule_FreeDict)(RedisModuleCtx *ctx, RedisModuleDict *d);
284+
uint64_t REDISMODULE_API_FUNC(RedisModule_DictSize)(RedisModuleDict *d);
285+
int REDISMODULE_API_FUNC(RedisModule_DictSetC)(RedisModuleDict *d, void *key, size_t keylen, void *ptr);
286+
int REDISMODULE_API_FUNC(RedisModule_DictReplaceC)(RedisModuleDict *d, void *key, size_t keylen, void *ptr);
287+
int REDISMODULE_API_FUNC(RedisModule_DictSet)(RedisModuleDict *d, RedisModuleString *key, void *ptr);
288+
int REDISMODULE_API_FUNC(RedisModule_DictReplace)(RedisModuleDict *d, RedisModuleString *key, void *ptr);
289+
void *REDISMODULE_API_FUNC(RedisModule_DictGetC)(RedisModuleDict *d, void *key, size_t keylen, int *nokey);
290+
void *REDISMODULE_API_FUNC(RedisModule_DictGet)(RedisModuleDict *d, RedisModuleString *key, int *nokey);
291+
int REDISMODULE_API_FUNC(RedisModule_DictDelC)(RedisModuleDict *d, void *key, size_t keylen, void *oldval);
292+
int REDISMODULE_API_FUNC(RedisModule_DictDel)(RedisModuleDict *d, RedisModuleString *key, void *oldval);
293+
RedisModuleDictIter *REDISMODULE_API_FUNC(RedisModule_DictIteratorStartC)(RedisModuleDict *d, const char *op, void *key, size_t keylen);
294+
RedisModuleDictIter *REDISMODULE_API_FUNC(RedisModule_DictIteratorStart)(RedisModuleDict *d, const char *op, RedisModuleString *key);
295+
void REDISMODULE_API_FUNC(RedisModule_DictIteratorStop)(RedisModuleDictIter *di);
296+
int REDISMODULE_API_FUNC(RedisModule_DictIteratorReseekC)(RedisModuleDictIter *di, const char *op, void *key, size_t keylen);
297+
int REDISMODULE_API_FUNC(RedisModule_DictIteratorReseek)(RedisModuleDictIter *di, const char *op, RedisModuleString *key);
298+
void *REDISMODULE_API_FUNC(RedisModule_DictNextC)(RedisModuleDictIter *di, size_t *keylen, void **dataptr);
299+
void *REDISMODULE_API_FUNC(RedisModule_DictPrevC)(RedisModuleDictIter *di, size_t *keylen, void **dataptr);
300+
RedisModuleString *REDISMODULE_API_FUNC(RedisModule_DictNext)(RedisModuleCtx *ctx, RedisModuleDictIter *di, void **dataptr);
301+
RedisModuleString *REDISMODULE_API_FUNC(RedisModule_DictPrev)(RedisModuleCtx *ctx, RedisModuleDictIter *di, void **dataptr);
302+
int REDISMODULE_API_FUNC(RedisModule_DictCompareC)(RedisModuleDictIter *di, const char *op, void *key, size_t keylen);
303+
int REDISMODULE_API_FUNC(RedisModule_DictCompare)(RedisModuleDictIter *di, const char *op, RedisModuleString *key);
304+
305+
/* Experimental APIs */
306+
#ifdef REDISMODULE_EXPERIMENTAL_API
307+
#define REDISMODULE_EXPERIMENTAL_API_VERSION 3
308+
RedisModuleBlockedClient *REDISMODULE_API_FUNC(RedisModule_BlockClient)(RedisModuleCtx *ctx, RedisModuleCmdFunc reply_callback, RedisModuleCmdFunc timeout_callback, void (*free_privdata)(RedisModuleCtx*,void*), long long timeout_ms);
211309
int REDISMODULE_API_FUNC(RedisModule_UnblockClient)(RedisModuleBlockedClient *bc, void *privdata);
212310
int REDISMODULE_API_FUNC(RedisModule_IsBlockedReplyRequest)(RedisModuleCtx *ctx);
213311
int REDISMODULE_API_FUNC(RedisModule_IsBlockedTimeoutRequest)(RedisModuleCtx *ctx);
214312
void *REDISMODULE_API_FUNC(RedisModule_GetBlockedClientPrivateData)(RedisModuleCtx *ctx);
313+
RedisModuleBlockedClient *REDISMODULE_API_FUNC(RedisModule_GetBlockedClientHandle)(RedisModuleCtx *ctx);
215314
int REDISMODULE_API_FUNC(RedisModule_AbortBlock)(RedisModuleBlockedClient *bc);
216-
long long REDISMODULE_API_FUNC(RedisModule_Milliseconds)(void);
217315
RedisModuleCtx *REDISMODULE_API_FUNC(RedisModule_GetThreadSafeContext)(RedisModuleBlockedClient *bc);
218316
void REDISMODULE_API_FUNC(RedisModule_FreeThreadSafeContext)(RedisModuleCtx *ctx);
219317
void REDISMODULE_API_FUNC(RedisModule_ThreadSafeContextLock)(RedisModuleCtx *ctx);
220318
void REDISMODULE_API_FUNC(RedisModule_ThreadSafeContextUnlock)(RedisModuleCtx *ctx);
319+
int REDISMODULE_API_FUNC(RedisModule_SubscribeToKeyspaceEvents)(RedisModuleCtx *ctx, int types, RedisModuleNotificationFunc cb);
320+
int REDISMODULE_API_FUNC(RedisModule_BlockedClientDisconnected)(RedisModuleCtx *ctx);
321+
void REDISMODULE_API_FUNC(RedisModule_RegisterClusterMessageReceiver)(RedisModuleCtx *ctx, uint8_t type, RedisModuleClusterMessageReceiver callback);
322+
int REDISMODULE_API_FUNC(RedisModule_SendClusterMessage)(RedisModuleCtx *ctx, char *target_id, uint8_t type, unsigned char *msg, uint32_t len);
323+
int REDISMODULE_API_FUNC(RedisModule_GetClusterNodeInfo)(RedisModuleCtx *ctx, const char *id, char *ip, char *master_id, int *port, int *flags);
324+
char **REDISMODULE_API_FUNC(RedisModule_GetClusterNodesList)(RedisModuleCtx *ctx, size_t *numnodes);
325+
void REDISMODULE_API_FUNC(RedisModule_FreeClusterNodesList)(char **ids);
326+
RedisModuleTimerID REDISMODULE_API_FUNC(RedisModule_CreateTimer)(RedisModuleCtx *ctx, mstime_t period, RedisModuleTimerProc callback, void *data);
327+
int REDISMODULE_API_FUNC(RedisModule_StopTimer)(RedisModuleCtx *ctx, RedisModuleTimerID id, void **data);
328+
int REDISMODULE_API_FUNC(RedisModule_GetTimerInfo)(RedisModuleCtx *ctx, RedisModuleTimerID id, uint64_t *remaining, void **data);
329+
const char *REDISMODULE_API_FUNC(RedisModule_GetMyClusterID)(void);
330+
size_t REDISMODULE_API_FUNC(RedisModule_GetClusterSize)(void);
331+
void REDISMODULE_API_FUNC(RedisModule_GetRandomBytes)(unsigned char *dst, size_t len);
332+
void REDISMODULE_API_FUNC(RedisModule_GetRandomHexChars)(char *dst, size_t len);
333+
void REDISMODULE_API_FUNC(RedisModule_SetDisconnectCallback)(RedisModuleBlockedClient *bc, RedisModuleDisconnectFunc callback);
334+
void REDISMODULE_API_FUNC(RedisModule_SetClusterFlags)(RedisModuleCtx *ctx, uint64_t flags);
335+
#endif
221336

222337
/* This is included inline inside each Redis module. */
223338
static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int apiver) __attribute__((unused));
@@ -231,6 +346,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
231346
REDISMODULE_GET_API(Strdup);
232347
REDISMODULE_GET_API(CreateCommand);
233348
REDISMODULE_GET_API(SetModuleAttribs);
349+
REDISMODULE_GET_API(IsModuleNameBusy);
234350
REDISMODULE_GET_API(WrongArity);
235351
REDISMODULE_GET_API(ReplyWithLongLong);
236352
REDISMODULE_GET_API(ReplyWithError);
@@ -272,6 +388,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
272388
REDISMODULE_GET_API(Replicate);
273389
REDISMODULE_GET_API(ReplicateVerbatim);
274390
REDISMODULE_GET_API(DeleteKey);
391+
REDISMODULE_GET_API(UnlinkKey);
275392
REDISMODULE_GET_API(StringSet);
276393
REDISMODULE_GET_API(StringDMA);
277394
REDISMODULE_GET_API(StringTruncate);
@@ -295,6 +412,7 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
295412
REDISMODULE_GET_API(IsKeysPositionRequest);
296413
REDISMODULE_GET_API(KeyAtPos);
297414
REDISMODULE_GET_API(GetClientId);
415+
REDISMODULE_GET_API(GetContextFlags);
298416
REDISMODULE_GET_API(PoolAlloc);
299417
REDISMODULE_GET_API(CreateDataType);
300418
REDISMODULE_GET_API(ModuleTypeSetValue);
@@ -319,18 +437,64 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
319437
REDISMODULE_GET_API(RetainString);
320438
REDISMODULE_GET_API(StringCompare);
321439
REDISMODULE_GET_API(GetContextFromIO);
440+
REDISMODULE_GET_API(Milliseconds);
441+
REDISMODULE_GET_API(DigestAddStringBuffer);
442+
REDISMODULE_GET_API(DigestAddLongLong);
443+
REDISMODULE_GET_API(DigestEndSequence);
444+
REDISMODULE_GET_API(CreateDict);
445+
REDISMODULE_GET_API(FreeDict);
446+
REDISMODULE_GET_API(DictSize);
447+
REDISMODULE_GET_API(DictSetC);
448+
REDISMODULE_GET_API(DictReplaceC);
449+
REDISMODULE_GET_API(DictSet);
450+
REDISMODULE_GET_API(DictReplace);
451+
REDISMODULE_GET_API(DictGetC);
452+
REDISMODULE_GET_API(DictGet);
453+
REDISMODULE_GET_API(DictDelC);
454+
REDISMODULE_GET_API(DictDel);
455+
REDISMODULE_GET_API(DictIteratorStartC);
456+
REDISMODULE_GET_API(DictIteratorStart);
457+
REDISMODULE_GET_API(DictIteratorStop);
458+
REDISMODULE_GET_API(DictIteratorReseekC);
459+
REDISMODULE_GET_API(DictIteratorReseek);
460+
REDISMODULE_GET_API(DictNextC);
461+
REDISMODULE_GET_API(DictPrevC);
462+
REDISMODULE_GET_API(DictNext);
463+
REDISMODULE_GET_API(DictPrev);
464+
REDISMODULE_GET_API(DictCompare);
465+
REDISMODULE_GET_API(DictCompareC);
466+
467+
#ifdef REDISMODULE_EXPERIMENTAL_API
468+
REDISMODULE_GET_API(GetThreadSafeContext);
469+
REDISMODULE_GET_API(FreeThreadSafeContext);
470+
REDISMODULE_GET_API(ThreadSafeContextLock);
471+
REDISMODULE_GET_API(ThreadSafeContextUnlock);
322472
REDISMODULE_GET_API(BlockClient);
323473
REDISMODULE_GET_API(UnblockClient);
324474
REDISMODULE_GET_API(IsBlockedReplyRequest);
325475
REDISMODULE_GET_API(IsBlockedTimeoutRequest);
326476
REDISMODULE_GET_API(GetBlockedClientPrivateData);
477+
REDISMODULE_GET_API(GetBlockedClientHandle);
327478
REDISMODULE_GET_API(AbortBlock);
328-
REDISMODULE_GET_API(Milliseconds);
329-
REDISMODULE_GET_API(GetThreadSafeContext);
330-
REDISMODULE_GET_API(FreeThreadSafeContext);
331-
REDISMODULE_GET_API(ThreadSafeContextLock);
332-
REDISMODULE_GET_API(ThreadSafeContextUnlock);
333-
479+
REDISMODULE_GET_API(SetDisconnectCallback);
480+
REDISMODULE_GET_API(SubscribeToKeyspaceEvents);
481+
REDISMODULE_GET_API(BlockedClientDisconnected);
482+
REDISMODULE_GET_API(RegisterClusterMessageReceiver);
483+
REDISMODULE_GET_API(SendClusterMessage);
484+
REDISMODULE_GET_API(GetClusterNodeInfo);
485+
REDISMODULE_GET_API(GetClusterNodesList);
486+
REDISMODULE_GET_API(FreeClusterNodesList);
487+
REDISMODULE_GET_API(CreateTimer);
488+
REDISMODULE_GET_API(StopTimer);
489+
REDISMODULE_GET_API(GetTimerInfo);
490+
REDISMODULE_GET_API(GetMyClusterID);
491+
REDISMODULE_GET_API(GetClusterSize);
492+
REDISMODULE_GET_API(GetRandomBytes);
493+
REDISMODULE_GET_API(GetRandomHexChars);
494+
REDISMODULE_GET_API(SetClusterFlags);
495+
#endif
496+
497+
if (RedisModule_IsModuleNameBusy && RedisModule_IsModuleNameBusy(name)) return REDISMODULE_ERR;
334498
RedisModule_SetModuleAttribs(ctx,name,ver,apiver);
335499
return REDISMODULE_OK;
336500
}
@@ -342,4 +506,4 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
342506
#define RedisModuleString robj
343507

344508
#endif /* REDISMODULE_CORE */
345-
#endif /* REDISMOUDLE_H */
509+
#endif /* REDISMOUDLE_H */

0 commit comments

Comments
 (0)