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 |
} |