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

Side by Side Diff: net/nqe/network_quality_estimator.h

Issue 2322183002: Add Network Quality Estimator (NQE) pref manager (Closed)
Patch Set: rebased Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ 5 #ifndef NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_
6 #define NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ 6 #define NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 // |use_smaller_responses_for_tests| should only be true when testing. 226 // |use_smaller_responses_for_tests| should only be true when testing.
227 // Allows the responses smaller than |kMinTransferSizeInBits| to be used for 227 // Allows the responses smaller than |kMinTransferSizeInBits| to be used for
228 // network quality estimation. 228 // network quality estimation.
229 void SetUseSmallResponsesForTesting(bool use_small_responses); 229 void SetUseSmallResponsesForTesting(bool use_small_responses);
230 230
231 // Reports |effective_connection_type| to all 231 // Reports |effective_connection_type| to all
232 // EffectiveConnectionTypeObservers. 232 // EffectiveConnectionTypeObservers.
233 void ReportEffectiveConnectionTypeForTesting( 233 void ReportEffectiveConnectionTypeForTesting(
234 EffectiveConnectionType effective_connection_type); 234 EffectiveConnectionType effective_connection_type);
235 235
236 // Adds and removes |observer| from the list of cache observers.
237 void AddNetworkQualitiesCacheObserver(
238 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
239 observer);
240 void RemoveNetworkQualitiesCacheObserver(
241 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
242 observer);
243
236 protected: 244 protected:
237 // NetworkChangeNotifier::ConnectionTypeObserver implementation: 245 // NetworkChangeNotifier::ConnectionTypeObserver implementation:
238 void OnConnectionTypeChanged( 246 void OnConnectionTypeChanged(
239 NetworkChangeNotifier::ConnectionType type) override; 247 NetworkChangeNotifier::ConnectionType type) override;
240 248
241 // ExternalEstimateProvider::UpdatedEstimateObserver implementation. 249 // ExternalEstimateProvider::UpdatedEstimateObserver implementation.
242 void OnUpdatedEstimateAvailable(const base::TimeDelta& rtt, 250 void OnUpdatedEstimateAvailable(const base::TimeDelta& rtt,
243 int32_t downstream_throughput_kbps, 251 int32_t downstream_throughput_kbps,
244 int32_t upstream_throughput_kbps) override; 252 int32_t upstream_throughput_kbps) override;
245 253
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 // prediction should be recorded. Virtualized for testing. 301 // prediction should be recorded. Virtualized for testing.
294 virtual const std::vector<base::TimeDelta>& GetAccuracyRecordingIntervals() 302 virtual const std::vector<base::TimeDelta>& GetAccuracyRecordingIntervals()
295 const; 303 const;
296 304
297 // Overrides the tick clock used by |this| for testing. 305 // Overrides the tick clock used by |this| for testing.
298 void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock); 306 void SetTickClockForTesting(std::unique_ptr<base::TickClock> tick_clock);
299 307
300 // Returns a random double in the range [0.0, 1.0). Virtualized for testing. 308 // Returns a random double in the range [0.0, 1.0). Virtualized for testing.
301 virtual double RandDouble() const; 309 virtual double RandDouble() const;
302 310
303 // Returns a pointer to |network_quality_store_|. Used only for testing.
304 nqe::internal::NetworkQualityStore* NetworkQualityStoreForTesting() const;
305
306 private: 311 private:
307 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 312 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
308 AdaptiveRecomputationEffectiveConnectionType); 313 AdaptiveRecomputationEffectiveConnectionType);
309 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations); 314 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, StoreObservations);
310 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation); 315 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, TestAddObservation);
311 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ObtainOperatingParams); 316 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ObtainOperatingParams);
312 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, 317 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest,
313 ObtainAlgorithmToUseFromParams); 318 ObtainAlgorithmToUseFromParams);
314 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, HalfLifeParam); 319 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, HalfLifeParam);
315 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ComputedPercentiles); 320 FRIEND_TEST_ALL_PREFIXES(NetworkQualityEstimatorTest, ComputedPercentiles);
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 base::ThreadChecker thread_checker_; 648 base::ThreadChecker thread_checker_;
644 649
645 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_; 650 base::WeakPtrFactory<NetworkQualityEstimator> weak_ptr_factory_;
646 651
647 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator); 652 DISALLOW_COPY_AND_ASSIGN(NetworkQualityEstimator);
648 }; 653 };
649 654
650 } // namespace net 655 } // namespace net
651 656
652 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_ 657 #endif // NET_NQE_NETWORK_QUALITY_ESTIMATOR_H_
OLDNEW
« no previous file with comments | « net/nqe/network_qualities_prefs_manager_unittest.cc ('k') | net/nqe/network_quality_estimator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698