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

Side by Side Diff: net/spdy/spdy_session.h

Issue 2852029: Revert "Streams send a Rst frame upon being closed by client. Some minor editorial fixes." (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: Created 10 years, 5 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/spdy/spdy_protocol.h ('k') | net/spdy/spdy_session.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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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_SPDY_SPDY_SESSION_H_ 5 #ifndef NET_SPDY_SPDY_SESSION_H_
6 #define NET_SPDY_SPDY_SESSION_H_ 6 #define NET_SPDY_SPDY_SESSION_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <list> 9 #include <list>
10 #include <map> 10 #include <map>
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 spdy::SpdyStreamId stream_id, 84 spdy::SpdyStreamId stream_id,
85 RequestPriority priority, 85 RequestPriority priority,
86 spdy::SpdyControlFlags flags, 86 spdy::SpdyControlFlags flags,
87 const linked_ptr<spdy::SpdyHeaderBlock>& headers); 87 const linked_ptr<spdy::SpdyHeaderBlock>& headers);
88 88
89 // Write a data frame to the stream. 89 // Write a data frame to the stream.
90 // Used to create and queue a data frame for the given stream. 90 // Used to create and queue a data frame for the given stream.
91 int WriteStreamData(spdy::SpdyStreamId stream_id, net::IOBuffer* data, 91 int WriteStreamData(spdy::SpdyStreamId stream_id, net::IOBuffer* data,
92 int len); 92 int len);
93 93
94 // This marks the stream as half closed from the client side, and removes it 94 // Close a stream.
95 // from the active_streams_ map. 95 void CloseStream(spdy::SpdyStreamId stream_id, int status);
96 void CloseStream(spdy::SpdyStreamId id, int status);
97 // This is identical to CloseStream, except it also sends a Rst stream frame.
98 void CloseStreamAndSendRst(spdy::SpdyStreamId stream_id, int status);
99
100 // Half close a stream.
101 void HalfCloseStreamClientSide(spdy::SpdyStreamId stream_id, int status);
102 void HalfCloseStreamServerSide(spdy::SpdyStreamId stream_id, int status);
103
104 96
105 // Check if a stream is active. 97 // Check if a stream is active.
106 bool IsStreamActive(spdy::SpdyStreamId stream_id) const; 98 bool IsStreamActive(spdy::SpdyStreamId stream_id) const;
107 99
108 // The LoadState is used for informing the user of the current network 100 // The LoadState is used for informing the user of the current network
109 // status, such as "resolving host", "connecting", etc. 101 // status, such as "resolving host", "connecting", etc.
110 LoadState GetLoadState() const; 102 LoadState GetLoadState() const;
111 103
112 // Closes all streams. Used as part of shutdown. 104 // Closes all streams. Used as part of shutdown.
113 void CloseAllStreams(net::Error status); 105 void CloseAllStreams(net::Error status);
(...skipping 29 matching lines...) Expand all
143 virtual void OnStreamFrameData(spdy::SpdyStreamId stream_id, 135 virtual void OnStreamFrameData(spdy::SpdyStreamId stream_id,
144 const char* data, 136 const char* data,
145 size_t len); 137 size_t len);
146 virtual void OnControl(const spdy::SpdyControlFrame* frame); 138 virtual void OnControl(const spdy::SpdyControlFrame* frame);
147 139
148 // Control frame handlers. 140 // Control frame handlers.
149 void OnSyn(const spdy::SpdySynStreamControlFrame& frame, 141 void OnSyn(const spdy::SpdySynStreamControlFrame& frame,
150 const linked_ptr<spdy::SpdyHeaderBlock>& headers); 142 const linked_ptr<spdy::SpdyHeaderBlock>& headers);
151 void OnSynReply(const spdy::SpdySynReplyControlFrame& frame, 143 void OnSynReply(const spdy::SpdySynReplyControlFrame& frame,
152 const linked_ptr<spdy::SpdyHeaderBlock>& headers); 144 const linked_ptr<spdy::SpdyHeaderBlock>& headers);
153 void OnRst(const spdy::SpdyRstStreamControlFrame& frame); 145 void OnFin(const spdy::SpdyRstStreamControlFrame& frame);
154 void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame); 146 void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame);
155 void OnSettings(const spdy::SpdySettingsControlFrame& frame); 147 void OnSettings(const spdy::SpdySettingsControlFrame& frame);
156 148
157 // IO Callbacks 149 // IO Callbacks
158 void OnTCPConnect(int result); 150 void OnTCPConnect(int result);
159 void OnSSLConnect(int result); 151 void OnSSLConnect(int result);
160 void OnReadComplete(int result); 152 void OnReadComplete(int result);
161 void OnWriteComplete(int result); 153 void OnWriteComplete(int result);
162 154
163 // Send relevant SETTINGS. This is generally called on connection setup. 155 // Send relevant SETTINGS. This is generally called on connection setup.
(...skipping 18 matching lines...) Expand all
182 SpdyStream* stream); 174 SpdyStream* stream);
183 175
184 // Closes this session. This will close all active streams and mark 176 // Closes this session. This will close all active streams and mark
185 // the session as permanently closed. 177 // the session as permanently closed.
186 // |err| should not be OK; this function is intended to be called on 178 // |err| should not be OK; this function is intended to be called on
187 // error. 179 // error.
188 void CloseSessionOnError(net::Error err); 180 void CloseSessionOnError(net::Error err);
189 181
190 // Track active streams in the active stream list. 182 // Track active streams in the active stream list.
191 void ActivateStream(SpdyStream* stream); 183 void ActivateStream(SpdyStream* stream);
184 void DeleteStream(spdy::SpdyStreamId id, int status);
192 185
193 // Removes this session from the session pool. 186 // Removes this session from the session pool.
194 void RemoveFromPool(); 187 void RemoveFromPool();
195 188
196 // Check if we have a pending pushed-stream for this url 189 // Check if we have a pending pushed-stream for this url
197 // Returns the stream if found (and returns it from the pending 190 // Returns the stream if found (and returns it from the pending
198 // list), returns NULL otherwise. 191 // list), returns NULL otherwise.
199 scoped_refptr<SpdyStream> GetActivePushStream(const std::string& url); 192 scoped_refptr<SpdyStream> GetActivePushStream(const std::string& url);
200 193
201 // Calls OnResponseReceived(). 194 // Calls OnResponseReceived().
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 // If an error has occurred on the session, the session is effectively 263 // If an error has occurred on the session, the session is effectively
271 // dead. Record this error here. When no error has occurred, |error_| will 264 // dead. Record this error here. When no error has occurred, |error_| will
272 // be OK. 265 // be OK.
273 net::Error error_; 266 net::Error error_;
274 State state_; 267 State state_;
275 268
276 // Some statistics counters for the session. 269 // Some statistics counters for the session.
277 int streams_initiated_count_; 270 int streams_initiated_count_;
278 int streams_pushed_count_; 271 int streams_pushed_count_;
279 int streams_pushed_and_claimed_count_; 272 int streams_pushed_and_claimed_count_;
280 int streams_abandoned_count_; // # of streams that were pushed & abandoned. 273 int streams_abandoned_count_;
281 bool sent_settings_; // Did this session send settings when it started. 274 bool sent_settings_; // Did this session send settings when it started.
282 bool received_settings_; // Did this session receive at least one settings 275 bool received_settings_; // Did this session receive at least one settings
283 // frame. 276 // frame.
284 277
285 bool in_session_pool_; // True if the session is currently in the pool. 278 bool in_session_pool_; // True if the session is currently in the pool.
286 279
287 BoundNetLog net_log_; 280 BoundNetLog net_log_;
288 281
289 static bool use_ssl_; 282 static bool use_ssl_;
290 }; 283 };
291 284
292 } // namespace net 285 } // namespace net
293 286
294 #endif // NET_SPDY_SPDY_SESSION_H_ 287 #endif // NET_SPDY_SPDY_SESSION_H_
OLDNEW
« no previous file with comments | « net/spdy/spdy_protocol.h ('k') | net/spdy/spdy_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698