-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFlowControllerPolicy.cpp
59 lines (47 loc) · 1.36 KB
/
FlowControllerPolicy.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include "RxConcurrent/FlowControllerPolicy.h"
namespace BaseLib { namespace Concurrent
{
FlowControllerPolicy::FlowControllerPolicy(TaskPolicy policy)
: taskPolicy_(policy)
, throughput_(Policy::Throughput::PerSecond(1000))
, history_(Policy::History::KeepLast(5))
, deadline_(Policy::Deadline::FromSeconds(5))
, maxQueueSize_(Policy::MaxLimit<int>::LimitTo(Policy::LimitKind::INCLUSIVE, 100))
, congestion_(Policy::MaxLimit<float>::InclusiveLimitTo(1), Policy::MaxLimit<float>::InclusiveLimitTo(0.8f))
, minSeparation_(Policy::TimeBasedFilter::WithMinSeparation(Duration::FromMilliseconds(100)))
{}
FlowControllerPolicy::~FlowControllerPolicy()
{}
const TaskPolicy &FlowControllerPolicy::Task() const
{
return taskPolicy_;
}
Policy::Throughput FlowControllerPolicy::Throughput() const
{
return throughput_;
}
Policy::History FlowControllerPolicy::History() const
{
return history_;
}
Policy::Deadline FlowControllerPolicy::Deadline() const
{
return deadline_;
}
Policy::MaxLimit<int> FlowControllerPolicy::MaxQueueSize() const
{
return maxQueueSize_;
}
Policy::Congestion FlowControllerPolicy::Congestion() const
{
return congestion_;
}
Policy::TimeBasedFilter FlowControllerPolicy::MinSeparation() const
{
return minSeparation_;
}
FlowControllerPolicy FlowControllerPolicy::Default()
{
return FlowControllerPolicy();
}
}}