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

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

Issue 13529032: Change the signature of SpdyFramer::SerializeNameValueBlockWithoutCompression (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 8 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
« no previous file with comments | « net/spdy/spdy_framer.h ('k') | no next file » | 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 // TODO(rtenhove) clean up frame buffer size calculations so that we aren't 5 // TODO(rtenhove) clean up frame buffer size calculations so that we aren't
6 // constantly adding and subtracting header sizes; this is ugly and error- 6 // constantly adding and subtracting header sizes; this is ugly and error-
7 // prone. 7 // prone.
8 8
9 #include "net/spdy/spdy_framer.h" 9 #include "net/spdy/spdy_framer.h"
10 10
(...skipping 1947 matching lines...) Expand 10 before | Expand all | Expand 10 after
1958 // Assume that the problem was the header block was too large for the 1958 // Assume that the problem was the header block was too large for the
1959 // visitor. 1959 // visitor.
1960 set_error(SPDY_CONTROL_PAYLOAD_TOO_LARGE); 1960 set_error(SPDY_CONTROL_PAYLOAD_TOO_LARGE);
1961 } 1961 }
1962 } 1962 }
1963 return read_successfully; 1963 return read_successfully;
1964 } 1964 }
1965 1965
1966 void SpdyFramer::SerializeNameValueBlockWithoutCompression( 1966 void SpdyFramer::SerializeNameValueBlockWithoutCompression(
1967 SpdyFrameBuilder* builder, 1967 SpdyFrameBuilder* builder,
1968 const SpdyFrameWithNameValueBlockIR& frame) const { 1968 const SpdyNameValueBlock& name_value_block) const {
1969 const SpdyNameValueBlock* name_value_block = &(frame.name_value_block());
1970
1971 // Serialize number of headers. 1969 // Serialize number of headers.
1972 if (protocol_version() < 3) { 1970 if (protocol_version() < 3) {
1973 builder->WriteUInt16(name_value_block->size()); 1971 builder->WriteUInt16(name_value_block.size());
1974 } else { 1972 } else {
1975 builder->WriteUInt32(name_value_block->size()); 1973 builder->WriteUInt32(name_value_block.size());
1976 } 1974 }
1977 1975
1978 // Serialize each header. 1976 // Serialize each header.
1979 for (SpdyHeaderBlock::const_iterator it = name_value_block->begin(); 1977 for (SpdyHeaderBlock::const_iterator it = name_value_block.begin();
1980 it != name_value_block->end(); 1978 it != name_value_block.end();
1981 ++it) { 1979 ++it) {
1982 if (protocol_version() < 3) { 1980 if (protocol_version() < 3) {
1983 builder->WriteString(it->first); 1981 builder->WriteString(it->first);
1984 builder->WriteString(it->second); 1982 builder->WriteString(it->second);
1985 } else { 1983 } else {
1986 builder->WriteStringPiece32(it->first); 1984 builder->WriteStringPiece32(it->first);
1987 builder->WriteStringPiece32(it->second); 1985 builder->WriteStringPiece32(it->second);
1988 } 1986 }
1989 } 1987 }
1990 } 1988 }
1991 1989
1992 void SpdyFramer::SerializeNameValueBlock( 1990 void SpdyFramer::SerializeNameValueBlock(
1993 SpdyFrameBuilder* builder, 1991 SpdyFrameBuilder* builder,
1994 const SpdyFrameWithNameValueBlockIR& frame) { 1992 const SpdyFrameWithNameValueBlockIR& frame) {
1995 if (!enable_compression_) { 1993 if (!enable_compression_) {
1996 return SerializeNameValueBlockWithoutCompression(builder, frame); 1994 return SerializeNameValueBlockWithoutCompression(builder,
1995 frame.name_value_block());
1997 } 1996 }
1998 1997
1999 // First build an uncompressed version to be fed into the compressor. 1998 // First build an uncompressed version to be fed into the compressor.
2000 const size_t uncompressed_len = GetSerializedLength( 1999 const size_t uncompressed_len = GetSerializedLength(
2001 protocol_version(), &(frame.name_value_block())); 2000 protocol_version(), &(frame.name_value_block()));
2002 SpdyFrameBuilder uncompressed_builder(uncompressed_len); 2001 SpdyFrameBuilder uncompressed_builder(uncompressed_len);
2003 SerializeNameValueBlockWithoutCompression(&uncompressed_builder, frame); 2002 SerializeNameValueBlockWithoutCompression(&uncompressed_builder,
2003 frame.name_value_block());
2004 scoped_ptr<SpdyFrame> uncompressed_payload(uncompressed_builder.take()); 2004 scoped_ptr<SpdyFrame> uncompressed_payload(uncompressed_builder.take());
2005 2005
2006 z_stream* compressor = GetHeaderCompressor(); 2006 z_stream* compressor = GetHeaderCompressor();
2007 if (!compressor) { 2007 if (!compressor) {
2008 LOG(DFATAL) << "Could not obtain compressor."; 2008 LOG(DFATAL) << "Could not obtain compressor.";
2009 return; 2009 return;
2010 } 2010 }
2011 2011
2012 base::StatsCounter compressed_frames("spdy.CompressedFrames"); 2012 base::StatsCounter compressed_frames("spdy.CompressedFrames");
2013 base::StatsCounter pre_compress_bytes("spdy.PreCompressSize"); 2013 base::StatsCounter pre_compress_bytes("spdy.PreCompressSize");
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
2054 post_compress_bytes.Add(compressed_size); 2054 post_compress_bytes.Add(compressed_size);
2055 2055
2056 compressed_frames.Increment(); 2056 compressed_frames.Increment();
2057 2057
2058 if (debug_visitor_ != NULL) { 2058 if (debug_visitor_ != NULL) {
2059 debug_visitor_->OnCompressedHeaderBlock(uncompressed_len, compressed_size); 2059 debug_visitor_->OnCompressedHeaderBlock(uncompressed_len, compressed_size);
2060 } 2060 }
2061 } 2061 }
2062 2062
2063 } // namespace net 2063 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698