public Ctor() { log = Substitute.For <ILog>(); settings = new CompressorSettingsBuilder() .SetDefaultInputFileReadingBufferSize() .SetDefaultOffsetLabel() .SetDefaultPararllelism() .GetSettings(); compression = Substitute.For <IBlockCompression>(); }
public StreamCompressor([NotNull] IBlockCompression compression, [NotNull] CompressorSettings settings, [NotNull] ILog log) { this.log = log ?? throw new ArgumentNullException(nameof(log)); this.compression = compression ?? throw new ArgumentNullException(nameof(compression)); this.settings = settings ?? throw new ArgumentNullException(nameof(settings)); }
public static IEnumerable <ArraySegment <byte> > CompressIntoBlocksWith(this string text, int readBufferSize, IBlockCompression blockCompression) { using (var memoryStream = text.AsStream()) { foreach (var bytes in memoryStream.SpitToBytes(readBufferSize)) { var block = new Block(bytes, memoryStream.Position); var compressed = blockCompression.Compress(block); yield return(compressed.Bytes); } } }