diff options
| author | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-06 09:21:56 -0400 |
|---|---|---|
| committer | LukePulverenti Luke Pulverenti luke pulverenti <LukePulverenti Luke Pulverenti luke.pulverenti@gmail.com> | 2012-08-06 09:21:56 -0400 |
| commit | f9bdf0b6d93982197fdb9fafb655508066e9a002 (patch) | |
| tree | b758163b9b1a5e77509b7aee448fec3f1c412950 | |
| parent | 28809cc2bdba74c4b23e63fb1d892d163d5a893d (diff) | |
Made WriteStream virtual
| -rw-r--r-- | MediaBrowser.Common/Net/Handlers/BaseHandler.cs | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs index ca88637dba..16a08b9b3c 100644 --- a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs +++ b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs @@ -14,9 +14,35 @@ namespace MediaBrowser.Common.Net.Handlers public IDictionary<string, string> Headers = new Dictionary<string, string>();
/// <summary>
+ /// Returns true or false indicating if the handler writes to the stream asynchronously.
+ /// If so the subclass will be responsible for disposing the stream when complete.
+ /// </summary>
+ protected virtual bool IsAsyncHandler
+ {
+ get
+ {
+ return false;
+ }
+ }
+
+ /// <summary>
/// The action to write the response to the output stream
/// </summary>
- public Action<Stream> WriteStream { get; set; }
+ public virtual Action<Stream> WriteStream
+ {
+ get
+ {
+ return s =>
+ {
+ WriteReponse(s);
+
+ if (!IsAsyncHandler)
+ {
+ s.Dispose();
+ }
+ };
+ }
+ }
/// <summary>
/// The original RequestContext
@@ -81,15 +107,6 @@ namespace MediaBrowser.Common.Net.Handlers }
}
- public BaseHandler()
- {
- WriteStream = s =>
- {
- WriteReponse(s);
- s.Dispose();
- };
- }
-
private void WriteReponse(Stream stream)
{
if (CompressResponse)
|
