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

Function catAppendOnlyExpireMemberAtCommand

src/aof.cpp:633–680  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

631}
632
633sds catAppendOnlyExpireMemberAtCommand(sds buf, struct redisCommand *cmd, robj **argv, const size_t argc) {
634 long long when = 0;
635 int unit = UNIT_SECONDS;
636 bool fAbsolute = false;
637
638 if (cmd->proc == expireMemberCommand) {
639 if (getLongLongFromObject(argv[3], &when) != C_OK)
640 serverPanic("propogating invalid EXPIREMEMBER command");
641
642 if (argc == 5) {
643 unit = parseUnitString(szFromObj(argv[4]));
644 }
645 } else if (cmd->proc == expireMemberAtCommand) {
646 if (getLongLongFromObject(argv[3], &when) != C_OK)
647 serverPanic("propogating invalid EXPIREMEMBERAT command");
648 fAbsolute = true;
649 } else if (cmd->proc == pexpireMemberAtCommand) {
650 if (getLongLongFromObject(argv[3], &when) != C_OK)
651 serverPanic("propogating invalid PEXPIREMEMBERAT command");
652 fAbsolute = true;
653 unit = UNIT_MILLISECONDS;
654 } else {
655 serverPanic("Unknown expiremember command");
656 }
657
658 switch (unit)
659 {
660 case UNIT_SECONDS:
661 when *= 1000;
662 break;
663
664 case UNIT_MILLISECONDS:
665 break;
666 }
667
668 if (!fAbsolute)
669 when += mstime();
670
671 robj *argvNew[4];
672 argvNew[0] = shared.pexpirememberat;
673 argvNew[1] = argv[1];
674 argvNew[2] = argv[2];
675 argvNew[3] = createStringObjectFromLongLong(when);
676 buf = catAppendOnlyGenericCommand(buf, 4, argvNew);
677 decrRefCount(argvNew[0]);
678 decrRefCount(argvNew[3]);
679 return buf;
680}
681
682sds catCommandForAofAndActiveReplication(sds buf, struct redisCommand *cmd, robj **argv, int argc)
683{

Callers 1

Calls 7

getLongLongFromObjectFunction · 0.85
parseUnitStringFunction · 0.85
szFromObjFunction · 0.85
decrRefCountFunction · 0.85
mstimeFunction · 0.70

Tested by

no test coverage detected