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

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

Issue 10810069: SPDY: Add WriteHeaders interface to SpdySession and SpdyStream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 8 years, 4 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 <map> 7 #include <map>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
668 buffered_spdy_framer_->CreateCredentialFrame(credential)); 668 buffered_spdy_framer_->CreateCredentialFrame(credential));
669 669
670 if (net_log().IsLoggingAllEvents()) { 670 if (net_log().IsLoggingAllEvents()) {
671 net_log().AddEvent( 671 net_log().AddEvent(
672 NetLog::TYPE_SPDY_SESSION_SEND_CREDENTIAL, 672 NetLog::TYPE_SPDY_SESSION_SEND_CREDENTIAL,
673 base::Bind(&NetLogSpdyCredentialCallback, credential.slot, &origin)); 673 base::Bind(&NetLogSpdyCredentialCallback, credential.slot, &origin));
674 } 674 }
675 return credential_frame.release(); 675 return credential_frame.release();
676 } 676 }
677 677
678 SpdyHeadersControlFrame* SpdySession::CreateHeadersFrame(
679 SpdyStreamId stream_id,
680 const SpdyHeaderBlock& headers,
681 SpdyControlFlags flags) {
682 // Find our stream
683 CHECK(IsStreamActive(stream_id));
684 scoped_refptr<SpdyStream> stream = active_streams_[stream_id];
685 CHECK_EQ(stream->stream_id(), stream_id);
686
687 // Create a HEADER frame.
688 scoped_ptr<SpdyHeadersControlFrame> frame(
689 buffered_spdy_framer_->CreateHeaders(stream_id, flags, true, &headers));
690
691 if (net_log().IsLoggingAllEvents()) {
692 bool fin = flags & CONTROL_FLAG_FIN;
693 net_log().AddEvent(
694 NetLog::TYPE_SPDY_SESSION_SEND_HEADERS,
695 base::Bind(&NetLogSpdySynCallback,
696 &headers, fin, /*unidirectional=*/false,
697 stream_id, 0));
698 }
699 return frame.release();
700 }
701
678 SpdyDataFrame* SpdySession::CreateDataFrame(SpdyStreamId stream_id, 702 SpdyDataFrame* SpdySession::CreateDataFrame(SpdyStreamId stream_id,
679 net::IOBuffer* data, int len, 703 net::IOBuffer* data, int len,
680 SpdyDataFlags flags) { 704 SpdyDataFlags flags) {
681 // Find our stream 705 // Find our stream
682 CHECK(IsStreamActive(stream_id)); 706 CHECK(IsStreamActive(stream_id));
683 scoped_refptr<SpdyStream> stream = active_streams_[stream_id]; 707 scoped_refptr<SpdyStream> stream = active_streams_[stream_id];
684 CHECK_EQ(stream->stream_id(), stream_id); 708 CHECK_EQ(stream->stream_id(), stream_id);
685 709
686 if (len > kMaxSpdyFrameChunkSize) { 710 if (len > kMaxSpdyFrameChunkSize) {
687 len = kMaxSpdyFrameChunkSize; 711 len = kMaxSpdyFrameChunkSize;
(...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after
1516 stream->set_response_received(); 1540 stream->set_response_received();
1517 1541
1518 Respond(headers, stream); 1542 Respond(headers, stream);
1519 } 1543 }
1520 1544
1521 void SpdySession::OnHeaders(SpdyStreamId stream_id, 1545 void SpdySession::OnHeaders(SpdyStreamId stream_id,
1522 bool fin, 1546 bool fin,
1523 const SpdyHeaderBlock& headers) { 1547 const SpdyHeaderBlock& headers) {
1524 if (net_log().IsLoggingAllEvents()) { 1548 if (net_log().IsLoggingAllEvents()) {
1525 net_log().AddEvent( 1549 net_log().AddEvent(
1526 NetLog::TYPE_SPDY_SESSION_HEADERS, 1550 NetLog::TYPE_SPDY_SESSION_RECV_HEADERS,
1527 base::Bind(&NetLogSpdySynCallback, 1551 base::Bind(&NetLogSpdySynCallback,
1528 &headers, fin, /*unidirectional=*/false, 1552 &headers, fin, /*unidirectional=*/false,
1529 stream_id, 0)); 1553 stream_id, 0));
1530 } 1554 }
1531 1555
1532 if (!IsStreamActive(stream_id)) { 1556 if (!IsStreamActive(stream_id)) {
1533 // NOTE: it may just be that the stream was cancelled. 1557 // NOTE: it may just be that the stream was cancelled.
1534 LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id; 1558 LOG(WARNING) << "Received HEADERS for invalid stream " << stream_id;
1535 return; 1559 return;
1536 } 1560 }
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1970 SSLClientSocket* SpdySession::GetSSLClientSocket() const { 1994 SSLClientSocket* SpdySession::GetSSLClientSocket() const {
1971 if (!is_secure_) 1995 if (!is_secure_)
1972 return NULL; 1996 return NULL;
1973 SSLClientSocket* ssl_socket = 1997 SSLClientSocket* ssl_socket =
1974 reinterpret_cast<SSLClientSocket*>(connection_->socket()); 1998 reinterpret_cast<SSLClientSocket*>(connection_->socket());
1975 DCHECK(ssl_socket); 1999 DCHECK(ssl_socket);
1976 return ssl_socket; 2000 return ssl_socket;
1977 } 2001 }
1978 2002
1979 } // namespace net 2003 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_session.h ('k') | net/spdy/spdy_stream.h » ('j') | net/spdy/spdy_stream.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698