public HashChecksumTranscodingStream(Stream innerStream, IStreamHashGenerator streamHashGenerator) { if (!innerStream.CanWrite || !innerStream.CanRead || !innerStream.CanSeek) { throw new ArgumentException("Inner stream must be seekable, readable and writable", "innerStream"); } this.innerStream = innerStream; this.streamHashGenerator = streamHashGenerator; this.bufferStream = new MemoryStream(); innerStream.Position = 0; innerStream.CopyTo(this.bufferStream); this.bufferStream.Position = innerStream.Position; }
public HashChecksumTranscodingStreamFactory(IStreamHashGenerator streamHashGenerator, ITranscodingStreamFactory transcodingStreamFactory) { this.streamHashGenerator = streamHashGenerator; this.transcodingStreamFactory = transcodingStreamFactory; }
public HashChecksumTranscodingStreamFactory(IStreamHashGenerator streamHashGenerator) : this(streamHashGenerator, new PassThroughTranscodingStreamFactory()) { }