| Index: net/quic/congestion_control/leaky_bucket.cc
|
| diff --git a/net/quic/congestion_control/leaky_bucket.cc b/net/quic/congestion_control/leaky_bucket.cc
|
| index 0012ae862acdc6cb146cf6b78dff04d0df49a549..85568109625aa842de17aa10c4e4eb304470b56e 100644
|
| --- a/net/quic/congestion_control/leaky_bucket.cc
|
| +++ b/net/quic/congestion_control/leaky_bucket.cc
|
| @@ -8,37 +8,35 @@
|
|
|
| namespace net {
|
|
|
| -LeakyBucket::LeakyBucket(const QuicClock* clock, QuicBandwidth draining_rate)
|
| - : clock_(clock),
|
| - bytes_(0),
|
| +LeakyBucket::LeakyBucket(QuicBandwidth draining_rate)
|
| + : bytes_(0),
|
| time_last_updated_(QuicTime::Zero()),
|
| draining_rate_(draining_rate) {
|
| }
|
|
|
| -void LeakyBucket::SetDrainingRate(QuicBandwidth draining_rate) {
|
| - Update();
|
| +void LeakyBucket::SetDrainingRate(QuicTime now, QuicBandwidth draining_rate) {
|
| + Update(now);
|
| draining_rate_ = draining_rate;
|
| }
|
|
|
| -void LeakyBucket::Add(QuicByteCount bytes) {
|
| - Update();
|
| +void LeakyBucket::Add(QuicTime now, QuicByteCount bytes) {
|
| + Update(now);
|
| bytes_ += bytes;
|
| }
|
|
|
| -QuicTime::Delta LeakyBucket::TimeRemaining() {
|
| - Update();
|
| +QuicTime::Delta LeakyBucket::TimeRemaining(QuicTime now) {
|
| + Update(now);
|
| return QuicTime::Delta::FromMicroseconds(
|
| (bytes_ * base::Time::kMicrosecondsPerSecond) /
|
| draining_rate_.ToBytesPerSecond());
|
| }
|
|
|
| -QuicByteCount LeakyBucket::BytesPending() {
|
| - Update();
|
| +QuicByteCount LeakyBucket::BytesPending(QuicTime now) {
|
| + Update(now);
|
| return bytes_;
|
| }
|
|
|
| -void LeakyBucket::Update() {
|
| - QuicTime now = clock_->Now();
|
| +void LeakyBucket::Update(QuicTime now) {
|
| QuicTime::Delta elapsed_time = now.Subtract(time_last_updated_);
|
| QuicByteCount bytes_cleared = draining_rate_.ToBytesPerPeriod(elapsed_time);
|
| if (bytes_cleared >= bytes_) {
|
|
|