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

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

Issue 10448083: Fix out of order SYN_STEAM frames. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix willchan's comments Created 8 years, 5 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 #ifndef NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 5 #ifndef NET_SPDY_BUFFERED_SPDY_FRAMER_H_
6 #define NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 6 #define NET_SPDY_BUFFERED_SPDY_FRAMER_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 // When the other side has finished sending data on this stream, 61 // When the other side has finished sending data on this stream,
62 // this method will be called with a zero-length buffer. 62 // this method will be called with a zero-length buffer.
63 virtual void OnStreamFrameData(SpdyStreamId stream_id, 63 virtual void OnStreamFrameData(SpdyStreamId stream_id,
64 const char* data, 64 const char* data,
65 size_t len) = 0; 65 size_t len) = 0;
66 66
67 // Called when an individual setting within a SETTINGS frame has been parsed 67 // Called when an individual setting within a SETTINGS frame has been parsed
68 // and validated. 68 // and validated.
69 virtual void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) = 0; 69 virtual void OnSetting(SpdySettingsIds id, uint8 flags, uint32 value) = 0;
70 70
71 virtual void OnControlFrameCompressed(
72 const SpdyControlFrame& uncompressed_frame,
73 const SpdyControlFrame& compressed_frame) = 0;
74
71 protected: 75 protected:
72 virtual ~BufferedSpdyFramerVisitorInterface() {} 76 virtual ~BufferedSpdyFramerVisitorInterface() {}
73 77
74 private: 78 private:
75 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface); 79 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface);
76 }; 80 };
77 81
78 class NET_EXPORT_PRIVATE BufferedSpdyFramer 82 class NET_EXPORT_PRIVATE BufferedSpdyFramer
79 : public SpdyFramerVisitorInterface { 83 : public SpdyFramerVisitorInterface {
80 public: 84 public:
(...skipping 14 matching lines...) Expand all
95 virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id, 99 virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
96 const char* header_data, 100 const char* header_data,
97 size_t len) OVERRIDE; 101 size_t len) OVERRIDE;
98 virtual void OnStreamFrameData(SpdyStreamId stream_id, 102 virtual void OnStreamFrameData(SpdyStreamId stream_id,
99 const char* data, 103 const char* data,
100 size_t len) OVERRIDE; 104 size_t len) OVERRIDE;
101 virtual void OnSetting( 105 virtual void OnSetting(
102 SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE; 106 SpdySettingsIds id, uint8 flags, uint32 value) OVERRIDE;
103 virtual void OnDataFrameHeader(const SpdyDataFrame* frame) OVERRIDE; 107 virtual void OnDataFrameHeader(const SpdyDataFrame* frame) OVERRIDE;
104 108
109 // Called after a control frame has been compressed to allow the visitor
110 // to record compression statistics.
111 virtual void OnControlFrameCompressed(
112 const SpdyControlFrame& uncompressed_frame,
113 const SpdyControlFrame& compressed_frame) OVERRIDE;
114
105 // SpdyFramer methods. 115 // SpdyFramer methods.
106 size_t ProcessInput(const char* data, size_t len); 116 size_t ProcessInput(const char* data, size_t len);
107 int protocol_version(); 117 int protocol_version();
108 void Reset(); 118 void Reset();
109 SpdyFramer::SpdyError error_code() const; 119 SpdyFramer::SpdyError error_code() const;
110 SpdyFramer::SpdyState state() const; 120 SpdyFramer::SpdyState state() const;
111 bool MessageFullyRead(); 121 bool MessageFullyRead();
112 bool HasError(); 122 bool HasError();
113 SpdySynStreamControlFrame* CreateSynStream(SpdyStreamId stream_id, 123 SpdySynStreamControlFrame* CreateSynStream(SpdyStreamId stream_id,
114 SpdyStreamId associated_stream_id, 124 SpdyStreamId associated_stream_id,
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 SpdyStreamId header_stream_id_; 175 SpdyStreamId header_stream_id_;
166 scoped_ptr<SpdyFrame> control_frame_; 176 scoped_ptr<SpdyFrame> control_frame_;
167 int frames_received_; 177 int frames_received_;
168 178
169 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); 179 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer);
170 }; 180 };
171 181
172 } // namespace net 182 } // namespace net
173 183
174 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ 184 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698