Statistics
| Branch: | Revision:

root / trunk / Pithos.Core / Agents / Notifier.cs @ bc27bb7e

History | View | Annotate | Download (1.2 kB)

1 f4a72cb8 pkanavos
using System;
2 f4a72cb8 pkanavos
using System.Collections.Generic;
3 f4a72cb8 pkanavos
using System.Linq;
4 f4a72cb8 pkanavos
using System.Text;
5 f4a72cb8 pkanavos
6 f4a72cb8 pkanavos
namespace Pithos.Core
7 f4a72cb8 pkanavos
{
8 f4a72cb8 pkanavos
    public class Notifier:IDisposable
9 f4a72cb8 pkanavos
    {
10 f4a72cb8 pkanavos
        private readonly IStatusNotification _statusNotification;
11 f4a72cb8 pkanavos
12 f4a72cb8 pkanavos
        private readonly Notification _endNotification;
13 f4a72cb8 pkanavos
14 f4a72cb8 pkanavos
        public Notifier(IStatusNotification statusNotification,string startMessage,string endMessage)
15 f4a72cb8 pkanavos
            :this(statusNotification,new Notification{Message=startMessage},new Notification{Message=endMessage} )
16 f4a72cb8 pkanavos
        {
17 f4a72cb8 pkanavos
            
18 f4a72cb8 pkanavos
        }
19 f4a72cb8 pkanavos
20 f4a72cb8 pkanavos
        public Notifier(IStatusNotification statusNotification,Notification startNotification,Notification endNotification)
21 f4a72cb8 pkanavos
        {
22 f4a72cb8 pkanavos
            _statusNotification = statusNotification;
23 f4a72cb8 pkanavos
            _endNotification = endNotification;
24 f4a72cb8 pkanavos
            _statusNotification.Notify(startNotification);
25 f4a72cb8 pkanavos
        }
26 f4a72cb8 pkanavos
27 f4a72cb8 pkanavos
28 f4a72cb8 pkanavos
        public void Dispose()
29 f4a72cb8 pkanavos
        {
30 f4a72cb8 pkanavos
            Dispose(true);
31 f4a72cb8 pkanavos
            GC.SuppressFinalize(this);
32 f4a72cb8 pkanavos
        }
33 f4a72cb8 pkanavos
34 f4a72cb8 pkanavos
        ~Notifier()
35 f4a72cb8 pkanavos
        {
36 f4a72cb8 pkanavos
            Dispose(false);
37 f4a72cb8 pkanavos
        }
38 f4a72cb8 pkanavos
39 f4a72cb8 pkanavos
        protected virtual void Dispose(bool disposing)
40 f4a72cb8 pkanavos
        {
41 f4a72cb8 pkanavos
            if (disposing)
42 f4a72cb8 pkanavos
            {
43 f4a72cb8 pkanavos
                _statusNotification.Notify(_endNotification);        
44 f4a72cb8 pkanavos
            }
45 f4a72cb8 pkanavos
        }
46 f4a72cb8 pkanavos
    }
47 f4a72cb8 pkanavos
}