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

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

Issue 16256017: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix for Android DEBUG builds with DEATH_TEST Created 7 years, 6 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 | Annotate | Revision Log
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 QuicSession, which demuxes a single connection to individual streams. 5 // A QuicSession, which demuxes a single connection to individual streams.
6 6
7 #ifndef NET_QUIC_QUIC_SESSION_H_ 7 #ifndef NET_QUIC_QUIC_SESSION_H_
8 #define NET_QUIC_QUIC_SESSION_H_ 8 #define NET_QUIC_QUIC_SESSION_H_
9 9
10 #include <vector> 10 #include <vector>
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 // Returns mutable config for this session. Returned config is owned 107 // Returns mutable config for this session. Returned config is owned
108 // by QuicSession. 108 // by QuicSession.
109 QuicConfig* config(); 109 QuicConfig* config();
110 110
111 // Returns true if the stream existed previously and has been closed. 111 // Returns true if the stream existed previously and has been closed.
112 // Returns false if the stream is still active or if the stream has 112 // Returns false if the stream is still active or if the stream has
113 // not yet been created. 113 // not yet been created.
114 bool IsClosedStream(QuicStreamId id); 114 bool IsClosedStream(QuicStreamId id);
115 115
116 QuicConnection* connection() { return connection_.get(); } 116 QuicConnection* connection() { return connection_.get(); }
117 const QuicConnection* connection() const { return connection_.get(); }
117 size_t num_active_requests() const { return stream_map_.size(); } 118 size_t num_active_requests() const { return stream_map_.size(); }
118 const IPEndPoint& peer_address() const { 119 const IPEndPoint& peer_address() const {
119 return connection_->peer_address(); 120 return connection_->peer_address();
120 } 121 }
121 QuicGuid guid() const { return connection_->guid(); } 122 QuicGuid guid() const { return connection_->guid(); }
122 123
123 QuicPacketCreator::Options* options() { return connection()->options(); } 124 QuicPacketCreator::Options* options() { return connection()->options(); }
124 125
125 // Returns the number of currently open streams, including those which have 126 // Returns the number of currently open streams, including those which have
126 // been implicitly created. 127 // been implicitly created.
(...skipping 10 matching lines...) Expand all
137 return goaway_received_; 138 return goaway_received_;
138 } 139 }
139 140
140 bool goaway_sent() const { 141 bool goaway_sent() const {
141 return goaway_sent_; 142 return goaway_sent_;
142 } 143 }
143 144
144 QuicSpdyDecompressor* decompressor() { return &decompressor_; } 145 QuicSpdyDecompressor* decompressor() { return &decompressor_; }
145 QuicSpdyCompressor* compressor() { return &compressor_; } 146 QuicSpdyCompressor* compressor() { return &compressor_; }
146 147
148 QuicErrorCode error() const { return error_; }
149
147 protected: 150 protected:
148 // Creates a new stream, owned by the caller, to handle a peer-initiated 151 // Creates a new stream, owned by the caller, to handle a peer-initiated
149 // stream. Returns NULL and does error handling if the stream can not be 152 // stream. Returns NULL and does error handling if the stream can not be
150 // created. 153 // created.
151 virtual ReliableQuicStream* CreateIncomingReliableStream(QuicStreamId id) = 0; 154 virtual ReliableQuicStream* CreateIncomingReliableStream(QuicStreamId id) = 0;
152 155
153 // Create a new stream, owned by the caller, to handle a locally-initiated 156 // Create a new stream, owned by the caller, to handle a locally-initiated
154 // stream. Returns NULL if max streams have already been opened. 157 // stream. Returns NULL if max streams have already been opened.
155 virtual ReliableQuicStream* CreateOutgoingReliableStream() = 0; 158 virtual ReliableQuicStream* CreateOutgoingReliableStream() = 0;
156 159
(...skipping 10 matching lines...) Expand all
167 170
168 // This is called after every call other than OnConnectionClose from the 171 // This is called after every call other than OnConnectionClose from the
169 // QuicConnectionVisitor to allow post-processing once the work has been done. 172 // QuicConnectionVisitor to allow post-processing once the work has been done.
170 // In this case, it deletes streams given that it's safe to do so (no other 173 // In this case, it deletes streams given that it's safe to do so (no other
171 // operations are being done on the streams at this time) 174 // operations are being done on the streams at this time)
172 virtual void PostProcessAfterData(); 175 virtual void PostProcessAfterData();
173 176
174 base::hash_map<QuicStreamId, ReliableQuicStream*>* streams() { 177 base::hash_map<QuicStreamId, ReliableQuicStream*>* streams() {
175 return &stream_map_; 178 return &stream_map_;
176 } 179 }
180
181 const base::hash_map<QuicStreamId, ReliableQuicStream*>* streams() const {
182 return &stream_map_;
183 }
184
177 std::vector<ReliableQuicStream*>* closed_streams() { 185 std::vector<ReliableQuicStream*>* closed_streams() {
178 return &closed_streams_; 186 return &closed_streams_;
179 } 187 }
180 188
181 size_t get_max_open_streams() const { 189 size_t get_max_open_streams() const {
182 return max_open_streams_; 190 return max_open_streams_;
183 } 191 }
184 192
185 void set_max_open_streams(size_t max_open_streams) { 193 void set_max_open_streams(size_t max_open_streams) {
186 max_open_streams_ = max_open_streams; 194 max_open_streams_ = max_open_streams;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 229
222 // A list of streams which need to write more data. 230 // A list of streams which need to write more data.
223 BlockedList<QuicStreamId> write_blocked_streams_; 231 BlockedList<QuicStreamId> write_blocked_streams_;
224 232
225 // A map of headers waiting to be compressed, and the streams 233 // A map of headers waiting to be compressed, and the streams
226 // they are associated with. 234 // they are associated with.
227 map<uint32, QuicStreamId> decompression_blocked_streams_; 235 map<uint32, QuicStreamId> decompression_blocked_streams_;
228 236
229 QuicStreamId largest_peer_created_stream_id_; 237 QuicStreamId largest_peer_created_stream_id_;
230 238
239 // The latched error with which the connection was closed.
240 QuicErrorCode error_;
241
231 // Whether a GoAway has been received. 242 // Whether a GoAway has been received.
232 bool goaway_received_; 243 bool goaway_received_;
233 // Whether a GoAway has been sent. 244 // Whether a GoAway has been sent.
234 bool goaway_sent_; 245 bool goaway_sent_;
235 246
236 DISALLOW_COPY_AND_ASSIGN(QuicSession); 247 DISALLOW_COPY_AND_ASSIGN(QuicSession);
237 }; 248 };
238 249
239 } // namespace net 250 } // namespace net
240 251
241 #endif // NET_QUIC_QUIC_SESSION_H_ 252 #endif // NET_QUIC_QUIC_SESSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698