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 13namespace rtc { 14 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 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