From b5f82011baaf4f1cbaaeed0d7593c52e3ddf7b99 Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Tue, 13 Nov 2018 19:26:32 +0100 Subject: [PATCH] Adds scalar division to DataRate. Bug: webrtc:9709 Change-Id: I73eac1d2f27bd0f30a7b1ca075009a6aece08b03 Reviewed-on: https://webrtc-review.googlesource.com/c/110786 Reviewed-by: Karl Wiberg Commit-Queue: Sebastian Jansson Cr-Commit-Position: refs/heads/master@{#25680} --- api/units/data_rate.h | 7 +++++++ api/units/data_rate_unittest.cc | 3 +++ 2 files changed, 10 insertions(+) diff --git a/api/units/data_rate.h b/api/units/data_rate.h index 28efcd3ee8..f3b91fac99 100644 --- a/api/units/data_rate.h +++ b/api/units/data_rate.h @@ -206,6 +206,13 @@ inline DataRate operator*(const int32_t& scalar, const DataRate& rate) { return rate * scalar; } +template +typename std::enable_if::value, DataRate>::type operator/( + const DataRate& rate, + const T& scalar) { + return DataRate::bps(rate.bps() / scalar); +} + inline DataRate operator/(const DataSize& size, const TimeDelta& duration) { return DataRate::bps(data_rate_impl::Microbits(size) / duration.us()); } diff --git a/api/units/data_rate_unittest.cc b/api/units/data_rate_unittest.cc index 8e5b660594..996298c1fc 100644 --- a/api/units/data_rate_unittest.cc +++ b/api/units/data_rate_unittest.cc @@ -130,6 +130,9 @@ TEST(DataRateTest, MathOperations) { EXPECT_EQ(rate_a / rate_b, static_cast(kValueA) / kValueB); + EXPECT_EQ((rate_a / 10).bps(), kValueA / 10); + EXPECT_NEAR((rate_a / 0.5).bps(), kValueA * 2, 1); + DataRate mutable_rate = DataRate::bps(kValueA); mutable_rate += rate_b; EXPECT_EQ(mutable_rate.bps(), kValueA + kValueB);