Statistics
| Branch: | Revision:

root / trunk / hammock / src / net35 / Hammock / Tasks / TaskOptions.cs @ 0eea575a

History | View | Annotate | Download (1.3 kB)

1 0eea575a Panagiotis Kanavos
using System;
2 0eea575a Panagiotis Kanavos
3 0eea575a Panagiotis Kanavos
namespace Hammock.Tasks
4 0eea575a Panagiotis Kanavos
{
5 0eea575a Panagiotis Kanavos
6 0eea575a Panagiotis Kanavos
7 0eea575a Panagiotis Kanavos
#if !SILVERLIGHT
8 0eea575a Panagiotis Kanavos
    [Serializable]
9 0eea575a Panagiotis Kanavos
#endif
10 0eea575a Panagiotis Kanavos
    public class TaskOptions<T> : TaskOptions, ITaskOptions<T>
11 0eea575a Panagiotis Kanavos
    {
12 0eea575a Panagiotis Kanavos
        private RateLimitType _rateLimitType = RateLimitType.ByPredicate;
13 0eea575a Panagiotis Kanavos
        private double? _rateLimitPercent; 
14 0eea575a Panagiotis Kanavos
15 0eea575a Panagiotis Kanavos
        public virtual RateLimitType RateLimitType { get { return _rateLimitType; } }
16 0eea575a Panagiotis Kanavos
        public virtual Predicate<T> RateLimitingPredicate { get; set; }
17 0eea575a Panagiotis Kanavos
        public virtual Func<T> GetRateLimitStatus { get; set; }
18 0eea575a Panagiotis Kanavos
        public virtual double? RateLimitPercent
19 0eea575a Panagiotis Kanavos
        {
20 0eea575a Panagiotis Kanavos
            get { return _rateLimitPercent; }
21 0eea575a Panagiotis Kanavos
            set
22 0eea575a Panagiotis Kanavos
            {
23 0eea575a Panagiotis Kanavos
                if ( value != null)
24 0eea575a Panagiotis Kanavos
                {
25 0eea575a Panagiotis Kanavos
                    _rateLimitType = RateLimitType.ByPercent;
26 0eea575a Panagiotis Kanavos
                }
27 0eea575a Panagiotis Kanavos
                else
28 0eea575a Panagiotis Kanavos
                {
29 0eea575a Panagiotis Kanavos
                    _rateLimitType = RateLimitType.ByPredicate;
30 0eea575a Panagiotis Kanavos
                }
31 0eea575a Panagiotis Kanavos
                _rateLimitPercent = value;
32 0eea575a Panagiotis Kanavos
            }
33 0eea575a Panagiotis Kanavos
        }
34 0eea575a Panagiotis Kanavos
    }
35 0eea575a Panagiotis Kanavos
36 0eea575a Panagiotis Kanavos
#if !SILVERLIGHT
37 0eea575a Panagiotis Kanavos
    [Serializable]
38 0eea575a Panagiotis Kanavos
#endif
39 0eea575a Panagiotis Kanavos
    public class TaskOptions : ITaskOptions
40 0eea575a Panagiotis Kanavos
    {
41 0eea575a Panagiotis Kanavos
        public virtual TimeSpan DueTime { get; set; }
42 0eea575a Panagiotis Kanavos
        public virtual int RepeatTimes { get; set; }
43 0eea575a Panagiotis Kanavos
        public virtual TimeSpan RepeatInterval { get; set; }
44 0eea575a Panagiotis Kanavos
        public virtual bool ContinueOnError { get; set; }
45 0eea575a Panagiotis Kanavos
    }
46 0eea575a Panagiotis Kanavos
}