2004-02-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web / HttpAsyncResult.cs
1 // \r
2 // System.Web.HttpAsyncResult\r
3 //\r
4 // Author:\r
5 //   Patrik Torstensson (ptorsten@hotmail.com)\r
6 //\r
7 using System;\r
8 using System.Threading;\r
9 \r
10 namespace System.Web\r
11 {\r
12         internal class HttpAsyncResult : IAsyncResult\r
13         {\r
14                 private object _result;\r
15                 private object _asyncState;\r
16                 private AsyncCallback _callback;\r
17                 private Exception _error;\r
18 \r
19                 private bool _ready;\r
20                 private bool _readySync;\r
21 \r
22                 internal HttpAsyncResult(AsyncCallback callback, object state) {\r
23                         _callback = callback;\r
24                         _asyncState = state;\r
25                 }\r
26 \r
27                 internal void Complete(bool sync, object result, Exception error) {\r
28                         _ready = true;\r
29                         _readySync = sync;\r
30                         _result = result;\r
31                         _error = error;\r
32                         if (null != _callback) {\r
33                                 _callback(this);\r
34                         }\r
35                 }\r
36 \r
37                 internal Exception Error {\r
38                         get {\r
39                                 return null;\r
40                         }\r
41                 }\r
42 \r
43                 public object AsyncState {\r
44                         get {\r
45                                 return _asyncState;\r
46                         }\r
47                 }\r
48 \r
49                 public object AsyncObject {\r
50                         get {\r
51                                 return null;\r
52                         }\r
53                 }\r
54 \r
55                 public WaitHandle AsyncWaitHandle {\r
56                         get {\r
57                                 return null;\r
58                         }\r
59                 }\r
60 \r
61                 public bool CompletedSynchronously {\r
62                         get {\r
63                                 return _readySync;\r
64                         }\r
65                 }\r
66 \r
67                 public bool IsCompleted {\r
68                         get {\r
69                                 return _ready;\r
70                         }\r
71                 }\r
72         }\r
73 }\r