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

Side by Side Diff: net/quic/quic_client_session.h

Issue 667923003: Standardize usage of virtual/override/final in net/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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/quic/quic_alarm_test.cc ('k') | net/quic/quic_client_session_base.h » ('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) 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 // A client specific QuicSession subclass. This class owns the underlying 5 // A client specific QuicSession subclass. This class owns the underlying
6 // QuicConnection and QuicConnectionHelper objects. The connection stores 6 // QuicConnection and QuicConnectionHelper objects. The connection stores
7 // a non-owning pointer to the helper so this session needs to ensure that 7 // a non-owning pointer to the helper so this session needs to ensure that
8 // the helper outlives the connection. 8 // the helper outlives the connection.
9 9
10 #ifndef NET_QUIC_QUIC_CLIENT_SESSION_H_ 10 #ifndef NET_QUIC_QUIC_CLIENT_SESSION_H_
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 // |stream_factory|, which must outlive this session. 91 // |stream_factory|, which must outlive this session.
92 // TODO(rch): decouple the factory from the session via a Delegate interface. 92 // TODO(rch): decouple the factory from the session via a Delegate interface.
93 QuicClientSession(QuicConnection* connection, 93 QuicClientSession(QuicConnection* connection,
94 scoped_ptr<DatagramClientSocket> socket, 94 scoped_ptr<DatagramClientSocket> socket,
95 QuicStreamFactory* stream_factory, 95 QuicStreamFactory* stream_factory,
96 TransportSecurityState* transport_security_state, 96 TransportSecurityState* transport_security_state,
97 scoped_ptr<QuicServerInfo> server_info, 97 scoped_ptr<QuicServerInfo> server_info,
98 const QuicConfig& config, 98 const QuicConfig& config,
99 base::TaskRunner* task_runner, 99 base::TaskRunner* task_runner,
100 NetLog* net_log); 100 NetLog* net_log);
101 virtual ~QuicClientSession(); 101 ~QuicClientSession() override;
102 102
103 // Initialize session's connection to |server_id|. 103 // Initialize session's connection to |server_id|.
104 void InitializeSession( 104 void InitializeSession(
105 const QuicServerId& server_id, 105 const QuicServerId& server_id,
106 QuicCryptoClientConfig* config, 106 QuicCryptoClientConfig* config,
107 QuicCryptoClientStreamFactory* crypto_client_stream_factory); 107 QuicCryptoClientStreamFactory* crypto_client_stream_factory);
108 108
109 void AddObserver(Observer* observer); 109 void AddObserver(Observer* observer);
110 void RemoveObserver(Observer* observer); 110 void RemoveObserver(Observer* observer);
111 111
112 // Attempts to create a new stream. If the stream can be 112 // Attempts to create a new stream. If the stream can be
113 // created immediately, returns OK. If the open stream limit 113 // created immediately, returns OK. If the open stream limit
114 // has been reached, returns ERR_IO_PENDING, and |request| 114 // has been reached, returns ERR_IO_PENDING, and |request|
115 // will be added to the stream requets queue and will 115 // will be added to the stream requets queue and will
116 // be completed asynchronously. 116 // be completed asynchronously.
117 // TODO(rch): remove |stream| from this and use setter on |request| 117 // TODO(rch): remove |stream| from this and use setter on |request|
118 // and fix in spdy too. 118 // and fix in spdy too.
119 int TryCreateStream(StreamRequest* request, 119 int TryCreateStream(StreamRequest* request,
120 QuicReliableClientStream** stream); 120 QuicReliableClientStream** stream);
121 121
122 // Cancels the pending stream creation request. 122 // Cancels the pending stream creation request.
123 void CancelRequest(StreamRequest* request); 123 void CancelRequest(StreamRequest* request);
124 124
125 // QuicSession methods: 125 // QuicSession methods:
126 virtual void OnStreamFrames( 126 void OnStreamFrames(const std::vector<QuicStreamFrame>& frames) override;
127 const std::vector<QuicStreamFrame>& frames) override; 127 QuicReliableClientStream* CreateOutgoingDataStream() override;
128 virtual QuicReliableClientStream* CreateOutgoingDataStream() override; 128 QuicCryptoClientStream* GetCryptoStream() override;
129 virtual QuicCryptoClientStream* GetCryptoStream() override; 129 void CloseStream(QuicStreamId stream_id) override;
130 virtual void CloseStream(QuicStreamId stream_id) override; 130 void SendRstStream(QuicStreamId id,
131 virtual void SendRstStream(QuicStreamId id, 131 QuicRstStreamErrorCode error,
132 QuicRstStreamErrorCode error, 132 QuicStreamOffset bytes_written) override;
133 QuicStreamOffset bytes_written) override; 133 void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) override;
134 virtual void OnCryptoHandshakeEvent(CryptoHandshakeEvent event) override; 134 void OnCryptoHandshakeMessageSent(
135 virtual void OnCryptoHandshakeMessageSent(
136 const CryptoHandshakeMessage& message) override; 135 const CryptoHandshakeMessage& message) override;
137 virtual void OnCryptoHandshakeMessageReceived( 136 void OnCryptoHandshakeMessageReceived(
138 const CryptoHandshakeMessage& message) override; 137 const CryptoHandshakeMessage& message) override;
139 virtual bool GetSSLInfo(SSLInfo* ssl_info) const override; 138 bool GetSSLInfo(SSLInfo* ssl_info) const override;
140 139
141 // QuicClientSessionBase methods: 140 // QuicClientSessionBase methods:
142 virtual void OnProofValid( 141 void OnProofValid(const QuicCryptoClientConfig::CachedState& cached) override;
143 const QuicCryptoClientConfig::CachedState& cached) override; 142 void OnProofVerifyDetailsAvailable(
144 virtual void OnProofVerifyDetailsAvailable(
145 const ProofVerifyDetails& verify_details) override; 143 const ProofVerifyDetails& verify_details) override;
146 144
147 // QuicConnectionVisitorInterface methods: 145 // QuicConnectionVisitorInterface methods:
148 virtual void OnConnectionClosed(QuicErrorCode error, bool from_peer) override; 146 void OnConnectionClosed(QuicErrorCode error, bool from_peer) override;
149 virtual void OnSuccessfulVersionNegotiation( 147 void OnSuccessfulVersionNegotiation(const QuicVersion& version) override;
150 const QuicVersion& version) override;
151 148
152 // Performs a crypto handshake with the server. 149 // Performs a crypto handshake with the server.
153 int CryptoConnect(bool require_confirmation, 150 int CryptoConnect(bool require_confirmation,
154 const CompletionCallback& callback); 151 const CompletionCallback& callback);
155 152
156 // Resumes a crypto handshake with the server after a timeout. 153 // Resumes a crypto handshake with the server after a timeout.
157 int ResumeCryptoConnect(const CompletionCallback& callback); 154 int ResumeCryptoConnect(const CompletionCallback& callback);
158 155
159 // Causes the QuicConnectionHelper to start reading from the socket 156 // Causes the QuicConnectionHelper to start reading from the socket
160 // and passing the data along to the QuicConnection. 157 // and passing the data along to the QuicConnection.
(...skipping 14 matching lines...) Expand all
175 // than the number of round-trips needed for the handshake. 172 // than the number of round-trips needed for the handshake.
176 int GetNumSentClientHellos() const; 173 int GetNumSentClientHellos() const;
177 174
178 // Returns true if |hostname| may be pooled onto this session. If this 175 // Returns true if |hostname| may be pooled onto this session. If this
179 // is a secure QUIC session, then |hostname| must match the certificate 176 // is a secure QUIC session, then |hostname| must match the certificate
180 // presented during the handshake. 177 // presented during the handshake.
181 bool CanPool(const std::string& hostname) const; 178 bool CanPool(const std::string& hostname) const;
182 179
183 protected: 180 protected:
184 // QuicSession methods: 181 // QuicSession methods:
185 virtual QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override; 182 QuicDataStream* CreateIncomingDataStream(QuicStreamId id) override;
186 183
187 private: 184 private:
188 friend class test::QuicClientSessionPeer; 185 friend class test::QuicClientSessionPeer;
189 186
190 typedef std::set<Observer*> ObserverSet; 187 typedef std::set<Observer*> ObserverSet;
191 typedef std::list<StreamRequest*> StreamRequestQueue; 188 typedef std::list<StreamRequest*> StreamRequestQueue;
192 189
193 QuicReliableClientStream* CreateOutgoingReliableStreamImpl(); 190 QuicReliableClientStream* CreateOutgoingReliableStreamImpl();
194 // A completion callback invoked when a read completes. 191 // A completion callback invoked when a read completes.
195 void OnReadComplete(int result); 192 void OnReadComplete(int result);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 // on this session. Existing stream will continue to be processed. 244 // on this session. Existing stream will continue to be processed.
248 bool going_away_; 245 bool going_away_;
249 base::WeakPtrFactory<QuicClientSession> weak_factory_; 246 base::WeakPtrFactory<QuicClientSession> weak_factory_;
250 247
251 DISALLOW_COPY_AND_ASSIGN(QuicClientSession); 248 DISALLOW_COPY_AND_ASSIGN(QuicClientSession);
252 }; 249 };
253 250
254 } // namespace net 251 } // namespace net
255 252
256 #endif // NET_QUIC_QUIC_CLIENT_SESSION_H_ 253 #endif // NET_QUIC_QUIC_CLIENT_SESSION_H_
OLDNEW
« no previous file with comments | « net/quic/quic_alarm_test.cc ('k') | net/quic/quic_client_session_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698