1 /* 2 * Copyright 2012 The WebRTC Project Authors. All rights reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "webrtc/base/ratelimiter.h" 12 13 namespace rtc { 14 CanUse(size_t desired,double time)15bool RateLimiter::CanUse(size_t desired, double time) { 16 return ((time > period_end_ && desired <= max_per_period_) || 17 (used_in_period_ + desired) <= max_per_period_); 18 } 19 Use(size_t used,double time)20void RateLimiter::Use(size_t used, double time) { 21 if (time > period_end_) { 22 period_start_ = time; 23 period_end_ = time + period_length_; 24 used_in_period_ = 0; 25 } 26 used_in_period_ += used; 27 } 28 29 } // namespace rtc 30