Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Deflater()

System.IO.Compression.Deflater.Deflater ( CompressionLevel compressionLevel,
int windowBits )
inlinepackage

Definition at line 15 of file Deflater.cs.

16 {
17 ZLibNative.CompressionLevel level;
18 int memLevel;
19 switch (compressionLevel)
20 {
21 case CompressionLevel.Optimal:
22 level = ZLibNative.CompressionLevel.DefaultCompression;
23 memLevel = 8;
24 break;
25 case CompressionLevel.Fastest:
26 level = ZLibNative.CompressionLevel.BestSpeed;
27 memLevel = 8;
28 break;
29 case CompressionLevel.NoCompression:
30 level = ZLibNative.CompressionLevel.NoCompression;
31 memLevel = 7;
32 break;
33 case CompressionLevel.SmallestSize:
34 level = ZLibNative.CompressionLevel.BestCompression;
35 memLevel = 8;
36 break;
37 default:
38 throw new ArgumentOutOfRangeException("compressionLevel");
39 }
40 ZLibNative.CompressionStrategy strategy = ZLibNative.CompressionStrategy.DefaultStrategy;
41 ZLibNative.ErrorCode errorCode;
42 try
43 {
44 errorCode = ZLibNative.CreateZLibStreamForDeflate(out _zlibStream, level, windowBits, memLevel, strategy);
45 }
46 catch (Exception innerException)
47 {
48 throw new ZLibException(System.SR.ZLibErrorDLLLoadError, innerException);
49 }
50 switch (errorCode)
51 {
52 case ZLibNative.ErrorCode.Ok:
53 break;
54 case ZLibNative.ErrorCode.MemError:
55 throw new ZLibException(System.SR.ZLibErrorNotEnoughMemory, "deflateInit2_", (int)errorCode, _zlibStream.GetErrorMessage());
56 case ZLibNative.ErrorCode.VersionError:
57 throw new ZLibException(System.SR.ZLibErrorVersionMismatch, "deflateInit2_", (int)errorCode, _zlibStream.GetErrorMessage());
58 case ZLibNative.ErrorCode.StreamError:
59 throw new ZLibException(System.SR.ZLibErrorIncorrectInitParameters, "deflateInit2_", (int)errorCode, _zlibStream.GetErrorMessage());
60 default:
61 throw new ZLibException(System.SR.ZLibErrorUnexpected, "deflateInit2_", (int)errorCode, _zlibStream.GetErrorMessage());
62 }
63 }
readonly ZLibNative.ZLibStreamHandle _zlibStream
Definition Deflater.cs:7
static string ZLibErrorNotEnoughMemory
Definition SR.cs:46
static string ZLibErrorVersionMismatch
Definition SR.cs:48
static string ZLibErrorDLLLoadError
Definition SR.cs:40
static string ZLibErrorUnexpected
Definition SR.cs:50
static string ZLibErrorIncorrectInitParameters
Definition SR.cs:44
Definition SR.cs:7

References System.IO.Compression.Deflater._zlibStream, System.IO.Compression.ZLibNative.CreateZLibStreamForDeflate(), System.SR.ZLibErrorDLLLoadError, System.SR.ZLibErrorIncorrectInitParameters, System.SR.ZLibErrorNotEnoughMemory, System.SR.ZLibErrorUnexpected, and System.SR.ZLibErrorVersionMismatch.