Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HashProvider.cs
Go to the documentation of this file.
1using System;
2
4
5internal abstract class HashProvider : IDisposable
6{
7 public abstract int HashSizeInBytes { get; }
8
9 public void AppendHashData(byte[] data, int offset, int count)
10 {
11 if (data == null)
12 {
14 }
15 if (offset < 0)
16 {
18 }
19 if (count < 0)
20 {
22 }
23 if (data.Length - offset < count)
24 {
26 }
28 }
29
30 public abstract void AppendHashData(ReadOnlySpan<byte> data);
31
33
34 public byte[] FinalizeHashAndReset()
35 {
36 byte[] array = new byte[HashSizeInBytes];
37 int num = FinalizeHashAndReset(array);
38 return array;
39 }
40
41 public bool TryFinalizeHashAndReset(Span<byte> destination, out int bytesWritten)
42 {
43 if (destination.Length < HashSizeInBytes)
44 {
45 bytesWritten = 0;
46 return false;
47 }
48 bytesWritten = FinalizeHashAndReset(destination);
49 return true;
50 }
51
52 public void Dispose()
53 {
54 Dispose(disposing: true);
55 GC.SuppressFinalize(this);
56 }
57
58 public abstract void Dispose(bool disposing);
59
60 public abstract void Reset();
61}
void Dispose(bool disposing)
void AppendHashData(byte[] data, int offset, int count)
bool TryFinalizeHashAndReset(Span< byte > destination, out int bytesWritten)
int FinalizeHashAndReset(Span< byte > destination)
void AppendHashData(ReadOnlySpan< byte > data)
static void SuppressFinalize(object obj)
Definition GC.cs:202
Definition GC.cs:8
static string ArgumentNull_Buffer
Definition SR.cs:22
static string Argument_InvalidOffLen
Definition SR.cs:22
static string ArgumentOutOfRange_NeedNonNegNum
Definition SR.cs:32
Definition SR.cs:7