diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc')
-rw-r--r-- | third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc b/third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc new file mode 100644 index 0000000000..16ae458d50 --- /dev/null +++ b/third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc @@ -0,0 +1,54 @@ +/* + * Copyright 2017 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ +#include "rtc_tools/network_tester/config_reader.h" + +#include <fstream> +#include <iterator> +#include <string> + +#include "rtc_base/checks.h" + +namespace webrtc { + +ConfigReader::ConfigReader(const std::string& config_file_path) + : proto_config_index_(0) { + std::ifstream config_stream(config_file_path, + std::ios_base::in | std::ios_base::binary); + RTC_DCHECK(config_stream.is_open()) + << "Config " << config_file_path << " open failed"; + RTC_DCHECK(config_stream.good()); + std::string config_data((std::istreambuf_iterator<char>(config_stream)), + (std::istreambuf_iterator<char>())); + if (config_data.size() > 0) { + proto_all_configs_.ParseFromString(config_data); + } +} + +ConfigReader::~ConfigReader() = default; + +absl::optional<ConfigReader::Config> ConfigReader::GetNextConfig() { +#ifdef WEBRTC_NETWORK_TESTER_PROTO + if (proto_config_index_ >= proto_all_configs_.configs_size()) + return absl::nullopt; + auto proto_config = proto_all_configs_.configs(proto_config_index_++); + RTC_DCHECK(proto_config.has_packet_send_interval_ms()); + RTC_DCHECK(proto_config.has_packet_size()); + RTC_DCHECK(proto_config.has_execution_time_ms()); + Config config; + config.packet_send_interval_ms = proto_config.packet_send_interval_ms(); + config.packet_size = proto_config.packet_size(); + config.execution_time_ms = proto_config.execution_time_ms(); + return config; +#else + return absl::nullopt; +#endif // WEBRTC_NETWORK_TESTER_PROTO +} + +} // namespace webrtc |