OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ | 5 #ifndef GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ |
6 #define GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ | 6 #define GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ |
7 | 7 |
8 #include "google_apis/gcm/engine/connection_factory.h" | 8 #include "google_apis/gcm/engine/connection_factory.h" |
9 | 9 |
10 #include "base/memory/weak_ptr.h" | 10 #include "base/memory/weak_ptr.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 class GCMStatsRecorder; | 29 class GCMStatsRecorder; |
30 | 30 |
31 class GCM_EXPORT ConnectionFactoryImpl : | 31 class GCM_EXPORT ConnectionFactoryImpl : |
32 public ConnectionFactory, | 32 public ConnectionFactory, |
33 public net::NetworkChangeNotifier::NetworkChangeObserver { | 33 public net::NetworkChangeNotifier::NetworkChangeObserver { |
34 public: | 34 public: |
35 // |http_network_session| is an optional network session to use as a source | 35 // |http_network_session| is an optional network session to use as a source |
36 // for proxy auth credentials (via its HttpAuthCache). |gcm_network_session| | 36 // for proxy auth credentials (via its HttpAuthCache). |gcm_network_session| |
37 // is the network session through which GCM connections should be made, and | 37 // is the network session through which GCM connections should be made, and |
38 // must not be the same as |http_network_session|. | 38 // must not be the same as |http_network_session|. |
39 // | |
40 // The caller is responsible for making sure the ConnectionFactoryImpl is | |
41 // destroyed before the |gcm_network_session| and |http_network_session|. | |
42 ConnectionFactoryImpl( | 39 ConnectionFactoryImpl( |
43 const std::vector<GURL>& mcs_endpoints, | 40 const std::vector<GURL>& mcs_endpoints, |
44 const net::BackoffEntry::Policy& backoff_policy, | 41 const net::BackoffEntry::Policy& backoff_policy, |
45 net::HttpNetworkSession* gcm_network_session, | 42 const scoped_refptr<net::HttpNetworkSession>& gcm_network_session, |
46 net::HttpNetworkSession* http_network_session, | 43 const scoped_refptr<net::HttpNetworkSession>& http_network_session, |
47 net::NetLog* net_log, | 44 net::NetLog* net_log, |
48 GCMStatsRecorder* recorder); | 45 GCMStatsRecorder* recorder); |
49 ~ConnectionFactoryImpl() override; | 46 ~ConnectionFactoryImpl() override; |
50 | 47 |
51 // ConnectionFactory implementation. | 48 // ConnectionFactory implementation. |
52 void Initialize( | 49 void Initialize( |
53 const BuildLoginRequestCallback& request_builder, | 50 const BuildLoginRequestCallback& request_builder, |
54 const ConnectionHandler::ProtoReceivedCallback& read_callback, | 51 const ConnectionHandler::ProtoReceivedCallback& read_callback, |
55 const ConnectionHandler::ProtoSentCallback& write_callback) override; | 52 const ConnectionHandler::ProtoSentCallback& write_callback) override; |
56 ConnectionHandler* GetConnectionHandler() const override; | 53 ConnectionHandler* GetConnectionHandler() const override; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 // Index to the endpoint for which a connection should be attempted next. | 128 // Index to the endpoint for which a connection should be attempted next. |
132 size_t next_endpoint_; | 129 size_t next_endpoint_; |
133 // Index to the endpoint that was last successfully connected. | 130 // Index to the endpoint that was last successfully connected. |
134 size_t last_successful_endpoint_; | 131 size_t last_successful_endpoint_; |
135 | 132 |
136 // The backoff policy to use. | 133 // The backoff policy to use. |
137 const net::BackoffEntry::Policy backoff_policy_; | 134 const net::BackoffEntry::Policy backoff_policy_; |
138 | 135 |
139 // ---- net:: components for establishing connections. ---- | 136 // ---- net:: components for establishing connections. ---- |
140 // Network session for creating new GCM connections. | 137 // Network session for creating new GCM connections. |
141 net::HttpNetworkSession* gcm_network_session_; | 138 const scoped_refptr<net::HttpNetworkSession> gcm_network_session_; |
142 // HTTP Network session. If set, is used for extracting proxy auth | 139 // HTTP Network session. If set, is used for extracting proxy auth |
143 // credentials. If nullptr, is ignored. | 140 // credentials. If not set, is ignored. |
144 net::HttpNetworkSession* http_network_session_; | 141 const scoped_refptr<net::HttpNetworkSession> http_network_session_; |
145 // Net log to use in connection attempts. | 142 // Net log to use in connection attempts. |
146 net::BoundNetLog bound_net_log_; | 143 net::BoundNetLog bound_net_log_; |
147 // The current PAC request, if one exists. Owned by the proxy service. | 144 // The current PAC request, if one exists. Owned by the proxy service. |
148 net::ProxyService::PacRequest* pac_request_; | 145 net::ProxyService::PacRequest* pac_request_; |
149 // The current proxy info. | 146 // The current proxy info. |
150 net::ProxyInfo proxy_info_; | 147 net::ProxyInfo proxy_info_; |
151 // The handle to the socket for the current connection, if one exists. | 148 // The handle to the socket for the current connection, if one exists. |
152 net::ClientSocketHandle socket_handle_; | 149 net::ClientSocketHandle socket_handle_; |
153 // Current backoff entry. | 150 // Current backoff entry. |
154 scoped_ptr<net::BackoffEntry> backoff_entry_; | 151 scoped_ptr<net::BackoffEntry> backoff_entry_; |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 ConnectionListener* listener_; | 193 ConnectionListener* listener_; |
197 | 194 |
198 base::WeakPtrFactory<ConnectionFactoryImpl> weak_ptr_factory_; | 195 base::WeakPtrFactory<ConnectionFactoryImpl> weak_ptr_factory_; |
199 | 196 |
200 DISALLOW_COPY_AND_ASSIGN(ConnectionFactoryImpl); | 197 DISALLOW_COPY_AND_ASSIGN(ConnectionFactoryImpl); |
201 }; | 198 }; |
202 | 199 |
203 } // namespace gcm | 200 } // namespace gcm |
204 | 201 |
205 #endif // GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ | 202 #endif // GOOGLE_APIS_GCM_ENGINE_CONNECTION_FACTORY_IMPL_H_ |
OLD | NEW |