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

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

Issue 2328453002: Refactor WebSocketTransportClientSocketPool's socket handing out code (Closed)
Patch Set: Fixed ASAN failure 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 5 #ifndef NET_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
6 #define NET_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 6 #define NET_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 const CompletionCallback& callback, 202 const CompletionCallback& callback,
203 const BoundNetLog& net_log); 203 const BoundNetLog& net_log);
204 StalledRequest(const StalledRequest& other); 204 StalledRequest(const StalledRequest& other);
205 ~StalledRequest(); 205 ~StalledRequest();
206 const scoped_refptr<TransportSocketParams> params; 206 const scoped_refptr<TransportSocketParams> params;
207 const RequestPriority priority; 207 const RequestPriority priority;
208 ClientSocketHandle* const handle; 208 ClientSocketHandle* const handle;
209 const CompletionCallback callback; 209 const CompletionCallback callback;
210 const BoundNetLog net_log; 210 const BoundNetLog net_log;
211 }; 211 };
212
212 friend class ConnectJobDelegate; 213 friend class ConnectJobDelegate;
214
213 typedef std::map<const ClientSocketHandle*, WebSocketTransportConnectJob*> 215 typedef std::map<const ClientSocketHandle*, WebSocketTransportConnectJob*>
214 PendingConnectsMap; 216 PendingConnectsMap;
215 // This is a list so that we can remove requests from the middle, and also 217 // This is a list so that we can remove requests from the middle, and also
216 // so that iterators are not invalidated unless the corresponding request is 218 // so that iterators are not invalidated unless the corresponding request is
217 // removed. 219 // removed.
218 typedef std::list<StalledRequest> StalledRequestQueue; 220 typedef std::list<StalledRequest> StalledRequestQueue;
219 typedef std::map<const ClientSocketHandle*, StalledRequestQueue::iterator> 221 typedef std::map<const ClientSocketHandle*, StalledRequestQueue::iterator>
220 StalledRequestMap; 222 StalledRequestMap;
221 223
224 // Tries to hand out the socket connected by |job|. |result| must be (async)
225 // result of WebSocketTransportConnectJob::Connect(). Returns true iff it has
226 // handed out a socket.
227 bool TryHandOutSocket(int result, WebSocketTransportConnectJob* job);
222 void OnConnectJobComplete(int result, WebSocketTransportConnectJob* job); 228 void OnConnectJobComplete(int result, WebSocketTransportConnectJob* job);
223 void InvokeUserCallbackLater(ClientSocketHandle* handle, 229 void InvokeUserCallbackLater(ClientSocketHandle* handle,
224 const CompletionCallback& callback, 230 const CompletionCallback& callback,
225 int rv); 231 int rv);
226 void InvokeUserCallback(ClientSocketHandle* handle, 232 void InvokeUserCallback(ClientSocketHandle* handle,
227 const CompletionCallback& callback, 233 const CompletionCallback& callback,
228 int rv); 234 int rv);
229 bool ReachedMaxSocketsLimit() const; 235 bool ReachedMaxSocketsLimit() const;
230 void HandOutSocket(std::unique_ptr<StreamSocket> socket, 236 void HandOutSocket(std::unique_ptr<StreamSocket> socket,
231 const LoadTimingInfo::ConnectTiming& connect_timing, 237 const LoadTimingInfo::ConnectTiming& connect_timing,
(...skipping 20 matching lines...) Expand all
252 bool flushing_; 258 bool flushing_;
253 259
254 base::WeakPtrFactory<WebSocketTransportClientSocketPool> weak_factory_; 260 base::WeakPtrFactory<WebSocketTransportClientSocketPool> weak_factory_;
255 261
256 DISALLOW_COPY_AND_ASSIGN(WebSocketTransportClientSocketPool); 262 DISALLOW_COPY_AND_ASSIGN(WebSocketTransportClientSocketPool);
257 }; 263 };
258 264
259 } // namespace net 265 } // namespace net
260 266
261 #endif // NET_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_ 267 #endif // NET_SOCKET_WEBSOCKET_TRANSPORT_CLIENT_SOCKET_POOL_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698