Some timeout issues
[pithos-ms-client] / trunk / Pithos.Core / Agents / Notifier.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Linq;\r
4 using System.Text;\r
5 using System.Threading.Tasks;\r
6 \r
7 namespace Pithos.Core\r
8 {\r
9     public class Notifier:IDisposable\r
10     {\r
11         private readonly IStatusNotification _statusNotification;\r
12 \r
13         private readonly Notification _endNotification;\r
14 \r
15         public Notifier(IStatusNotification statusNotification,string startMessage,string endMessage)\r
16             :this(statusNotification,new Notification{Message=startMessage},new Notification{Message=endMessage} )\r
17         {\r
18             \r
19         }\r
20 \r
21         public Notifier(IStatusNotification statusNotification,Notification startNotification,Notification endNotification)\r
22         {\r
23             _statusNotification = statusNotification;\r
24             _endNotification = endNotification;\r
25             \r
26             if (startNotification!=null)\r
27                 _statusNotification.Notify(startNotification);\r
28         }\r
29 \r
30 \r
31         public void Dispose()\r
32         {\r
33             Dispose(true);\r
34             GC.SuppressFinalize(this);\r
35         }\r
36 \r
37         ~Notifier()\r
38         {\r
39             Dispose(false);\r
40         }\r
41 \r
42         protected virtual void Dispose(bool disposing)\r
43         {\r
44             if (disposing)\r
45             {\r
46                 if (_endNotification!=null)\r
47                     _statusNotification.Notify(_endNotification);        \r
48             }\r
49         }\r
50     }\r
51 }\r