Skip to content

Commit e866a07

Browse files
add dict defrag (#74)
1 parent fae8bc7 commit e866a07

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

redismodule.h

+6
Original file line numberDiff line numberDiff line change
@@ -845,7 +845,9 @@ typedef struct RedisModuleDefragCtx RedisModuleDefragCtx;
845845
* exposed since you can't cast a function pointer to (void *). */
846846
typedef void (*RedisModuleInfoFunc)(RedisModuleInfoCtx *ctx, int for_crash_report);
847847
typedef void (*RedisModuleDefragFunc)(RedisModuleDefragCtx *ctx);
848+
typedef int (*RedisModuleDefragFunc2)(RedisModuleDefragCtx *ctx);
848849
typedef void (*RedisModuleUserChangedFunc) (uint64_t client_id, void *privdata);
850+
typedef void *(*RedisModuleDefragDictValueCallback)(RedisModuleDefragCtx *ctx, void *data, unsigned char *key, size_t keylen);
849851

850852
/* ------------------------- End of common defines ------------------------ */
851853

@@ -1314,11 +1316,13 @@ REDISMODULE_API int *(*RedisModule_GetCommandKeys)(RedisModuleCtx *ctx, RedisMod
13141316
REDISMODULE_API int *(*RedisModule_GetCommandKeysWithFlags)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, int *num_keys, int **out_flags) REDISMODULE_ATTR;
13151317
REDISMODULE_API const char *(*RedisModule_GetCurrentCommandName)(RedisModuleCtx *ctx) REDISMODULE_ATTR;
13161318
REDISMODULE_API int (*RedisModule_RegisterDefragFunc)(RedisModuleCtx *ctx, RedisModuleDefragFunc func) REDISMODULE_ATTR;
1319+
REDISMODULE_API int (*RedisModule_RegisterDefragFunc2)(RedisModuleCtx *ctx, RedisModuleDefragFunc2 func) REDISMODULE_ATTR;
13171320
REDISMODULE_API int (*RedisModule_RegisterDefragCallbacks)(RedisModuleCtx *ctx, RedisModuleDefragFunc start, RedisModuleDefragFunc end) REDISMODULE_ATTR;
13181321
REDISMODULE_API void *(*RedisModule_DefragAlloc)(RedisModuleDefragCtx *ctx, void *ptr) REDISMODULE_ATTR;
13191322
REDISMODULE_API void *(*RedisModule_DefragAllocRaw)(RedisModuleDefragCtx *ctx, size_t size) REDISMODULE_ATTR;
13201323
REDISMODULE_API void (*RedisModule_DefragFreeRaw)(RedisModuleDefragCtx *ctx, void *ptr) REDISMODULE_ATTR;
13211324
REDISMODULE_API RedisModuleString *(*RedisModule_DefragRedisModuleString)(RedisModuleDefragCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR;
1325+
REDISMODULE_API RedisModuleDict *(*RedisModule_DefragRedisModuleDict)(RedisModuleDefragCtx *ctx, RedisModuleDict *dict, RedisModuleDefragDictValueCallback valueCB, RedisModuleString **seekTo) REDISMODULE_ATTR;
13221326
REDISMODULE_API int (*RedisModule_DefragShouldStop)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR;
13231327
REDISMODULE_API int (*RedisModule_DefragCursorSet)(RedisModuleDefragCtx *ctx, unsigned long cursor) REDISMODULE_ATTR;
13241328
REDISMODULE_API int (*RedisModule_DefragCursorGet)(RedisModuleDefragCtx *ctx, unsigned long *cursor) REDISMODULE_ATTR;
@@ -1691,11 +1695,13 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
16911695
REDISMODULE_GET_API(GetCommandKeysWithFlags);
16921696
REDISMODULE_GET_API(GetCurrentCommandName);
16931697
REDISMODULE_GET_API(RegisterDefragFunc);
1698+
REDISMODULE_GET_API(RegisterDefragFunc2);
16941699
REDISMODULE_GET_API(RegisterDefragCallbacks);
16951700
REDISMODULE_GET_API(DefragAlloc);
16961701
REDISMODULE_GET_API(DefragAllocRaw);
16971702
REDISMODULE_GET_API(DefragFreeRaw);
16981703
REDISMODULE_GET_API(DefragRedisModuleString);
1704+
REDISMODULE_GET_API(DefragRedisModuleDict);
16991705
REDISMODULE_GET_API(DefragShouldStop);
17001706
REDISMODULE_GET_API(DefragCursorSet);
17011707
REDISMODULE_GET_API(DefragCursorGet);

0 commit comments

Comments
 (0)