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

Function rdbSaveObjectType

src/rdb.cpp:676–716  ·  view source on GitHub ↗

Save the object type of object "o". */

Source from the content-addressed store, hash-verified

674
675/* Save the object type of object "o". */
676int rdbSaveObjectType(rio *rdb, robj_roptr o) {
677 switch (o->type) {
678 case OBJ_STRING:
679 return rdbSaveType(rdb,RDB_TYPE_STRING);
680 case OBJ_LIST:
681 if (o->encoding == OBJ_ENCODING_QUICKLIST)
682 return rdbSaveType(rdb,RDB_TYPE_LIST_QUICKLIST);
683 else
684 serverPanic("Unknown list encoding: %d", o->encoding);
685 case OBJ_SET:
686 if (o->encoding == OBJ_ENCODING_INTSET)
687 return rdbSaveType(rdb,RDB_TYPE_SET_INTSET);
688 else if (o->encoding == OBJ_ENCODING_HT)
689 return rdbSaveType(rdb,RDB_TYPE_SET);
690 else
691 serverPanic("Unknown set encoding: %d", o->encoding);
692 case OBJ_ZSET:
693 if (o->encoding == OBJ_ENCODING_ZIPLIST)
694 return rdbSaveType(rdb,RDB_TYPE_ZSET_ZIPLIST);
695 else if (o->encoding == OBJ_ENCODING_SKIPLIST)
696 return rdbSaveType(rdb,RDB_TYPE_ZSET_2);
697 else
698 serverPanic("Unknown sorted set encoding: %d", o->encoding);
699 case OBJ_HASH:
700 if (o->encoding == OBJ_ENCODING_ZIPLIST)
701 return rdbSaveType(rdb,RDB_TYPE_HASH_ZIPLIST);
702 else if (o->encoding == OBJ_ENCODING_HT)
703 return rdbSaveType(rdb,RDB_TYPE_HASH);
704 else
705 serverPanic("Unknown hash encoding: %d", o->encoding);
706 case OBJ_STREAM:
707 return rdbSaveType(rdb,RDB_TYPE_STREAM_LISTPACKS);
708 case OBJ_MODULE:
709 return rdbSaveType(rdb,RDB_TYPE_MODULE_2);
710 case OBJ_CRON:
711 return rdbSaveType(rdb,RDB_TYPE_CRON);
712 default:
713 serverPanic("Unknown object type: %d", o->type);
714 }
715 return -1; /* avoid warning */
716}
717
718/* Use rdbLoadType() to load a TYPE in RDB format, but returns -1 if the
719 * type is not specifically a valid Object Type. */

Callers 2

createDumpPayloadFunction · 0.85
rdbSaveKeyValuePairFunction · 0.85

Calls 1

rdbSaveTypeFunction · 0.85

Tested by

no test coverage detected