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

Function rdbSaveLongLongAsStringObject

src/rdb.cpp:474–490  ·  view source on GitHub ↗

Save a long long value as either an encoded string or a string. */

Source from the content-addressed store, hash-verified

472
473/* Save a long long value as either an encoded string or a string. */
474ssize_t rdbSaveLongLongAsStringObject(rio *rdb, long long value) {
475 unsigned char buf[32];
476 ssize_t n, nwritten = 0;
477 int enclen = rdbEncodeInteger(value,buf);
478 if (enclen > 0) {
479 return rdbWriteRaw(rdb,buf,enclen);
480 } else {
481 /* Encode as string */
482 enclen = ll2string((char*)buf,32,value);
483 serverAssert(enclen < 32);
484 if ((n = rdbSaveLen(rdb,enclen)) == -1) return -1;
485 nwritten += n;
486 if ((n = rdbWriteRaw(rdb,buf,enclen)) == -1) return -1;
487 nwritten += n;
488 }
489 return nwritten;
490}
491
492/* Like rdbSaveRawString() gets a Redis object instead. */
493ssize_t rdbSaveStringObject(rio *rdb, robj_roptr obj) {

Callers 1

rdbSaveStringObjectFunction · 0.85

Calls 4

rdbEncodeIntegerFunction · 0.85
rdbWriteRawFunction · 0.85
ll2stringFunction · 0.85
rdbSaveLenFunction · 0.85

Tested by

no test coverage detected