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

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

Issue 12262004: Remove SpdyRstStreamControlFrame struct. Useful for SPDY 4 development. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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_test.cc ('k') | net/spdy/spdy_protocol_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 // This file contains some protocol structures for use with Spdy. 5 // This file contains some protocol structures for use with Spdy.
6 6
7 #ifndef NET_SPDY_SPDY_PROTOCOL_H_ 7 #ifndef NET_SPDY_SPDY_PROTOCOL_H_
8 #define NET_SPDY_SPDY_PROTOCOL_H_ 8 #define NET_SPDY_SPDY_PROTOCOL_H_
9 9
10 #include <limits> 10 #include <limits>
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 }; 484 };
485 485
486 // A SYN_STREAM Control Frame structure. 486 // A SYN_STREAM Control Frame structure.
487 struct SpdySynStreamControlFrameBlock : SpdyFrameBlock { 487 struct SpdySynStreamControlFrameBlock : SpdyFrameBlock {
488 SpdyStreamId stream_id_; 488 SpdyStreamId stream_id_;
489 SpdyStreamId associated_stream_id_; 489 SpdyStreamId associated_stream_id_;
490 SpdyPriority priority_; 490 SpdyPriority priority_;
491 uint8 credential_slot_; 491 uint8 credential_slot_;
492 }; 492 };
493 493
494 // A RST_STREAM Control Frame structure.
495 struct SpdyRstStreamControlFrameBlock : SpdyFrameBlock {
496 SpdyStreamId stream_id_;
497 uint32 status_;
498 };
499
500 // A SETTINGS Control Frame structure. 494 // A SETTINGS Control Frame structure.
501 struct SpdySettingsControlFrameBlock : SpdyFrameBlock { 495 struct SpdySettingsControlFrameBlock : SpdyFrameBlock {
502 uint32 num_entries_; 496 uint32 num_entries_;
503 // Variable data here. 497 // Variable data here.
504 }; 498 };
505 499
506 // TODO(avd): remove this struct 500 // TODO(avd): remove this struct
507 // A CREDENTIAL Control Frame structure. 501 // A CREDENTIAL Control Frame structure.
508 struct SpdyCredentialControlFrameBlock : SpdyFrameBlock { 502 struct SpdyCredentialControlFrameBlock : SpdyFrameBlock {
509 uint16 slot_; 503 uint16 slot_;
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
1031 private: 1025 private:
1032 const struct SpdySynStreamControlFrameBlock* block() const { 1026 const struct SpdySynStreamControlFrameBlock* block() const {
1033 return static_cast<SpdySynStreamControlFrameBlock*>(frame_); 1027 return static_cast<SpdySynStreamControlFrameBlock*>(frame_);
1034 } 1028 }
1035 struct SpdySynStreamControlFrameBlock* mutable_block() { 1029 struct SpdySynStreamControlFrameBlock* mutable_block() {
1036 return static_cast<SpdySynStreamControlFrameBlock*>(frame_); 1030 return static_cast<SpdySynStreamControlFrameBlock*>(frame_);
1037 } 1031 }
1038 DISALLOW_COPY_AND_ASSIGN(SpdySynStreamControlFrame); 1032 DISALLOW_COPY_AND_ASSIGN(SpdySynStreamControlFrame);
1039 }; 1033 };
1040 1034
1041 // A RST_STREAM frame.
1042 class SpdyRstStreamControlFrame : public SpdyControlFrame {
1043 public:
1044 SpdyRstStreamControlFrame() : SpdyControlFrame(size()) {}
1045 SpdyRstStreamControlFrame(char* data, bool owns_buffer)
1046 : SpdyControlFrame(data, owns_buffer) {}
1047
1048 SpdyStreamId stream_id() const {
1049 return ntohl(block()->stream_id_) & kStreamIdMask;
1050 }
1051
1052 SpdyRstStreamStatus status() const {
1053 SpdyRstStreamStatus status =
1054 static_cast<SpdyRstStreamStatus>(ntohl(block()->status_));
1055 if (status < RST_STREAM_INVALID || status >= RST_STREAM_NUM_STATUS_CODES) {
1056 status = RST_STREAM_INVALID;
1057 }
1058 return status;
1059 }
1060 void set_status(SpdyRstStreamStatus status) {
1061 mutable_block()->status_ = htonl(static_cast<uint32>(status));
1062 }
1063
1064 // Returns the size of the SpdyRstStreamControlFrameBlock structure.
1065 // Note: this is not the size of the SpdyRstStreamControlFrame class.
1066 static size_t size() { return sizeof(SpdyRstStreamControlFrameBlock); }
1067
1068 private:
1069 const struct SpdyRstStreamControlFrameBlock* block() const {
1070 return static_cast<SpdyRstStreamControlFrameBlock*>(frame_);
1071 }
1072 struct SpdyRstStreamControlFrameBlock* mutable_block() {
1073 return static_cast<SpdyRstStreamControlFrameBlock*>(frame_);
1074 }
1075 DISALLOW_COPY_AND_ASSIGN(SpdyRstStreamControlFrame);
1076 };
1077
1078 class SpdySettingsControlFrame : public SpdyControlFrame { 1035 class SpdySettingsControlFrame : public SpdyControlFrame {
1079 public: 1036 public:
1080 SpdySettingsControlFrame() : SpdyControlFrame(size()) {} 1037 SpdySettingsControlFrame() : SpdyControlFrame(size()) {}
1081 SpdySettingsControlFrame(char* data, bool owns_buffer) 1038 SpdySettingsControlFrame(char* data, bool owns_buffer)
1082 : SpdyControlFrame(data, owns_buffer) {} 1039 : SpdyControlFrame(data, owns_buffer) {}
1083 1040
1084 uint32 num_entries() const { 1041 uint32 num_entries() const {
1085 return ntohl(block()->num_entries_); 1042 return ntohl(block()->num_entries_);
1086 } 1043 }
1087 1044
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
1157 } 1114 }
1158 struct SpdyHeadersControlFrameBlock* mutable_block() { 1115 struct SpdyHeadersControlFrameBlock* mutable_block() {
1159 return static_cast<SpdyHeadersControlFrameBlock*>(frame_); 1116 return static_cast<SpdyHeadersControlFrameBlock*>(frame_);
1160 } 1117 }
1161 DISALLOW_COPY_AND_ASSIGN(SpdyHeadersControlFrame); 1118 DISALLOW_COPY_AND_ASSIGN(SpdyHeadersControlFrame);
1162 }; 1119 };
1163 1120
1164 } // namespace net 1121 } // namespace net
1165 1122
1166 #endif // NET_SPDY_SPDY_PROTOCOL_H_ 1123 #endif // NET_SPDY_SPDY_PROTOCOL_H_
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer_test.cc ('k') | net/spdy/spdy_protocol_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698