From 89eb0bba0c348fafd00fbfa58c592285198158f3 Mon Sep 17 00:00:00 2001 From: Sebastian Jansson Date: Fri, 13 Mar 2020 17:47:38 +0100 Subject: [PATCH] Adds UpdateConfig to SimulatedNetwork Bug: webrtc:9510 Change-Id: Ied0e5ff291021ba4f539eee9820b8490a7004882 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170462 Reviewed-by: Ali Tofigh Commit-Queue: Sebastian Jansson Cr-Commit-Position: refs/heads/master@{#30803} --- api/test/simulated_network.h | 2 ++ call/simulated_network.cc | 6 ++++++ call/simulated_network.h | 2 ++ 3 files changed, 10 insertions(+) diff --git a/api/test/simulated_network.h b/api/test/simulated_network.h index 7612923c2b..0d5c6613a6 100644 --- a/api/test/simulated_network.h +++ b/api/test/simulated_network.h @@ -87,6 +87,8 @@ class SimulatedNetworkInterface : public NetworkBehaviorInterface { public: // Sets a new configuration. This won't affect packets already in the pipe. virtual void SetConfig(const BuiltInNetworkBehaviorConfig& config) = 0; + virtual void UpdateConfig( + std::function config_modifier) = 0; virtual void PauseTransmissionUntil(int64_t until_us) = 0; }; diff --git a/call/simulated_network.cc b/call/simulated_network.cc index 0412129d0c..b298fdb4e2 100644 --- a/call/simulated_network.cc +++ b/call/simulated_network.cc @@ -111,6 +111,12 @@ void SimulatedNetwork::SetConfig(const Config& config) { } } +void SimulatedNetwork::UpdateConfig( + std::function config_modifier) { + rtc::CritScope crit(&config_lock_); + config_modifier(&config_state_.config); +} + void SimulatedNetwork::PauseTransmissionUntil(int64_t until_us) { rtc::CritScope crit(&config_lock_); config_state_.pause_transmission_until_us = until_us; diff --git a/call/simulated_network.h b/call/simulated_network.h index fa72762b44..2ff90ec284 100644 --- a/call/simulated_network.h +++ b/call/simulated_network.h @@ -62,6 +62,8 @@ class SimulatedNetwork : public SimulatedNetworkInterface { // Sets a new configuration. This won't affect packets already in the pipe. void SetConfig(const Config& config) override; + void UpdateConfig(std::function + config_modifier) override; void PauseTransmissionUntil(int64_t until_us) override; // NetworkBehaviorInterface