update components

This commit is contained in:
Luke Pulverenti
2016-07-14 15:13:52 -04:00
parent 7e52b0d304
commit 1900afb311
4 changed files with 58 additions and 40 deletions

View File

@@ -4,13 +4,15 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Threading.Tasks;
using ServiceStack;
namespace MediaBrowser.Server.Implementations.HttpServer
{
/// <summary>
/// Class StreamWriter
/// </summary>
public class StreamWriter : IStreamWriter, IHasOptions
public class StreamWriter : IStreamWriter, /*IAsyncStreamWriter,*/ IHasOptions
{
private ILogger Logger { get; set; }
@@ -73,24 +75,14 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{
}
// 256k
private const int BufferSize = 262144;
/// <summary>
/// Writes to.
/// </summary>
/// <param name="responseStream">The response stream.</param>
public void WriteTo(Stream responseStream)
{
WriteToInternal(responseStream);
}
// 256k
private const int BufferSize = 262144;
/// <summary>
/// Writes to async.
/// </summary>
/// <param name="responseStream">The response stream.</param>
/// <returns>Task.</returns>
private void WriteToInternal(Stream responseStream)
{
try
{
@@ -107,7 +99,36 @@ namespace MediaBrowser.Server.Implementations.HttpServer
{
OnError();
}
throw;
}
finally
{
if (OnComplete != null)
{
OnComplete();
}
}
}
public async Task WriteToAsync(Stream responseStream)
{
try
{
using (var src = SourceStream)
{
await src.CopyToAsync(responseStream, BufferSize).ConfigureAwait(false);
}
}
catch (Exception ex)
{
Logger.ErrorException("Error streaming data", ex);
if (OnError != null)
{
OnError();
}
throw;
}
finally