OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/socket/client_socket_pool_manager_impl.h" | 5 #include "net/socket/client_socket_pool_manager_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
147 ++it) | 147 ++it) |
148 it->second->FlushWithError(error); | 148 it->second->FlushWithError(error); |
149 | 149 |
150 ssl_socket_pool_->FlushWithError(error); | 150 ssl_socket_pool_->FlushWithError(error); |
151 transport_socket_pool_->FlushWithError(error); | 151 transport_socket_pool_->FlushWithError(error); |
152 } | 152 } |
153 | 153 |
154 void ClientSocketPoolManagerImpl::CloseIdleSockets() { | 154 void ClientSocketPoolManagerImpl::CloseIdleSockets() { |
155 // Close sockets in the highest level pools first, since higher level pools' | 155 // Close sockets in the highest level pools first, since higher level pools' |
156 // sockets may release stuff to the lower level pools. | 156 // sockets may release stuff to the lower level pools. |
157 for (SSLSocketPoolMap::const_iterator it = | 157 for (const auto& it : ssl_socket_pools_for_proxies_) |
158 ssl_socket_pools_for_proxies_.begin(); | 158 it.second->CloseIdleSockets(); |
159 it != ssl_socket_pools_for_proxies_.end(); | |
160 ++it) | |
161 it->second->CloseIdleSockets(); | |
162 | 159 |
163 for (HTTPProxySocketPoolMap::const_iterator it = | 160 for (const auto& it : http_proxy_socket_pools_) |
164 http_proxy_socket_pools_.begin(); | 161 it.second->CloseIdleSockets(); |
165 it != http_proxy_socket_pools_.end(); | |
166 ++it) | |
167 it->second->CloseIdleSockets(); | |
168 | 162 |
169 for (SSLSocketPoolMap::const_iterator it = | 163 for (const auto& it : ssl_socket_pools_for_https_proxies_) |
170 ssl_socket_pools_for_https_proxies_.begin(); | 164 it.second->CloseIdleSockets(); |
171 it != ssl_socket_pools_for_https_proxies_.end(); | |
172 ++it) | |
173 it->second->CloseIdleSockets(); | |
174 | 165 |
175 for (TransportSocketPoolMap::const_iterator it = | 166 for (const auto& it : transport_socket_pools_for_https_proxies_) |
176 transport_socket_pools_for_https_proxies_.begin(); | 167 it.second->CloseIdleSockets(); |
177 it != transport_socket_pools_for_https_proxies_.end(); | |
178 ++it) | |
179 it->second->CloseIdleSockets(); | |
180 | 168 |
181 for (TransportSocketPoolMap::const_iterator it = | 169 for (const auto& it : transport_socket_pools_for_http_proxies_) |
182 transport_socket_pools_for_http_proxies_.begin(); | 170 it.second->CloseIdleSockets(); |
183 it != transport_socket_pools_for_http_proxies_.end(); | |
184 ++it) | |
185 it->second->CloseIdleSockets(); | |
186 | 171 |
187 for (SOCKSSocketPoolMap::const_iterator it = | 172 for (const auto& it : socks_socket_pools_) |
188 socks_socket_pools_.begin(); | 173 it.second->CloseIdleSockets(); |
189 it != socks_socket_pools_.end(); | |
190 ++it) | |
191 it->second->CloseIdleSockets(); | |
192 | 174 |
193 for (TransportSocketPoolMap::const_iterator it = | 175 for (const auto& it : transport_socket_pools_for_socks_proxies_) |
194 transport_socket_pools_for_socks_proxies_.begin(); | 176 it.second->CloseIdleSockets(); |
195 it != transport_socket_pools_for_socks_proxies_.end(); | |
196 ++it) | |
197 it->second->CloseIdleSockets(); | |
198 | 177 |
199 ssl_socket_pool_->CloseIdleSockets(); | 178 ssl_socket_pool_->CloseIdleSockets(); |
200 transport_socket_pool_->CloseIdleSockets(); | 179 transport_socket_pool_->CloseIdleSockets(); |
201 } | 180 } |
202 | 181 |
| 182 void ClientSocketPoolManagerImpl::CloseIdleSocketsInGroup( |
| 183 const std::string& group_name) { |
| 184 // Close sockets in the highest level pools first, since higher level pools' |
| 185 // sockets may release stuff to the lower level pools. |
| 186 for (const auto& it : ssl_socket_pools_for_proxies_) |
| 187 it.second->CloseIdleSocketsInGroup(group_name); |
| 188 |
| 189 for (const auto& it : http_proxy_socket_pools_) |
| 190 it.second->CloseIdleSocketsInGroup(group_name); |
| 191 |
| 192 for (const auto& it : ssl_socket_pools_for_https_proxies_) |
| 193 it.second->CloseIdleSocketsInGroup(group_name); |
| 194 |
| 195 for (const auto& it : transport_socket_pools_for_https_proxies_) |
| 196 it.second->CloseIdleSocketsInGroup(group_name); |
| 197 |
| 198 for (const auto& it : transport_socket_pools_for_http_proxies_) |
| 199 it.second->CloseIdleSocketsInGroup(group_name); |
| 200 |
| 201 for (const auto& it : socks_socket_pools_) |
| 202 it.second->CloseIdleSocketsInGroup(group_name); |
| 203 |
| 204 for (const auto& it : transport_socket_pools_for_socks_proxies_) |
| 205 it.second->CloseIdleSocketsInGroup(group_name); |
| 206 |
| 207 ssl_socket_pool_->CloseIdleSocketsInGroup(group_name); |
| 208 transport_socket_pool_->CloseIdleSocketsInGroup(group_name); |
| 209 } |
| 210 |
203 TransportClientSocketPool* | 211 TransportClientSocketPool* |
204 ClientSocketPoolManagerImpl::GetTransportSocketPool() { | 212 ClientSocketPoolManagerImpl::GetTransportSocketPool() { |
205 return transport_socket_pool_.get(); | 213 return transport_socket_pool_.get(); |
206 } | 214 } |
207 | 215 |
208 SSLClientSocketPool* ClientSocketPoolManagerImpl::GetSSLSocketPool() { | 216 SSLClientSocketPool* ClientSocketPoolManagerImpl::GetSSLSocketPool() { |
209 return ssl_socket_pool_.get(); | 217 return ssl_socket_pool_.get(); |
210 } | 218 } |
211 | 219 |
212 SOCKSClientSocketPool* ClientSocketPoolManagerImpl::GetSocketPoolForSOCKSProxy( | 220 SOCKSClientSocketPool* ClientSocketPoolManagerImpl::GetSocketPoolForSOCKSProxy( |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 FlushSocketPoolsWithError(ERR_NETWORK_CHANGED); | 368 FlushSocketPoolsWithError(ERR_NETWORK_CHANGED); |
361 } | 369 } |
362 | 370 |
363 void ClientSocketPoolManagerImpl::DumpMemoryStats( | 371 void ClientSocketPoolManagerImpl::DumpMemoryStats( |
364 base::trace_event::ProcessMemoryDump* pmd, | 372 base::trace_event::ProcessMemoryDump* pmd, |
365 const std::string& parent_dump_absolute_name) const { | 373 const std::string& parent_dump_absolute_name) const { |
366 return ssl_socket_pool_->DumpMemoryStats(pmd, parent_dump_absolute_name); | 374 return ssl_socket_pool_->DumpMemoryStats(pmd, parent_dump_absolute_name); |
367 } | 375 } |
368 | 376 |
369 } // namespace net | 377 } // namespace net |
OLD | NEW |