summaryrefslogtreecommitdiff
path: root/examples/redis-unstable/modules/vector-sets/vset_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/redis-unstable/modules/vector-sets/vset_config.c')
-rw-r--r--examples/redis-unstable/modules/vector-sets/vset_config.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/examples/redis-unstable/modules/vector-sets/vset_config.c b/examples/redis-unstable/modules/vector-sets/vset_config.c
new file mode 100644
index 0000000..79dc8a3
--- /dev/null
+++ b/examples/redis-unstable/modules/vector-sets/vset_config.c
@@ -0,0 +1,51 @@
+/* vector set module configuration.
+ *
+ * Copyright (c) 2009-Present, Redis Ltd.
+ * All rights reserved.
+ *
+ * Licensed under your choice of (a) the Redis Source Available License 2.0
+ * (RSALv2); or (b) the Server Side Public License v1 (SSPLv1); or (c) the
+ * GNU Affero General Public License v3 (AGPLv3).
+*/
+
+#include "vset_config.h"
+
+/* Define __STRING macro for portability (not available in all environments) */
+#ifndef __STRING
+#define __STRING(x) #x
+#endif
+
+#define RM_TRY(expr) \
+ if (expr == REDISMODULE_ERR) { \
+ RedisModule_Log(ctx, "warning", "Could not run " __STRING(expr)); \
+ return REDISMODULE_ERR; \
+ }
+
+VSConfig VSGlobalConfig;
+
+int set_bool_config(const char *name, int val, void *privdata,
+ RedisModuleString **err) {
+ REDISMODULE_NOT_USED(name);
+ REDISMODULE_NOT_USED(err);
+ *(int *)privdata = val;
+ return REDISMODULE_OK;
+}
+
+int get_bool_config(const char *name, void *privdata) {
+ REDISMODULE_NOT_USED(name);
+ return *(int *)privdata;
+}
+
+int RegisterModuleConfig(RedisModuleCtx *ctx) {
+ // Numeric parameters
+ RM_TRY(
+ RedisModule_RegisterBoolConfig(
+ ctx, "vset-force-single-threaded-execution", 0,
+ REDISMODULE_CONFIG_UNPREFIXED,
+ get_bool_config, set_bool_config, NULL,
+ (void *)&(VSGlobalConfig.forceSingleThreadExec)
+ )
+ )
+
+ return REDISMODULE_OK;
+}