Statistics
| Branch: | Revision:

root / trunk / hammock / src / net35 / Hammock / Retries / RetryPolicy.cs @ 0eea575a

History | View | Annotate | Download (957 Bytes)

1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using Hammock.Extensions;
5

    
6
namespace Hammock.Retries
7
{
8
#if !SILVERLIGHT
9
    [Serializable]
10
#endif
11
    public class RetryPolicy
12
    {
13
        public virtual ICollection<IRetryCondition> RetryConditions { get; set; }
14
        
15
        public virtual int RetryCount { get; set; }
16
        
17
        public RetryPolicy()
18
        {
19
            Initialize();
20
        }
21

    
22
        private void Initialize()
23
        {
24
            RetryConditions = new List<IRetryCondition>(0);
25
        }
26

    
27
        public virtual void RetryOn(IEnumerable<IRetryCondition> conditions)
28
        {
29
            foreach(var condition in conditions)
30
            {
31
                RetryConditions.Add(condition);    
32
            }
33
        }
34

    
35
        public virtual void RetryOn(params IRetryCondition[] conditions)
36
        {
37
            var enumerable = conditions.ToList();
38
            RetryOn(enumerable);
39
        }
40
    }
41
}