aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/Services/ResponseHelper.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-12 15:27:26 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-03-12 15:27:26 -0400
commita660aa001eb31e91d040e066787fa764cf5f0fb4 (patch)
tree0bff0b393b98d1c74cc7383590c3826e95f36aff /Emby.Server.Implementations/Services/ResponseHelper.cs
parent29185eb9bd964e800b29282d91c8e36828460eb3 (diff)
re-organize file streaming
Diffstat (limited to 'Emby.Server.Implementations/Services/ResponseHelper.cs')
-rw-r--r--Emby.Server.Implementations/Services/ResponseHelper.cs46
1 files changed, 7 insertions, 39 deletions
diff --git a/Emby.Server.Implementations/Services/ResponseHelper.cs b/Emby.Server.Implementations/Services/ResponseHelper.cs
index eea4bf049..3c2af60db 100644
--- a/Emby.Server.Implementations/Services/ResponseHelper.cs
+++ b/Emby.Server.Implementations/Services/ResponseHelper.cs
@@ -12,45 +12,6 @@ namespace Emby.Server.Implementations.Services
{
public static class ResponseHelper
{
- private static async Task<bool> WriteToOutputStream(IResponse response, object result)
- {
- var asyncStreamWriter = result as IAsyncStreamWriter;
- if (asyncStreamWriter != null)
- {
- await asyncStreamWriter.WriteToAsync(response.OutputStream, CancellationToken.None).ConfigureAwait(false);
- return true;
- }
-
- var streamWriter = result as IStreamWriter;
- if (streamWriter != null)
- {
- streamWriter.WriteTo(response.OutputStream);
- return true;
- }
-
- var stream = result as Stream;
- if (stream != null)
- {
- using (stream)
- {
- await stream.CopyToAsync(response.OutputStream).ConfigureAwait(false);
- return true;
- }
- }
-
- var bytes = result as byte[];
- if (bytes != null)
- {
- response.ContentType = "application/octet-stream";
- response.SetContentLength(bytes.Length);
-
- await response.OutputStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false);
- return true;
- }
-
- return false;
- }
-
public static Task WriteToResponse(IResponse httpRes, IRequest httpReq, object result)
{
if (result == null)
@@ -155,6 +116,13 @@ namespace Emby.Server.Implementations.Services
return;
}
+ var fileWriter = result as FileWriter;
+ if (fileWriter != null)
+ {
+ await fileWriter.WriteToAsync(response, CancellationToken.None).ConfigureAwait(false);
+ return;
+ }
+
var stream = result as Stream;
if (stream != null)
{