コード例 #1
0
ファイル: Deflater.cs プロジェクト: zsybupt/corefxlab
        private void DeflateInit(ZLibNative.CompressionLevel compressionLevel, int windowBits, int memLevel,
                                 ZLibNative.CompressionStrategy strategy)
        {
            ZErrorCode errC;

            try
            {
                errC = ZLibNative.CreateZLibStreamForDeflate(out _zlibStream, compressionLevel,
                                                             windowBits, memLevel, strategy);
            }
            catch (Exception cause)
            {
                throw new ZLibException("SR.ZLibErrorDLLLoadError", cause);
            }

            switch (errC)
            {
            case ZErrorCode.Ok:
                return;

            case ZErrorCode.MemError:
                throw new ZLibException("SR.ZLibErrorNotEnoughMemory", "deflateInit2_", (int)errC, _zlibStream.GetErrorMessage());

            case ZErrorCode.VersionError:
                throw new ZLibException("SR.ZLibErrorVersionMismatch", "deflateInit2_", (int)errC, _zlibStream.GetErrorMessage());

            case ZErrorCode.StreamError:
                throw new ZLibException("SR.ZLibErrorIncorrectInitParameters", "deflateInit2_", (int)errC, _zlibStream.GetErrorMessage());

            default:
                throw new ZLibException("SR.ZLibErrorUnexpected", "deflateInit2_", (int)errC, _zlibStream.GetErrorMessage());
            }
        }
コード例 #2
0
        private void InflateInit(int windowBits)
        {
            ZLibNative.ErrorCode error;
            try
            {
                error = ZLibNative.CreateZLibStreamForInflate(out _zlibStream, windowBits);
            }
            catch (Exception exception) // could not load the ZLib dll
            {
                throw new ZLibException("SR.ZLibErrorDLLLoadError", exception);
            }

            switch (error)
            {
            case ZLibNative.ErrorCode.Ok:               // Successful initialization
                return;

            case ZLibNative.ErrorCode.MemError:         // Not enough memory
                throw new ZLibException("SR.ZLibErrorNotEnoughMemory", "inflateInit2_", (int)error, _zlibStream.GetErrorMessage());

            case ZLibNative.ErrorCode.VersionError:     //zlib library is incompatible with the version assumed
                throw new ZLibException("SR.ZLibErrorVersionMismatch", "inflateInit2_", (int)error, _zlibStream.GetErrorMessage());

            case ZLibNative.ErrorCode.StreamError:      // Parameters are invalid
                throw new ZLibException("SR.ZLibErrorIncorrectInitParameters", "inflateInit2_", (int)error, _zlibStream.GetErrorMessage());

            default:
                throw new ZLibException("SR.ZLibErrorUnexpected", "inflateInit2_", (int)error, _zlibStream.GetErrorMessage());
            }
        }
コード例 #3
0
 internal static unsafe ZLibNative.ErrorCode DeflateEnd(ref ZLibNative.ZStream stream)
 {
     fixed (ZLibNative.ZStream* streamBytes = &stream)
     {
         byte* pBytes = (byte*) streamBytes;
         return (ZLibNative.ErrorCode) deflateEnd(pBytes);
     }
 }
コード例 #4
0
 internal static unsafe ZLibNative.ErrorCode Deflate(ref ZLibNative.ZStream stream,
     ZLibNative.FlushCode flush)
 {
     fixed (ZLibNative.ZStream* streamBytes = &stream)
     {
         byte* pBytes = (byte*) streamBytes;
         return (ZLibNative.ErrorCode) deflate(pBytes, (int) flush);
     }
 }
コード例 #5
0
 internal static unsafe ZLibNative.ErrorCode DeflateInit2_(
     ref ZLibNative.ZStream stream,
     ZLibNative.CompressionLevel level,
     ZLibNative.CompressionMethod method,
     int windowBits,
     int memLevel,
     ZLibNative.CompressionStrategy strategy)
 {
     fixed (byte* versionString = ZLibVersion)
     fixed (ZLibNative.ZStream* streamBytes = &stream)
     {
         byte* pBytes = (byte*) streamBytes;
         return
             (ZLibNative.ErrorCode)
             deflateInit2_(pBytes, (int) level, (int) method, (int) windowBits, (int) memLevel,
                 (int) strategy, versionString, sizeof(ZLibNative.ZStream));
     }
 }
コード例 #6
0
 internal static unsafe ZLibNative.ErrorCode InflateInit2_(
     ref ZLibNative.ZStream stream,
     int windowBits)
 {
     fixed (byte* versionString = ZLibVersion)
     fixed (ZLibNative.ZStream* streamBytes = &stream)
     {
         byte* pBytes = (byte*) streamBytes;
         return
             (ZLibNative.ErrorCode)
             inflateInit2_(pBytes, (int) windowBits, versionString, sizeof(ZLibNative.ZStream));
     }
 }