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

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

Issue 10254021: Merge SettingsMap changes from server code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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') | net/spdy/spdy_framer_test.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) 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 971 matching lines...) Expand 10 before | Expand all | Expand 10 after
982 if (!parser.ReadBytes(&id_and_flags_wire, 4)) { 982 if (!parser.ReadBytes(&id_and_flags_wire, 4)) {
983 return false; 983 return false;
984 } 984 }
985 if (!parser.ReadUInt32(&value)) 985 if (!parser.ReadUInt32(&value))
986 return false; 986 return false;
987 SettingsFlagsAndId flags_and_id = 987 SettingsFlagsAndId flags_and_id =
988 SettingsFlagsAndId::FromWireFormat(frame->version(), id_and_flags_wire); 988 SettingsFlagsAndId::FromWireFormat(frame->version(), id_and_flags_wire);
989 SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id()); 989 SpdySettingsIds id = static_cast<SpdySettingsIds>(flags_and_id.id());
990 SpdySettingsFlags flags = 990 SpdySettingsFlags flags =
991 static_cast<SpdySettingsFlags>(flags_and_id.flags()); 991 static_cast<SpdySettingsFlags>(flags_and_id.flags());
992 settings->insert(std::make_pair(id, SettingsFlagsAndValue(flags, value))); 992 (*settings)[id] = SettingsFlagsAndValue(flags, value);
993 } 993 }
994 return true; 994 return true;
995 } 995 }
996 996
997 /* static */ 997 /* static */
998 bool SpdyFramer::ParseCredentialData(const char* data, size_t len, 998 bool SpdyFramer::ParseCredentialData(const char* data, size_t len,
999 SpdyCredential* credential) { 999 SpdyCredential* credential) {
1000 DCHECK(credential); 1000 DCHECK(credential);
1001 1001
1002 SpdyFrameReader parser(data, len); 1002 SpdyFrameReader parser(data, len);
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
1106 DCHECK_EQ(frame.length(), frame_size); 1106 DCHECK_EQ(frame.length(), frame_size);
1107 return reinterpret_cast<SpdyRstStreamControlFrame*>(frame.take()); 1107 return reinterpret_cast<SpdyRstStreamControlFrame*>(frame.take());
1108 } 1108 }
1109 1109
1110 SpdySettingsControlFrame* SpdyFramer::CreateSettings( 1110 SpdySettingsControlFrame* SpdyFramer::CreateSettings(
1111 const SettingsMap& values) const { 1111 const SettingsMap& values) const {
1112 size_t frame_size = SpdySettingsControlFrame::size() + 8 * values.size(); 1112 size_t frame_size = SpdySettingsControlFrame::size() + 8 * values.size();
1113 SpdyFrameBuilder frame(SETTINGS, CONTROL_FLAG_NONE, spdy_version_, 1113 SpdyFrameBuilder frame(SETTINGS, CONTROL_FLAG_NONE, spdy_version_,
1114 frame_size); 1114 frame_size);
1115 frame.WriteUInt32(values.size()); 1115 frame.WriteUInt32(values.size());
1116 SettingsMap::const_iterator it = values.begin(); 1116 for (SettingsMap::const_iterator it = values.begin();
1117 while (it != values.end()) { 1117 it != values.end();
1118 it++) {
1118 SettingsFlagsAndId flags_and_id(it->second.first, it->first); 1119 SettingsFlagsAndId flags_and_id(it->second.first, it->first);
1119 uint32 id_and_flags_wire = flags_and_id.GetWireFormat(spdy_version_); 1120 uint32 id_and_flags_wire = flags_and_id.GetWireFormat(spdy_version_);
1120 frame.WriteBytes(&id_and_flags_wire, 4); 1121 frame.WriteBytes(&id_and_flags_wire, 4);
1121 frame.WriteUInt32(it->second.second); 1122 frame.WriteUInt32(it->second.second);
1122 ++it;
1123 } 1123 }
1124 DCHECK_EQ(frame.length(), frame_size); 1124 DCHECK_EQ(frame.length(), frame_size);
1125 return reinterpret_cast<SpdySettingsControlFrame*>(frame.take()); 1125 return reinterpret_cast<SpdySettingsControlFrame*>(frame.take());
1126 } 1126 }
1127 1127
1128 SpdyPingControlFrame* SpdyFramer::CreatePingFrame(uint32 unique_id) const { 1128 SpdyPingControlFrame* SpdyFramer::CreatePingFrame(uint32 unique_id) const {
1129 size_t frame_size = SpdyPingControlFrame::size(); 1129 size_t frame_size = SpdyPingControlFrame::size();
1130 SpdyFrameBuilder frame(PING, CONTROL_FLAG_NONE, spdy_version_, frame_size); 1130 SpdyFrameBuilder frame(PING, CONTROL_FLAG_NONE, spdy_version_, frame_size);
1131 frame.WriteUInt32(unique_id); 1131 frame.WriteUInt32(unique_id);
1132 DCHECK_EQ(frame.length(), frame_size); 1132 DCHECK_EQ(frame.length(), frame_size);
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after
1620 } 1620 }
1621 } 1621 }
1622 return stream_id; 1622 return stream_id;
1623 } 1623 }
1624 1624
1625 void SpdyFramer::set_enable_compression(bool value) { 1625 void SpdyFramer::set_enable_compression(bool value) {
1626 enable_compression_ = value; 1626 enable_compression_ = value;
1627 } 1627 }
1628 1628
1629 } // namespace net 1629 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer.h ('k') | net/spdy/spdy_framer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698