Example #1
0
 /// <nodoc />
 public static NodeDedupIdentifier CalculateIdentifierFromSerializedNode(ArraySegment <byte> bytes, HashType hashType)
 {
     Contract.Requires(bytes.Array != null);
     Contract.Check(((NodeAlgorithmId)hashType.GetNodeAlgorithmId()).IsValidNode())?.Assert($"Cannot serialize from hash because hash type is invalid: {hashType}");
     using (var hasher = hashType.GetNodeAlgorithmId().GetContentHasher())
     {
         return(new NodeDedupIdentifier(hasher.GetContentHash(bytes.Array, bytes.Offset, bytes.Count).ToHashByteArray(), hasher.Info.HashType.GetNodeAlgorithmId()));
     }
 }
 /// <nodoc />
 public static NodeDedupIdentifier GetNodeIdentifier(this DedupNode node, HashType hashType)
 {
     if (node.Type != DedupNode.NodeType.InnerNode)
     {
         throw new ArgumentException($"The given hash does not represent a {nameof(NodeDedupIdentifier)}");
     }
     return(new NodeDedupIdentifier(node.Hash, hashType.GetNodeAlgorithmId()));
 }
 /// <nodoc />
 public static NodeDedupIdentifier CalculateNodeDedupIdentifier(this DedupNode node, HashType hashType)
 {
     return(new NodeDedupIdentifier(node.ToContentHash(hashType).ToHashByteArray(), hashType.GetNodeAlgorithmId()));
 }
 /// <nodoc />
 public static NodeDedupIdentifier CalculateNodeDedupIdentifier(this DedupNode node, HashType hashType)
 {
     return(new NodeDedupIdentifier(ChunkHasher.GetContentHash(node.Serialize()).ToHashByteArray(), hashType.GetNodeAlgorithmId()));
 }
Example #5
0
 /// <nodoc />
 public static NodeDedupIdentifier CalculateIdentifierFromSerializedNode(byte[] bytes, int offset, int count, HashType hashType)
 {
     Contract.Requires(bytes != null);
     Contract.Check(((NodeAlgorithmId)hashType.GetNodeAlgorithmId()).IsValidNode())?.Assert($"Cannot serialize from hash because hash type is invalid: {hashType}");
     return(new NodeDedupIdentifier(Hasher.GetContentHash(bytes, offset, count).ToHashByteArray(), hashType.GetNodeAlgorithmId()));
 }