Пример #1
0
        /// <nodoc />
        public static ContentHash ToContentHash(this DedupNode node)
        {
            var nodeDedupIdentifier = node.GetDedupIdentifier();

            switch (nodeDedupIdentifier.AlgorithmId)
            {
            case (byte)NodeAlgorithmId.Node64K:
                return(new ContentHash(HashType.DedupNodeOrChunk, nodeDedupIdentifier.ToBlobIdentifier().Bytes));

            case (byte)NodeAlgorithmId.Node1024K:
                return(new ContentHash(HashType.Dedup1024K, nodeDedupIdentifier.ToBlobIdentifier().Bytes));

            default:
                throw new InvalidEnumArgumentException($"Unknown algorithm id detected for blob {nodeDedupIdentifier.ToBlobIdentifier()} : {nodeDedupIdentifier.AlgorithmId}");
            }
        }
Пример #2
0
        /// <nodoc />
        public static ContentHash ToContentHash(this DedupNode node, HashType hashType)
        {
            byte[] hash;
            switch (hashType)
            {
            case HashType.DedupSingleChunk:
            case HashType.DedupNode:
                hash = node.Hash;
                break;

            case HashType.Dedup64K:
            case HashType.Dedup1024K:
                hash = node.GetDedupIdentifier(hashType).ToBlobIdentifier().Bytes;
                break;

            default:
                throw new NotImplementedException($"Unexpected HashType '{hashType}' for DedupNode.");
            }

            return(new ContentHash(hashType, hash));
        }
Пример #3
0
 /// <nodoc />
 public static ContentHash ToContentHash(this DedupNode node)
 {
     return(new ContentHash(HashType.DedupNodeOrChunk, node.GetDedupIdentifier().ToBlobIdentifier().Bytes));
 }