MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / LegacyRevToRevTreeEncodedVersion

Function LegacyRevToRevTreeEncodedVersion

db/hybrid_logical_vector.go:975–994  ·  view source on GitHub ↗

LegacyRevToRevTreeEncodedVersion creates a version that has a specific source ID that can be recognized. The version is made up of: - The upper 24 bits of the version are the generation. - The lower 40 bits of the version are the first 40 bits of the digest, which is right padded.

(legacyRev string)

Source from the content-addressed store, hash-verified

973// - The upper 24 bits of the version are the generation.
974// - The lower 40 bits of the version are the first 40 bits of the digest, which is right padded.
975func LegacyRevToRevTreeEncodedVersion(legacyRev string) (Version, error) {
976 generation, digest, err := parseRevID(legacyRev)
977 if err != nil {
978 return Version{}, err
979 }
980 // trim to 40 bits (10 hex characters)
981 if len(digest) > 10 {
982 digest = digest[:10]
983 } else if len(digest) < 10 {
984 digest += strings.Repeat("0", 10-len(digest))
985 }
986 value, err := strconv.ParseUint(digest, 16, 64)
987 if err != nil {
988 return Version{}, err
989 }
990 return Version{
991 SourceID: encodedRevTreeSourceID,
992 Value: (uint64(generation) << 40) | value,
993 }, nil
994}
995
996func (hlv *HybridLogicalVector) HasRevEncodedCV() bool {
997 return hlv.SourceID == encodedRevTreeSourceID

Calls 1

parseRevIDFunction · 0.85