Exemple #1
0
 public Ctor()
 {
     log      = Substitute.For <ILog>();
     settings = new CompressorSettingsBuilder()
                .SetDefaultInputFileReadingBufferSize()
                .SetDefaultOffsetLabel()
                .SetDefaultPararllelism()
                .GetSettings();
     compression = Substitute.For <IBlockCompression>();
 }
Exemple #2
0
 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));
 }
Exemple #3
0
 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);
         }
     }
 }