private static BasicWrapper.WrapperDelegate delegateConverter(StreamFactoryDelegate streamFactory) { return(delegate(IDataStream s) { Stream baseStream; if (s.Length > 50 * 1024 * 1024) { baseStream = new FileStream(Path.GetTempFileName(), FileMode.Create, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.DeleteOnClose); } else { baseStream = new MemoryStream(); } using (var compression = streamFactory(baseStream)) { var tmpStream = new ToStream(s); tmpStream.CopyTo(compression); } var ret = FromStream.ToIDataStream(baseStream); if (ret.Length > 5 * 1024 * 1024) { return new LazyLoggedFile(ret); } else { return new ByteArray(ret); } }); }
private static BasicWrapper.WrapperDelegate delegateConverter(StreamFactoryDelegate streamFactory) { return(delegate(IDataStream s) { var ret = new FromUnseekableStream(delegate() { return streamFactory(new ToStream(s)); }); if (ret.Length > 5 * 1024 * 1024) { return new LazyLoggedFile(ret); } else { return new ByteArray(ret); } }); }
public CompressionStreamWrapper(StreamFactoryDelegate d, string wrapperName, params object[] wrapperParams) : base(delegateConverter(d), wrapperName, wrapperParams) { }