diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/libwebrtc/rtc_tools/network_tester/config_reader.cc | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
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 |