コード例 #1
0
 internal Coder EncodeStart(PpmdProperties properties)
 {
     Allocator = properties.Allocator;
     Coder     = new Coder();
     Coder.RangeEncoderInitialize();
     StartModel(properties.ModelOrder, properties.ModelRestorationMethod);
     return(Coder);
 }
コード例 #2
0
ファイル: ZipWriter.cs プロジェクト: RainsSoft/sharpcompress
 public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment) : base(ArchiveType.Zip)
 {
     this.ppmdProperties     = new PpmdProperties();
     this.entries            = new List <ZipCentralDirectoryEntry>();
     this.zipComment         = zipComment ?? string.Empty;
     this.zipCompressionInfo = new ZipCompressionInfo(compressionInfo);
     base.InitalizeStream(destination, false);
 }
コード例 #3
0
 internal Coder DecodeStart(Stream source, PpmdProperties properties)
 {
     Allocator = properties.Allocator;
     Coder     = new Coder();
     Coder.RangeDecoderInitialize(source);
     StartModel(properties.ModelOrder, properties.ModelRestorationMethod);
     minimumContext   = maximumContext;
     numberStatistics = minimumContext.NumberStatistics;
     return(Coder);
 }
コード例 #4
0
        /// <summary>
        /// Encode (ie. compress) a given source stream, writing the encoded result to the target stream.
        /// </summary>
        public void Encode(Stream target, Stream source, PpmdProperties properties)
        {
            if (target == null)
            {
                throw new ArgumentNullException("target");
            }

            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            EncodeStart(properties);
            EncodeBlock(target, source, true);
        }
コード例 #5
0
ファイル: Model.cs プロジェクト: zhouzu/sharpcompress
        public void Encode(Stream target, Stream source, PpmdProperties properties)
        {
            if (target is null)
            {
                throw new ArgumentNullException(nameof(target));
            }

            if (source is null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            EncodeStart(properties);
            EncodeBlock(target, source, true);
        }
コード例 #6
0
        private readonly PpmdProperties ppmdProperties; // Caching properties to speed up PPMd.
#endif

        public ZipWriter(Stream destination, CompressionInfo compressionInfo, string zipComment, Encoding encoding = null)
            : base(ArchiveType.Zip)
        {
            this.zipComment = zipComment ?? string.Empty;
            this.encoding   = encoding ?? ArchiveEncoding.Default;

            switch (compressionInfo.Type)
            {
            case CompressionType.None:
            {
                compression = ZipCompressionMethod.None;
            }
            break;

            case CompressionType.Deflate:
            {
                compression             = ZipCompressionMethod.Deflate;
                deflateCompressionLevel = compressionInfo.DeflateCompressionLevel;
            }
            break;

            case CompressionType.BZip2:
            {
                compression = ZipCompressionMethod.BZip2;
            }
            break;

#if LZMA
            case CompressionType.LZMA:
            {
                compression = ZipCompressionMethod.LZMA;
            }
            break;
#endif
#if PPMd
            case CompressionType.PPMd:
            {
                ppmdProperties = new PpmdProperties();
                compression    = ZipCompressionMethod.PPMd;
            }
            break;
#endif
            default:
                throw new InvalidFormatException("Invalid compression method: " + compressionInfo.Type);
            }
            InitalizeStream(destination, false);
        }
コード例 #7
0
ファイル: Model.cs プロジェクト: zhouzu/sharpcompress
        public void Decode(Stream target, Stream source, PpmdProperties properties)
        {
            if (target is null)
            {
                throw new ArgumentNullException(nameof(target));
            }

            if (source is null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            DecodeStart(source, properties);
            byte[] buffer = new byte[65536];
            int    read;

            while ((read = DecodeBlock(source, buffer, 0, buffer.Length)) != 0)
            {
                target.Write(buffer, 0, read);
            }
        }
コード例 #8
0
ファイル: Model.cs プロジェクト: yaozd/sharpcompress
 internal Coder DecodeStart(Stream source, PpmdProperties properties)
 {
     Allocator = properties.Allocator;
     Coder = new Coder();
     Coder.RangeDecoderInitialize(source);
     StartModel(properties.ModelOrder, properties.ModelRestorationMethod);
     minimumContext = maximumContext;
     numberStatistics = minimumContext.NumberStatistics;
     return Coder;
 }
コード例 #9
0
ファイル: Model.cs プロジェクト: yaozd/sharpcompress
        /// <summary>
        /// Dencode (ie. decompress) a given source stream, writing the decoded result to the target stream.
        /// </summary>
        public void Decode(Stream target, Stream source, PpmdProperties properties)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            if (source == null)
                throw new ArgumentNullException("source");

            DecodeStart(source, properties);
            byte[] buffer = new byte[65536];
            int read;
            while ((read = DecodeBlock(source, buffer, 0, buffer.Length)) != 0)
                target.Write(buffer, 0, read);

            return;
        }
コード例 #10
0
ファイル: Model.cs プロジェクト: yaozd/sharpcompress
 internal Coder EncodeStart(PpmdProperties properties)
 {
     Allocator = properties.Allocator;
     Coder = new Coder();
     Coder.RangeEncoderInitialize();
     StartModel(properties.ModelOrder, properties.ModelRestorationMethod);
     return Coder;
 }
コード例 #11
0
ファイル: Model.cs プロジェクト: yaozd/sharpcompress
        /// <summary>
        /// Encode (ie. compress) a given source stream, writing the encoded result to the target stream.
        /// </summary>
        public void Encode(Stream target, Stream source, PpmdProperties properties)
        {
            if (target == null)
                throw new ArgumentNullException("target");

            if (source == null)
                throw new ArgumentNullException("source");

            EncodeStart(properties);
            EncodeBlock(target, source, true);
        }