MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / moduleScanKeyCallback

Function moduleScanKeyCallback

src/module.cpp:7900–7919  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7898} ScanKeyCBData;
7899
7900static void moduleScanKeyCallback(void *privdata, const dictEntry *de) {
7901 ScanKeyCBData *data = (ScanKeyCBData*)privdata;
7902 sds key = (sds)dictGetKey(de);
7903 robj *o = data->key->value;
7904 robj *field = createStringObject(key, sdslen(key));
7905 robj *value = NULL;
7906 if (o->type == OBJ_SET) {
7907 value = NULL;
7908 } else if (o->type == OBJ_HASH) {
7909 sds val = (sds)dictGetVal(de);
7910 value = createStringObject(val, sdslen(val));
7911 } else if (o->type == OBJ_ZSET) {
7912 double *val = (double*)dictGetVal(de);
7913 value = createStringObjectFromLongDouble(*val, 0);
7914 }
7915
7916 data->fn(data->key, field, value, data->user_data);
7917 decrRefCount(field);
7918 if (value) decrRefCount(value);
7919}
7920
7921/* Scan api that allows a module to scan the elements in a hash, set or sorted set key
7922 *

Callers

nothing calls this directly

Calls 4

sdslenFunction · 0.85
decrRefCountFunction · 0.85
createStringObjectFunction · 0.70

Tested by

no test coverage detected