Skip to content

Commit 837c67a

Browse files
committed
Sync with Redis/master
1 parent 6d9255f commit 837c67a

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

redismodule.h

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ extern "C" {
2222

2323
/* Version of the RedisModuleTypeMethods structure. Once the RedisModuleTypeMethods
2424
* structure is changed, this version number needs to be changed synchronistically. */
25-
#define REDISMODULE_TYPE_METHOD_VERSION 3
25+
#define REDISMODULE_TYPE_METHOD_VERSION 4
2626

2727
/* API flags and constants */
2828
#define REDISMODULE_READ (1<<0)
@@ -526,6 +526,7 @@ typedef struct RedisModuleServerInfoData RedisModuleServerInfoData;
526526
typedef struct RedisModuleScanCursor RedisModuleScanCursor;
527527
typedef struct RedisModuleDefragCtx RedisModuleDefragCtx;
528528
typedef struct RedisModuleUser RedisModuleUser;
529+
typedef struct RedisModuleKeyOptCtx RedisModuleKeyOptCtx;
529530

530531
typedef int (*RedisModuleCmdFunc)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc);
531532
typedef void (*RedisModuleDisconnectFunc)(RedisModuleCtx *ctx, RedisModuleBlockedClient *bc);
@@ -536,11 +537,15 @@ typedef int (*RedisModuleTypeAuxLoadFunc)(RedisModuleIO *rdb, int encver, int wh
536537
typedef void (*RedisModuleTypeAuxSaveFunc)(RedisModuleIO *rdb, int when);
537538
typedef void (*RedisModuleTypeRewriteFunc)(RedisModuleIO *aof, RedisModuleString *key, void *value);
538539
typedef size_t (*RedisModuleTypeMemUsageFunc)(const void *value);
540+
typedef size_t (*RedisModuleTypeMemUsageFunc2)(RedisModuleKeyOptCtx *ctx, const void *value);
539541
typedef void (*RedisModuleTypeDigestFunc)(RedisModuleDigest *digest, void *value);
540542
typedef void (*RedisModuleTypeFreeFunc)(void *value);
541543
typedef size_t (*RedisModuleTypeFreeEffortFunc)(RedisModuleString *key, const void *value);
544+
typedef size_t (*RedisModuleTypeFreeEffortFunc2)(RedisModuleKeyOptCtx *ctx, const void *value);
542545
typedef void (*RedisModuleTypeUnlinkFunc)(RedisModuleString *key, const void *value);
546+
typedef void (*RedisModuleTypeUnlinkFunc2)(RedisModuleKeyOptCtx *ctx, const void *value);
543547
typedef void *(*RedisModuleTypeCopyFunc)(RedisModuleString *fromkey, RedisModuleString *tokey, const void *value);
548+
typedef void *(*RedisModuleTypeCopyFunc2)(RedisModuleKeyOptCtx *ctx, const void *value);
544549
typedef int (*RedisModuleTypeDefragFunc)(RedisModuleDefragCtx *ctx, RedisModuleString *key, void **value);
545550
typedef void (*RedisModuleClusterMessageReceiver)(RedisModuleCtx *ctx, const char *sender_id, uint8_t type, const unsigned char *payload, uint32_t len);
546551
typedef void (*RedisModuleTimerProc)(RedisModuleCtx *ctx, void *data);
@@ -567,6 +572,10 @@ typedef struct RedisModuleTypeMethods {
567572
RedisModuleTypeUnlinkFunc unlink;
568573
RedisModuleTypeCopyFunc copy;
569574
RedisModuleTypeDefragFunc defrag;
575+
RedisModuleTypeMemUsageFunc2 mem_usage2;
576+
RedisModuleTypeFreeEffortFunc2 free_effort2;
577+
RedisModuleTypeUnlinkFunc2 unlink2;
578+
RedisModuleTypeCopyFunc2 copy2;
570579
} RedisModuleTypeMethods;
571580

572581
#define REDISMODULE_GET_API(name) \
@@ -726,10 +735,18 @@ REDISMODULE_API int (*RedisModule_StringCompare)(RedisModuleString *a, RedisModu
726735
REDISMODULE_API RedisModuleCtx * (*RedisModule_GetContextFromIO)(RedisModuleIO *io) REDISMODULE_ATTR;
727736
REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromIO)(RedisModuleIO *io) REDISMODULE_ATTR;
728737
REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromModuleKey)(RedisModuleKey *key) REDISMODULE_ATTR;
738+
REDISMODULE_API int (*RedisModule_GetDbIdFromModuleKey)(RedisModuleKey *key) REDISMODULE_ATTR;
739+
REDISMODULE_API int (*RedisModule_GetDbIdFromIO)(RedisModuleIO *io) REDISMODULE_ATTR;
740+
REDISMODULE_API int (*RedisModule_GetDbIdFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR;
741+
REDISMODULE_API int (*RedisModule_GetToDbIdFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR;
742+
REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR;
743+
REDISMODULE_API const RedisModuleString * (*RedisModule_GetToKeyNameFromOptCtx)(RedisModuleKeyOptCtx *ctx) REDISMODULE_ATTR;
729744
REDISMODULE_API long long (*RedisModule_Milliseconds)(void) REDISMODULE_ATTR;
730745
REDISMODULE_API void (*RedisModule_DigestAddStringBuffer)(RedisModuleDigest *md, unsigned char *ele, size_t len) REDISMODULE_ATTR;
731746
REDISMODULE_API void (*RedisModule_DigestAddLongLong)(RedisModuleDigest *md, long long ele) REDISMODULE_ATTR;
732747
REDISMODULE_API void (*RedisModule_DigestEndSequence)(RedisModuleDigest *md) REDISMODULE_ATTR;
748+
REDISMODULE_API int (*RedisModule_GetDbIdFromDigest)(RedisModuleDigest *dig) REDISMODULE_ATTR;
749+
REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromDigest)(RedisModuleDigest *dig) REDISMODULE_ATTR;
733750
REDISMODULE_API RedisModuleDict * (*RedisModule_CreateDict)(RedisModuleCtx *ctx) REDISMODULE_ATTR;
734751
REDISMODULE_API void (*RedisModule_FreeDict)(RedisModuleCtx *ctx, RedisModuleDict *d) REDISMODULE_ATTR;
735752
REDISMODULE_API uint64_t (*RedisModule_DictSize)(RedisModuleDict *d) REDISMODULE_ATTR;
@@ -846,12 +863,15 @@ REDISMODULE_API int (*RedisModule_AuthenticateClientWithUser)(RedisModuleCtx *ct
846863
REDISMODULE_API int (*RedisModule_DeauthenticateAndCloseClient)(RedisModuleCtx *ctx, uint64_t client_id) REDISMODULE_ATTR;
847864
REDISMODULE_API RedisModuleString * (*RedisModule_GetClientCertificate)(RedisModuleCtx *ctx, uint64_t id) REDISMODULE_ATTR;
848865
REDISMODULE_API int *(*RedisModule_GetCommandKeys)(RedisModuleCtx *ctx, RedisModuleString **argv, int argc, int *num_keys) REDISMODULE_ATTR;
866+
REDISMODULE_API const char *(*RedisModule_GetCurrentCommandName)(RedisModuleCtx *ctx) REDISMODULE_ATTR;
849867
REDISMODULE_API int (*RedisModule_RegisterDefragFunc)(RedisModuleCtx *ctx, RedisModuleDefragFunc func) REDISMODULE_ATTR;
850868
REDISMODULE_API void *(*RedisModule_DefragAlloc)(RedisModuleDefragCtx *ctx, void *ptr) REDISMODULE_ATTR;
851869
REDISMODULE_API RedisModuleString *(*RedisModule_DefragRedisModuleString)(RedisModuleDefragCtx *ctx, RedisModuleString *str) REDISMODULE_ATTR;
852870
REDISMODULE_API int (*RedisModule_DefragShouldStop)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR;
853871
REDISMODULE_API int (*RedisModule_DefragCursorSet)(RedisModuleDefragCtx *ctx, unsigned long cursor) REDISMODULE_ATTR;
854872
REDISMODULE_API int (*RedisModule_DefragCursorGet)(RedisModuleDefragCtx *ctx, unsigned long *cursor) REDISMODULE_ATTR;
873+
REDISMODULE_API int (*RedisModule_GetDbIdFromDefragCtx)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR;
874+
REDISMODULE_API const RedisModuleString * (*RedisModule_GetKeyNameFromDefragCtx)(RedisModuleDefragCtx *ctx) REDISMODULE_ATTR;
855875
#endif
856876

857877
#define RedisModule_IsAOFClient(id) ((id) == UINT64_MAX)
@@ -998,10 +1018,18 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
9981018
REDISMODULE_GET_API(GetContextFromIO);
9991019
REDISMODULE_GET_API(GetKeyNameFromIO);
10001020
REDISMODULE_GET_API(GetKeyNameFromModuleKey);
1021+
REDISMODULE_GET_API(GetDbIdFromModuleKey);
1022+
REDISMODULE_GET_API(GetDbIdFromIO);
1023+
REDISMODULE_GET_API(GetKeyNameFromOptCtx);
1024+
REDISMODULE_GET_API(GetToKeyNameFromOptCtx);
1025+
REDISMODULE_GET_API(GetDbIdFromOptCtx);
1026+
REDISMODULE_GET_API(GetToDbIdFromOptCtx);
10011027
REDISMODULE_GET_API(Milliseconds);
10021028
REDISMODULE_GET_API(DigestAddStringBuffer);
10031029
REDISMODULE_GET_API(DigestAddLongLong);
10041030
REDISMODULE_GET_API(DigestEndSequence);
1031+
REDISMODULE_GET_API(GetKeyNameFromDigest);
1032+
REDISMODULE_GET_API(GetDbIdFromDigest);
10051033
REDISMODULE_GET_API(CreateDict);
10061034
REDISMODULE_GET_API(FreeDict);
10071035
REDISMODULE_GET_API(DictSize);
@@ -1118,12 +1146,15 @@ static int RedisModule_Init(RedisModuleCtx *ctx, const char *name, int ver, int
11181146
REDISMODULE_GET_API(AuthenticateClientWithUser);
11191147
REDISMODULE_GET_API(GetClientCertificate);
11201148
REDISMODULE_GET_API(GetCommandKeys);
1149+
REDISMODULE_GET_API(GetCurrentCommandName);
11211150
REDISMODULE_GET_API(RegisterDefragFunc);
11221151
REDISMODULE_GET_API(DefragAlloc);
11231152
REDISMODULE_GET_API(DefragRedisModuleString);
11241153
REDISMODULE_GET_API(DefragShouldStop);
11251154
REDISMODULE_GET_API(DefragCursorSet);
11261155
REDISMODULE_GET_API(DefragCursorGet);
1156+
REDISMODULE_GET_API(GetKeyNameFromDefragCtx);
1157+
REDISMODULE_GET_API(GetDbIdFromDefragCtx);
11271158
#endif
11281159

11291160
if (RedisModule_IsModuleNameBusy && RedisModule_IsModuleNameBusy(name)) return REDISMODULE_ERR;

0 commit comments

Comments
 (0)