summaryrefslogtreecommitdiff
path: root/src/server.h
diff options
context:
space:
mode:
authorSalvatore Sanfilippo <antirez@gmail.com>2019-07-30 11:50:44 +0200
committerGitHub <noreply@github.com>2019-07-30 11:50:44 +0200
commitf42846e8c7127c8e84b6938a6bd73e2363b4a90c (patch)
tree275cb890f44853662abd1980d00cf64cdab23d5f /src/server.h
parentce72cac0f84b5c900cb80f59de914fa1ee90da9c (diff)
parent3b6aeea44cf8bdc64214a5f145da55453722a9a2 (diff)
downloadredis-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.h10
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);