Esempio n. 1
0
        public static Stream DecodeLz4(Stream stream)
        {
            var decoderStream = LZ4Stream.Decode(stream);
            var total         = decoderStream.Length;

            return(TempFileStream.CreateFrom(decoderStream, done => ReportProgress(done, total)));
        }
Esempio n. 2
0
        public TarEntryViewModel(TarFileInfo parent, TarArchiveEntry e)
        {
            this.parent = parent;
            Name        = e.Key;
            getStream   = new Lazy <Stream>(delegate
            {
                using (var srcStream = e.OpenEntryStream())
                {
                    if (Name.EndsWith(".img.lz4"))
                    {
                        return(Lz4FileInfo.DecodeLz4(srcStream));
                    }

                    return(TempFileStream.CreateFrom(srcStream, done => FileInfoBase.ReportProgress(done, e.Size)));
                }
            });
        }
Esempio n. 3
0
        public ZipEntryViewModel(ZipFileInfo parent, ZipArchiveEntry e)
        {
            this.parent = parent;
            totalSize   = e.Size;
            Name        = e.Key;
            getStream   = new Lazy <Stream>(delegate
            {
                var transferList = parent.GetTransferList();
                using (var srcStream = e.OpenEntryStream())
                {
                    if (Name.EndsWith(".new.dat"))
                    {
                        return(new BlockImgStream(srcStream, transferList));
                    }
                    if (Name.EndsWith(".new.dat.br"))
                    {
                        return(new BlockImgStream(
                                   new BrotliStream(srcStream, CompressionMode.Decompress), transferList));
                    }

                    return(TempFileStream.CreateFrom(srcStream, done => FileInfoBase.ReportProgress(done, totalSize)));
                }
            });
        }