2004-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web / HttpResponseStream.cs
1 // \r
2 // System.Web.HttpResponseStream\r
3 //\r
4 // Author:\r
5 //   Patrik Torstensson (Patrik.Torstensson@labs2.com)\r
6 //\r
7 using System;\r
8 using System.IO;\r
9 \r
10 namespace System.Web {\r
11    /// <summary>\r
12    /// Simple wrapper around HttpWriter to support the Stream interface\r
13    /// </summary>\r
14    class HttpResponseStream : Stream {\r
15       private HttpWriter _Writer;\r
16            \r
17       internal HttpResponseStream(HttpWriter Writer) {\r
18          _Writer = Writer;\r
19       }\r
20                 \r
21       public override void Flush() {\r
22          _Writer.Flush();\r
23       }\r
24 \r
25       public override void Close() {\r
26          _Writer.Close();\r
27       }\r
28 \r
29       public override int Read(byte [] buffer, int offset, int length) {\r
30          throw new NotSupportedException();\r
31       }\r
32 \r
33       public override long Seek(long offset, SeekOrigin origin) {\r
34          throw new NotSupportedException();\r
35       }\r
36 \r
37       public override void SetLength(long length) {\r
38          throw new NotSupportedException();\r
39       }\r
40 \r
41       public override void Write(byte [] buffer, int offset, int length) {\r
42          if (offset < 0) {\r
43             throw new ArgumentOutOfRangeException("offset");\r
44          }\r
45 \r
46          if (length < 0) {\r
47             throw new ArgumentOutOfRangeException("length");\r
48          }\r
49                    \r
50          _Writer.WriteBytes(buffer, offset, length);\r
51       }\r
52 \r
53       public override bool CanRead {\r
54          get {\r
55             return false;\r
56          }\r
57       }\r
58 \r
59       public override bool CanSeek {\r
60          get {\r
61             return false;\r
62          }\r
63       }\r
64 \r
65       public override bool CanWrite {\r
66          get {\r
67             return true;\r
68          }\r
69       }\r
70 \r
71       public override long Length {\r
72          get {\r
73             throw new NotSupportedException();\r
74          }\r
75       }\r
76 \r
77       public override long Position {\r
78          get {\r
79             throw new NotSupportedException();\r
80          }\r
81 \r
82          set {\r
83             throw new NotSupportedException();\r
84          }\r
85       }\r
86    }\r
87 }\r