Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Unified Diff: net/nqe/network_quality_estimator_params.cc

Issue 2858743002: NQE: Move params from the estimator class to the params class (Closed)
Patch Set: ryansturm comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/nqe/network_quality_estimator_params.h ('k') | net/nqe/network_quality_estimator_params_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/nqe/network_quality_estimator_params.cc
diff --git a/net/nqe/network_quality_estimator_params.cc b/net/nqe/network_quality_estimator_params.cc
index d88bd4aa492f74c751e41e50c58a6b6ca5fd360a..4da0ea209bee322248d7cc84acda049523853e8d 100644
--- a/net/nqe/network_quality_estimator_params.cc
+++ b/net/nqe/network_quality_estimator_params.cc
@@ -62,6 +62,60 @@ std::string GetStringValueForVariationParamWithDefaultValue(
return it->second;
}
+double GetWeightMultiplierPerSecond(
+ const std::map<std::string, std::string>& params) {
+ // Default value of the half life (in seconds) for computing time weighted
+ // percentiles. Every half life, the weight of all observations reduces by
+ // half. Lowering the half life would reduce the weight of older values
+ // faster.
+ int half_life_seconds = 60;
+ int32_t variations_value = 0;
+ auto it = params.find("HalfLifeSeconds");
+ if (it != params.end() && base::StringToInt(it->second, &variations_value) &&
+ variations_value >= 1) {
+ half_life_seconds = variations_value;
+ }
+ DCHECK_GT(half_life_seconds, 0);
+ return pow(0.5, 1.0 / half_life_seconds);
+}
+
+base::Optional<net::EffectiveConnectionType> GetForcedEffectiveConnectionType(
+ const std::map<std::string, std::string>& params) {
+ std::string forced_value = GetStringValueForVariationParamWithDefaultValue(
+ params, "force_effective_connection_type", "");
+ if (forced_value.empty())
+ return base::Optional<net::EffectiveConnectionType>();
+
+ net::EffectiveConnectionType forced_effective_connection_type =
+ net::EFFECTIVE_CONNECTION_TYPE_UNKNOWN;
+
+ bool effective_connection_type_available = GetEffectiveConnectionTypeForName(
+ forced_value, &forced_effective_connection_type);
+
+ DCHECK(effective_connection_type_available);
+
+ // Silence unused variable warning in release builds.
+ (void)effective_connection_type_available;
+
+ return forced_effective_connection_type;
+}
+
+bool GetPersistentCacheReadingEnabled(
+ const std::map<std::string, std::string>& params) {
+ if (GetStringValueForVariationParamWithDefaultValue(
+ params, "persistent_cache_reading_enabled", "false") != "true") {
+ return false;
+ }
+ return true;
+}
+
+base::TimeDelta GetMinSocketWatcherNotificationInterval(
+ const std::map<std::string, std::string>& params) {
+ // Use 1000 milliseconds as the default value.
+ return base::TimeDelta::FromMilliseconds(GetValueForVariationParam(
+ params, "min_socket_watcher_notification_interval_msec", 1000));
+}
+
} // namespace
namespace net {
@@ -72,7 +126,26 @@ namespace internal {
NetworkQualityEstimatorParams::NetworkQualityEstimatorParams(
const std::map<std::string, std::string>& params)
- : params_(params) {}
+ : params_(params),
+ weight_multiplier_per_second_(GetWeightMultiplierPerSecond(params_)),
+ weight_multiplier_per_dbm_(
+ GetDoubleValueForVariationParamWithDefaultValue(params_,
+ "rssi_weight_per_dbm",
+ 1.0)),
+ correlation_uma_logging_probability_(
+ GetDoubleValueForVariationParamWithDefaultValue(
+ params_,
+ "correlation_logging_probability",
+ 0.01)),
+ forced_effective_connection_type_(
+ GetForcedEffectiveConnectionType(params_)),
+ persistent_cache_reading_enabled_(
+ GetPersistentCacheReadingEnabled(params_)),
+ min_socket_watcher_notification_interval_(
+ GetMinSocketWatcherNotificationInterval(params_)) {
+ DCHECK_LE(0.0, correlation_uma_logging_probability_);
+ DCHECK_GE(1.0, correlation_uma_logging_probability_);
+}
NetworkQualityEstimatorParams::~NetworkQualityEstimatorParams() {
DCHECK(thread_checker_.CalledOnValidThread());
@@ -88,33 +161,6 @@ std::string NetworkQualityEstimatorParams::GetEffectiveConnectionTypeAlgorithm()
return it->second;
}
-double NetworkQualityEstimatorParams::GetWeightMultiplierPerSecond() const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- // Default value of the half life (in seconds) for computing time weighted
- // percentiles. Every half life, the weight of all observations reduces by
- // half. Lowering the half life would reduce the weight of older values
- // faster.
- int half_life_seconds = 60;
- int32_t variations_value = 0;
- auto it = params_.find("HalfLifeSeconds");
- if (it != params_.end() && base::StringToInt(it->second, &variations_value) &&
- variations_value >= 1) {
- half_life_seconds = variations_value;
- }
- DCHECK_GT(half_life_seconds, 0);
- return pow(0.5, 1.0 / half_life_seconds);
-}
-
-double NetworkQualityEstimatorParams::GetWeightMultiplierPerDbm() const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- // The default weight is set to 1.0, so by default, RSSI has no effect on the
- // observation's weight.
- return GetDoubleValueForVariationParamWithDefaultValue(
- params_, "rssi_weight_per_dbm", 1.0);
-}
-
// static
const char* NetworkQualityEstimatorParams::GetNameForConnectionType(
net::NetworkChangeNotifier::ConnectionType connection_type) {
@@ -348,62 +394,6 @@ void NetworkQualityEstimatorParams::ObtainEffectiveConnectionTypeModelParams(
}
}
-double NetworkQualityEstimatorParams::correlation_uma_logging_probability()
- const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- double correlation_uma_logging_probability =
- GetDoubleValueForVariationParamWithDefaultValue(
- params_, "correlation_logging_probability", 0.01);
- DCHECK_LE(0.0, correlation_uma_logging_probability);
- DCHECK_GE(1.0, correlation_uma_logging_probability);
- return correlation_uma_logging_probability;
-}
-
-bool NetworkQualityEstimatorParams::forced_effective_connection_type_set()
- const {
- return !GetStringValueForVariationParamWithDefaultValue(
- params_, "force_effective_connection_type", "")
- .empty();
-}
-
-EffectiveConnectionType
-NetworkQualityEstimatorParams::forced_effective_connection_type() const {
- EffectiveConnectionType forced_effective_connection_type =
- EFFECTIVE_CONNECTION_TYPE_UNKNOWN;
- std::string forced_value = GetStringValueForVariationParamWithDefaultValue(
- params_, "force_effective_connection_type",
- GetNameForEffectiveConnectionType(EFFECTIVE_CONNECTION_TYPE_UNKNOWN));
- DCHECK(!forced_value.empty());
- bool effective_connection_type_available = GetEffectiveConnectionTypeForName(
- forced_value, &forced_effective_connection_type);
- DCHECK(effective_connection_type_available);
-
- // Silence unused variable warning in release builds.
- (void)effective_connection_type_available;
-
- return forced_effective_connection_type;
-}
-
-bool NetworkQualityEstimatorParams::persistent_cache_reading_enabled() const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- if (GetStringValueForVariationParamWithDefaultValue(
- params_, "persistent_cache_reading_enabled", "false") != "true") {
- return false;
- }
- return true;
-}
-
-base::TimeDelta
-NetworkQualityEstimatorParams::GetMinSocketWatcherNotificationInterval() const {
- DCHECK(thread_checker_.CalledOnValidThread());
-
- // Use 1000 milliseconds as the default value.
- return base::TimeDelta::FromMilliseconds(GetValueForVariationParam(
- params_, "min_socket_watcher_notification_interval_msec", 1000));
-}
-
} // namespace internal
} // namespace nqe
« no previous file with comments | « net/nqe/network_quality_estimator_params.h ('k') | net/nqe/network_quality_estimator_params_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698