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

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

Issue 15701009: [SPDY] Add a SpdyStreamType enum and use it for SpdyStream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CHECK -> DCHECK Created 7 years, 7 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 #include "net/spdy/spdy_session.h" 5 #include "net/spdy/spdy_session.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <map> 8 #include <map>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 231
232 SpdyStreamRequest::SpdyStreamRequest() { 232 SpdyStreamRequest::SpdyStreamRequest() {
233 Reset(); 233 Reset();
234 } 234 }
235 235
236 SpdyStreamRequest::~SpdyStreamRequest() { 236 SpdyStreamRequest::~SpdyStreamRequest() {
237 CancelRequest(); 237 CancelRequest();
238 } 238 }
239 239
240 int SpdyStreamRequest::StartRequest( 240 int SpdyStreamRequest::StartRequest(
241 SpdyStreamType type,
241 const scoped_refptr<SpdySession>& session, 242 const scoped_refptr<SpdySession>& session,
242 const GURL& url, 243 const GURL& url,
243 RequestPriority priority, 244 RequestPriority priority,
244 const BoundNetLog& net_log, 245 const BoundNetLog& net_log,
245 const CompletionCallback& callback) { 246 const CompletionCallback& callback) {
246 DCHECK(session); 247 DCHECK(session);
247 DCHECK(!session_); 248 DCHECK(!session_);
248 DCHECK(!stream_); 249 DCHECK(!stream_);
249 DCHECK(callback_.is_null()); 250 DCHECK(callback_.is_null());
250 251
252 type_ = type;
251 session_ = session; 253 session_ = session;
252 url_ = url; 254 url_ = url;
253 priority_ = priority; 255 priority_ = priority;
254 net_log_ = net_log; 256 net_log_ = net_log;
255 callback_ = callback; 257 callback_ = callback;
256 258
257 base::WeakPtr<SpdyStream> stream; 259 base::WeakPtr<SpdyStream> stream;
258 int rv = session->TryCreateStream(this, &stream); 260 int rv = session->TryCreateStream(this, &stream);
259 if (rv == OK) { 261 if (rv == OK) {
260 Reset(); 262 Reset();
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 DCHECK(session_); 295 DCHECK(session_);
294 DCHECK(!stream_); 296 DCHECK(!stream_);
295 DCHECK(!callback_.is_null()); 297 DCHECK(!callback_.is_null());
296 CompletionCallback callback = callback_; 298 CompletionCallback callback = callback_;
297 Reset(); 299 Reset();
298 DCHECK_NE(rv, OK); 300 DCHECK_NE(rv, OK);
299 callback.Run(rv); 301 callback.Run(rv);
300 } 302 }
301 303
302 void SpdyStreamRequest::Reset() { 304 void SpdyStreamRequest::Reset() {
305 type_ = SPDY_BIDIRECTIONAL_STREAM;
303 session_ = NULL; 306 session_ = NULL;
304 stream_.reset(); 307 stream_.reset();
305 url_ = GURL(); 308 url_ = GURL();
306 priority_ = MINIMUM_PRIORITY; 309 priority_ = MINIMUM_PRIORITY;
307 net_log_ = BoundNetLog(); 310 net_log_ = BoundNetLog();
308 callback_.Reset(); 311 callback_.Reset();
309 } 312 }
310 313
311 SpdySession::SpdySession(const SpdySessionKey& spdy_session_key, 314 SpdySession::SpdySession(const SpdySessionKey& spdy_session_key,
312 SpdySessionPool* spdy_session_pool, 315 SpdySessionPool* spdy_session_pool,
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
577 CloseSessionOnError( 580 CloseSessionOnError(
578 ERR_CONNECTION_CLOSED, 581 ERR_CONNECTION_CLOSED,
579 true, 582 true,
580 "Tried to create SPDY stream for a closed socket connection."); 583 "Tried to create SPDY stream for a closed socket connection.");
581 return ERR_CONNECTION_CLOSED; 584 return ERR_CONNECTION_CLOSED;
582 } 585 }
583 } 586 }
584 587
585 const std::string& path = request.url().PathForRequest(); 588 const std::string& path = request.url().PathForRequest();
586 scoped_ptr<SpdyStream> new_stream( 589 scoped_ptr<SpdyStream> new_stream(
587 new SpdyStream(this, path, request.priority(), 590 new SpdyStream(request.type(), this, path, request.priority(),
588 stream_initial_send_window_size_, 591 stream_initial_send_window_size_,
589 stream_initial_recv_window_size_, 592 stream_initial_recv_window_size_,
590 false, request.net_log())); 593 request.net_log()));
591 *stream = new_stream->GetWeakPtr(); 594 *stream = new_stream->GetWeakPtr();
592 InsertCreatedStream(new_stream.Pass()); 595 InsertCreatedStream(new_stream.Pass());
593 596
594 UMA_HISTOGRAM_CUSTOM_COUNTS( 597 UMA_HISTOGRAM_CUSTOM_COUNTS(
595 "Net.SpdyPriorityCount", 598 "Net.SpdyPriorityCount",
596 static_cast<int>(request.priority()), 0, 10, 11); 599 static_cast<int>(request.priority()), 0, 10, 11);
597 600
598 return OK; 601 return OK;
599 } 602 }
600 603
(...skipping 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after
1690 } 1693 }
1691 1694
1692 // There should not be an existing pushed stream with the same path. 1695 // There should not be an existing pushed stream with the same path.
1693 if (unclaimed_pushed_streams_.find(url) != unclaimed_pushed_streams_.end()) { 1696 if (unclaimed_pushed_streams_.find(url) != unclaimed_pushed_streams_.end()) {
1694 ResetStream(stream_id, request_priority, RST_STREAM_PROTOCOL_ERROR, 1697 ResetStream(stream_id, request_priority, RST_STREAM_PROTOCOL_ERROR,
1695 "Received duplicate pushed stream with url: " + url); 1698 "Received duplicate pushed stream with url: " + url);
1696 return; 1699 return;
1697 } 1700 }
1698 1701
1699 scoped_ptr<SpdyStream> stream( 1702 scoped_ptr<SpdyStream> stream(
1700 new SpdyStream(this, gurl.PathForRequest(), request_priority, 1703 new SpdyStream(SPDY_PUSH_STREAM, this, gurl.PathForRequest(),
1704 request_priority,
1701 stream_initial_send_window_size_, 1705 stream_initial_send_window_size_,
1702 stream_initial_recv_window_size_, 1706 stream_initial_recv_window_size_,
1703 true, net_log_)); 1707 net_log_));
1704 stream->set_stream_id(stream_id); 1708 stream->set_stream_id(stream_id);
1705 1709
1706 DeleteExpiredPushedStreams(); 1710 DeleteExpiredPushedStreams();
1707 unclaimed_pushed_streams_[url] = 1711 unclaimed_pushed_streams_[url] =
1708 std::pair<SpdyStream*, base::TimeTicks>(stream.get(), time_func_()); 1712 std::pair<SpdyStream*, base::TimeTicks>(stream.get(), time_func_());
1709 1713
1710 stream->set_response_received(); 1714 stream->set_response_received();
1711 InsertActivatedStream(stream.Pass()); 1715 InsertActivatedStream(stream.Pass());
1712 1716
1713 ActiveStreamMap::iterator it = active_streams_.find(stream_id); 1717 ActiveStreamMap::iterator it = active_streams_.find(stream_id);
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after
2450 if (!queue->empty()) { 2454 if (!queue->empty()) {
2451 SpdyStreamId stream_id = queue->front(); 2455 SpdyStreamId stream_id = queue->front();
2452 queue->pop_front(); 2456 queue->pop_front();
2453 return stream_id; 2457 return stream_id;
2454 } 2458 }
2455 } 2459 }
2456 return 0; 2460 return 0;
2457 } 2461 }
2458 2462
2459 } // namespace net 2463 } // namespace net
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698