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

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: PS Created 4 years, 4 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 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,
65 network_qualities_persistent_caching_observer_list_,
66 OnChangeInCachedNetworkQuality(network_id, cached_network_quality));
62 } 67 }
63 68
64 bool NetworkQualityStore::GetById( 69 bool NetworkQualityStore::GetById(
65 const nqe::internal::NetworkID& network_id, 70 const nqe::internal::NetworkID& network_id,
66 nqe::internal::CachedNetworkQuality* cached_network_quality) { 71 nqe::internal::CachedNetworkQuality* cached_network_quality) {
67 DCHECK(thread_checker_.CalledOnValidThread()); 72 DCHECK(thread_checker_.CalledOnValidThread());
68 73
69 CachedNetworkQualities::const_iterator it = 74 CachedNetworkQualities::const_iterator it =
70 cached_network_qualities_.find(network_id); 75 cached_network_qualities_.find(network_id);
71 76
72 if (it == cached_network_qualities_.end()) 77 if (it == cached_network_qualities_.end())
73 return false; 78 return false;
74 79
75 *cached_network_quality = it->second; 80 *cached_network_quality = it->second;
76 return true; 81 return true;
77 } 82 }
78 83
84 void NetworkQualityStore::AddNetworkQualitiesCacheObserver(
85 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
86 observer) {
87 DCHECK(thread_checker_.CalledOnValidThread());
88 network_qualities_persistent_caching_observer_list_.AddObserver(observer);
89 }
90
91 void NetworkQualityStore::RemoveNetworkQualitiesCacheObserver(
92 nqe::internal::NetworkQualityStore::NetworkQualitiesCacheObserver*
93 observer) {
94 DCHECK(thread_checker_.CalledOnValidThread());
95 network_qualities_persistent_caching_observer_list_.RemoveObserver(observer);
96 }
97
79 } // namespace internal 98 } // namespace internal
80 99
81 } // namespace nqe 100 } // namespace nqe
82 101
83 } // namespace net 102 } // namespace net
OLDNEW
« net/nqe/network_quality_store.h ('K') | « net/nqe/network_quality_store.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698