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

Side by Side Diff: net/nqe/network_quality_store.cc

Issue 2261813002: Add a network quality cache observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
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
« no previous file with comments | « net/nqe/network_quality_store.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "net/nqe/network_quality_store.h" 5 #include "net/nqe/network_quality_store.h"
6 6
7 #include "net/base/network_change_notifier.h" 7 #include "net/base/network_change_notifier.h"
8 8
9 namespace net { 9 namespace net {
10 10
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 if ((it->second).OlderThan(oldest_entry_iterator->second)) 52 if ((it->second).OlderThan(oldest_entry_iterator->second))
53 oldest_entry_iterator = it; 53 oldest_entry_iterator = it;
54 } 54 }
55 cached_network_qualities_.erase(oldest_entry_iterator); 55 cached_network_qualities_.erase(oldest_entry_iterator);
56 } 56 }
57 57
58 cached_network_qualities_.insert( 58 cached_network_qualities_.insert(
59 std::make_pair(network_id, cached_network_quality)); 59 std::make_pair(network_id, cached_network_quality));
60 DCHECK_LE(cached_network_qualities_.size(), 60 DCHECK_LE(cached_network_qualities_.size(),
61 static_cast<size_t>(kMaximumNetworkQualityCacheSize)); 61 static_cast<size_t>(kMaximumNetworkQualityCacheSize));
62
63 FOR_EACH_OBSERVER(
64 NetworkQualitiesCacheObserver, network_qualities_cache_observer_list_,
65 OnChangeInCachedNetworkQuality(network_id, cached_network_quality));
62 } 66 }
63 67
64 bool NetworkQualityStore::GetById( 68 bool NetworkQualityStore::GetById(
65 const nqe::internal::NetworkID& network_id, 69 const nqe::internal::NetworkID& network_id,
66 nqe::internal::CachedNetworkQuality* cached_network_quality) { 70 nqe::internal::CachedNetworkQuality* cached_network_quality) {
67 DCHECK(thread_checker_.CalledOnValidThread()); 71 DCHECK(thread_checker_.CalledOnValidThread());
68 72
69 CachedNetworkQualities::const_iterator it = 73 CachedNetworkQualities::const_iterator it =
70 cached_network_qualities_.find(network_id); 74 cached_network_qualities_.find(network_id);
71 75
72 if (it == cached_network_qualities_.end()) 76 if (it == cached_network_qualities_.end())
73 return false; 77 return false;
74 78
75 *cached_network_quality = it->second; 79 *cached_network_quality = it->second;
76 return true; 80 return true;
77 } 81 }
78 82
83 void NetworkQualityStore::AddNetworkQualitiesCacheObserver(
84 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
85 observer) {
86 DCHECK(thread_checker_.CalledOnValidThread());
87 network_qualities_cache_observer_list_.AddObserver(observer);
88 }
89
90 void NetworkQualityStore::RemoveNetworkQualitiesCacheObserver(
91 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
92 observer) {
93 DCHECK(thread_checker_.CalledOnValidThread());
94 network_qualities_cache_observer_list_.RemoveObserver(observer);
95 }
96
79 } // namespace internal 97 } // namespace internal
80 98
81 } // namespace nqe 99 } // namespace nqe
82 100
83 } // namespace net 101 } // namespace net
OLDNEW
« no previous file with comments | « net/nqe/network_quality_store.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698