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

Function expireMemberCore

src/expire.cpp:190–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

188}
189
190void expireMemberCore(client *c, robj *key, robj *subkey, long long basetime, long long when, int unit)
191{
192 switch (unit)
193 {
194 case UNIT_SECONDS:
195 when *= 1000;
196 case UNIT_MILLISECONDS:
197 break;
198
199 default:
200 addReplyError(c, "Invalid unit arg");
201 return;
202 }
203
204 when += basetime;
205
206 /* No key, return zero. */
207 robj *val = lookupKeyWriteOrReply(c, key, shared.czero);
208 if (val == nullptr) {
209 return;
210 }
211
212 double dblT;
213 switch (val->type)
214 {
215 case OBJ_SET:
216 if (!setTypeIsMember(val, szFromObj(subkey))) {
217 addReply(c,shared.czero);
218 return;
219 }
220 break;
221
222 case OBJ_HASH:
223 if (!hashTypeExists(val, szFromObj(subkey))) {
224 addReply(c,shared.czero);
225 return;
226 }
227 break;
228
229 case OBJ_ZSET:
230 if (zsetScore(val, szFromObj(subkey), &dblT) == C_ERR) {
231 addReply(c,shared.czero);
232 return;
233 }
234 break;
235
236 default:
237 addReplyError(c, "object type is unsupported");
238 return;
239 }
240
241 setExpire(c, c->db, key, subkey, when);
242 signalModifiedKey(c, c->db, key);
243 g_pserver->dirty++;
244 addReply(c, shared.cone);
245}
246
247void expireMemberCommand(client *c)

Callers 3

expireMemberCommandFunction · 0.85
expireMemberAtCommandFunction · 0.85
pexpireMemberAtCommandFunction · 0.85

Calls 9

addReplyErrorFunction · 0.85
lookupKeyWriteOrReplyFunction · 0.85
setTypeIsMemberFunction · 0.85
szFromObjFunction · 0.85
addReplyFunction · 0.85
hashTypeExistsFunction · 0.85
zsetScoreFunction · 0.85
setExpireFunction · 0.85
signalModifiedKeyFunction · 0.85

Tested by

no test coverage detected