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

Side by Side Diff: net/socket/client_socket_pool_base.h

Issue 1756019: Fix some uses of scoped_ptr.release() in net/ such that the return value is not ignored. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: add back the change that got lost in the void Created 10 years, 7 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/disk_cache/file_posix.cc ('k') | net/socket/client_socket_pool_base.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 // A ClientSocketPoolBase is used to restrict the number of sockets open at 5 // A ClientSocketPoolBase is used to restrict the number of sockets open at
6 // a time. It also maintains a list of idle persistent sockets for reuse. 6 // a time. It also maintains a list of idle persistent sockets for reuse.
7 // Subclasses of ClientSocketPool should compose ClientSocketPoolBase to handle 7 // Subclasses of ClientSocketPool should compose ClientSocketPoolBase to handle
8 // the core logic of (1) restricting the number of active (connected or 8 // the core logic of (1) restricting the number of active (connected or
9 // connecting) sockets per "group" (generally speaking, the hostname), (2) 9 // connecting) sockets per "group" (generally speaking, the hostname), (2)
10 // maintaining a per-group list of idle, persistent sockets for reuse, and (3) 10 // maintaining a per-group list of idle, persistent sockets for reuse, and (3)
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 169
170 ClientSocketPoolBaseHelper( 170 ClientSocketPoolBaseHelper(
171 int max_sockets, 171 int max_sockets,
172 int max_sockets_per_group, 172 int max_sockets_per_group,
173 base::TimeDelta unused_idle_socket_timeout, 173 base::TimeDelta unused_idle_socket_timeout,
174 base::TimeDelta used_idle_socket_timeout, 174 base::TimeDelta used_idle_socket_timeout,
175 ConnectJobFactory* connect_job_factory, 175 ConnectJobFactory* connect_job_factory,
176 NetworkChangeNotifier* network_change_notifier); 176 NetworkChangeNotifier* network_change_notifier);
177 177
178 // See ClientSocketPool::RequestSocket for documentation on this function. 178 // See ClientSocketPool::RequestSocket for documentation on this function.
179 // Note that |request| must be heap allocated. If ERR_IO_PENDING is returned, 179 // ClientSocketPoolBaseHelper takes ownership of |request|, which must be
180 // then ClientSocketPoolBaseHelper takes ownership of |request|. 180 // heap allocated.
181 int RequestSocket(const std::string& group_name, const Request* request); 181 int RequestSocket(const std::string& group_name, const Request* request);
182 182
183 // See ClientSocketPool::CancelRequest for documentation on this function. 183 // See ClientSocketPool::CancelRequest for documentation on this function.
184 void CancelRequest(const std::string& group_name, 184 void CancelRequest(const std::string& group_name,
185 const ClientSocketHandle* handle); 185 const ClientSocketHandle* handle);
186 186
187 // See ClientSocketPool::ReleaseSocket for documentation on this function. 187 // See ClientSocketPool::ReleaseSocket for documentation on this function.
188 void ReleaseSocket(const std::string& group_name, 188 void ReleaseSocket(const std::string& group_name,
189 ClientSocket* socket); 189 ClientSocket* socket);
190 190
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 519
520 // RequestSocket bundles up the parameters into a Request and then forwards to 520 // RequestSocket bundles up the parameters into a Request and then forwards to
521 // ClientSocketPoolBaseHelper::RequestSocket(). Note that the memory 521 // ClientSocketPoolBaseHelper::RequestSocket(). Note that the memory
522 // ownership is transferred in the asynchronous (ERR_IO_PENDING) case. 522 // ownership is transferred in the asynchronous (ERR_IO_PENDING) case.
523 int RequestSocket(const std::string& group_name, 523 int RequestSocket(const std::string& group_name,
524 const SocketParams& params, 524 const SocketParams& params,
525 RequestPriority priority, 525 RequestPriority priority,
526 ClientSocketHandle* handle, 526 ClientSocketHandle* handle,
527 CompletionCallback* callback, 527 CompletionCallback* callback,
528 const BoundNetLog& net_log) { 528 const BoundNetLog& net_log) {
529 scoped_ptr<Request> request( 529 Request* request = new Request(handle, callback, priority, params, net_log);
530 new Request(handle, callback, priority, params, net_log)); 530 return helper_->RequestSocket(group_name, request);
531 int rv = helper_->RequestSocket(group_name, request.get());
532 if (rv == ERR_IO_PENDING)
533 request.release();
534 return rv;
535 } 531 }
536 532
537 void CancelRequest(const std::string& group_name, 533 void CancelRequest(const std::string& group_name,
538 const ClientSocketHandle* handle) { 534 const ClientSocketHandle* handle) {
539 return helper_->CancelRequest(group_name, handle); 535 return helper_->CancelRequest(group_name, handle);
540 } 536 }
541 537
542 void ReleaseSocket(const std::string& group_name, ClientSocket* socket) { 538 void ReleaseSocket(const std::string& group_name, ClientSocket* socket) {
543 return helper_->ReleaseSocket(group_name, socket); 539 return helper_->ReleaseSocket(group_name, socket);
544 } 540 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
624 // the posting of the task and the execution, then we'll hit the DCHECK that 620 // the posting of the task and the execution, then we'll hit the DCHECK that
625 // |ClientSocketPoolBaseHelper::group_map_| is empty. 621 // |ClientSocketPoolBaseHelper::group_map_| is empty.
626 scoped_refptr<internal::ClientSocketPoolBaseHelper> helper_; 622 scoped_refptr<internal::ClientSocketPoolBaseHelper> helper_;
627 623
628 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolBase); 624 DISALLOW_COPY_AND_ASSIGN(ClientSocketPoolBase);
629 }; 625 };
630 626
631 } // namespace net 627 } // namespace net
632 628
633 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_BASE_H_ 629 #endif // NET_SOCKET_CLIENT_SOCKET_POOL_BASE_H_
OLDNEW
« no previous file with comments | « net/disk_cache/file_posix.cc ('k') | net/socket/client_socket_pool_base.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698