@@ -516,6 +516,18 @@ struct RedisModuleCtx;
516516struct RedisModuleDefragCtx ;
517517typedef void (* RedisModuleEventCallback )(struct RedisModuleCtx * ctx , RedisModuleEvent eid , uint64_t subevent , void * data );
518518
519+ /* Big Module API - Callbacks
520+ * ----------------------------
521+ * Callback registered by modules for disk usage queries.
522+ * This typedef is in the common section so it's visible to both core and modules. */
523+ #define REDISMODULE_BIG_CALLBACKS_VERSION 1
524+ typedef struct RedisModuleBigCallbacks {
525+ uint64_t version ; /* Version of this structure for ABI compat. */
526+ size_t (* getDiskUsage )(void ); /* Returns module's disk usage (SST files, etc.) */
527+ } RedisModuleBigCallbacksV1 ;
528+
529+ #define RedisModuleBigCallbacks RedisModuleBigCallbacksV1
530+
519531/* IMPORTANT: When adding a new version of one of below structures that contain
520532 * event data (RedisModuleFlushInfoV1 for example) we have to avoid renaming the
521533 * old RedisModuleEvent structure.
@@ -1329,6 +1341,16 @@ REDISMODULE_API int (*RedisModule_RdbLoad)(RedisModuleCtx *ctx, RedisModuleRdbSt
13291341REDISMODULE_API int (* RedisModule_RdbSave )(RedisModuleCtx * ctx , RedisModuleRdbStream * stream , int flags ) REDISMODULE_ATTR ;
13301342REDISMODULE_API const char * (* RedisModule_GetInternalSecret )(RedisModuleCtx * ctx , size_t * len ) REDISMODULE_ATTR ;
13311343
1344+ /* bigredis extensions
1345+ * -------------------*/
1346+ REDISMODULE_API int (* RedisModule_BigModuleRegister )(RedisModuleCtx * ctx , RedisModuleBigCallbacks * callbacks ) REDISMODULE_ATTR ;
1347+ REDISMODULE_API ssize_t (* RedisModule_BigWriteBufferBudgetInit )(RedisModuleCtx * ctx , int percentage ) REDISMODULE_ATTR ;
1348+ REDISMODULE_API void (* RedisModule_BigWriteBufferBudgetRelease )(RedisModuleCtx * ctx ) REDISMODULE_ATTR ;
1349+ REDISMODULE_API char * (* RedisModule_BigGetDbPath )(RedisModuleCtx * ctx , const char * index_name ) REDISMODULE_ATTR ;
1350+ REDISMODULE_API int (* RedisModule_BigRegisterDb )(RedisModuleCtx * ctx , void * db_handle , void * * cf_handles , size_t num_cf_handles ) REDISMODULE_ATTR ;
1351+ REDISMODULE_API int (* RedisModule_BigRegisterDbAddCf )(RedisModuleCtx * ctx , void * db_handle , void * cf_handle ) REDISMODULE_ATTR ;
1352+ REDISMODULE_API int (* RedisModule_BigUnregisterDb )(RedisModuleCtx * ctx , void * db_handle ) REDISMODULE_ATTR ;
1353+
13321354#define RedisModule_IsAOFClient (id ) ((id ) == UINT64_MAX )
13331355
13341356/* This is included inline inside each Redis module. */
@@ -1700,6 +1722,15 @@ static int RedisModule_InitAPI(RedisModuleCtx *ctx) {
17001722 REDISMODULE_GET_API (RdbLoad );
17011723 REDISMODULE_GET_API (RdbSave );
17021724 REDISMODULE_GET_API (GetInternalSecret );
1725+
1726+ /* Bigredis Extensions */
1727+ REDISMODULE_GET_API (BigModuleRegister );
1728+ REDISMODULE_GET_API (BigWriteBufferBudgetInit );
1729+ REDISMODULE_GET_API (BigWriteBufferBudgetRelease );
1730+ REDISMODULE_GET_API (BigGetDbPath );
1731+ REDISMODULE_GET_API (BigRegisterDb );
1732+ REDISMODULE_GET_API (BigRegisterDbAddCf );
1733+ REDISMODULE_GET_API (BigUnregisterDb );
17031734}
17041735static int RedisModule_Init (RedisModuleCtx * ctx , const char * name , int ver , int apiver ) {
17051736 RedisModule_InitAPI (ctx );
0 commit comments