diff options
author | Salvatore Sanfilippo <antirez@gmail.com> | 2019-07-30 11:50:44 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-30 11:50:44 +0200 |
commit | f42846e8c7127c8e84b6938a6bd73e2363b4a90c (patch) | |
tree | 275cb890f44853662abd1980d00cf64cdab23d5f /src/server.h | |
parent | ce72cac0f84b5c900cb80f59de914fa1ee90da9c (diff) | |
parent | 3b6aeea44cf8bdc64214a5f145da55453722a9a2 (diff) | |
download | redis-f42846e8c7127c8e84b6938a6bd73e2363b4a90c.tar.gz |
Merge pull request #6264 from oranagra/modules_api_aux_rdb
Implement module api for aux data in rdb
Diffstat (limited to 'src/server.h')
-rw-r--r-- | src/server.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/server.h b/src/server.h index 399a0bbb6..91628186e 100644 --- a/src/server.h +++ b/src/server.h @@ -537,6 +537,10 @@ typedef long long mstime_t; /* millisecond time type. */ #define REDISMODULE_TYPE_ENCVER(id) (id & REDISMODULE_TYPE_ENCVER_MASK) #define REDISMODULE_TYPE_SIGN(id) ((id & ~((uint64_t)REDISMODULE_TYPE_ENCVER_MASK)) >>REDISMODULE_TYPE_ENCVER_BITS) +/* Bit flags for moduleTypeAuxSaveFunc */ +#define REDISMODULE_AUX_BEFORE_RDB (1<<0) +#define REDISMODULE_AUX_AFTER_RDB (1<<1) + struct RedisModule; struct RedisModuleIO; struct RedisModuleDigest; @@ -549,6 +553,8 @@ struct redisObject; * is deleted. */ typedef void *(*moduleTypeLoadFunc)(struct RedisModuleIO *io, int encver); typedef void (*moduleTypeSaveFunc)(struct RedisModuleIO *io, void *value); +typedef int (*moduleTypeAuxLoadFunc)(struct RedisModuleIO *rdb, int encver, int when); +typedef void (*moduleTypeAuxSaveFunc)(struct RedisModuleIO *rdb, int when); typedef void (*moduleTypeRewriteFunc)(struct RedisModuleIO *io, struct redisObject *key, void *value); typedef void (*moduleTypeDigestFunc)(struct RedisModuleDigest *digest, void *value); typedef size_t (*moduleTypeMemUsageFunc)(const void *value); @@ -565,6 +571,9 @@ typedef struct RedisModuleType { moduleTypeMemUsageFunc mem_usage; moduleTypeDigestFunc digest; moduleTypeFreeFunc free; + moduleTypeAuxLoadFunc aux_load; + moduleTypeAuxSaveFunc aux_save; + int aux_save_triggers; char name[10]; /* 9 bytes name + null term. Charset: A-Z a-z 0-9 _- */ } moduleType; @@ -1530,6 +1539,7 @@ void moduleAcquireGIL(void); void moduleReleaseGIL(void); void moduleNotifyKeyspaceEvent(int type, const char *event, robj *key, int dbid); void moduleCallCommandFilters(client *c); +ssize_t rdbSaveModulesAux(rio *rdb, int when); /* Utils */ long long ustime(void); |