OLD | NEW |
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 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 // Called when a GOAWAY frame has been parsed. | 93 // Called when a GOAWAY frame has been parsed. |
94 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, | 94 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, |
95 SpdyGoAwayStatus status) = 0; | 95 SpdyGoAwayStatus status) = 0; |
96 | 96 |
97 // Called when a WINDOW_UPDATE frame has been parsed. | 97 // Called when a WINDOW_UPDATE frame has been parsed. |
98 virtual void OnWindowUpdate(SpdyStreamId stream_id, | 98 virtual void OnWindowUpdate(SpdyStreamId stream_id, |
99 uint32 delta_window_size) = 0; | 99 uint32 delta_window_size) = 0; |
100 | 100 |
101 // Called when a PUSH_PROMISE frame has been parsed. | 101 // Called when a PUSH_PROMISE frame has been parsed. |
102 virtual void OnPushPromise(SpdyStreamId stream_id, | 102 virtual void OnPushPromise(SpdyStreamId stream_id, |
103 SpdyStreamId promised_stream_id) = 0; | 103 SpdyStreamId promised_stream_id, |
| 104 const SpdyHeaderBlock& headers) = 0; |
104 | 105 |
105 protected: | 106 protected: |
106 virtual ~BufferedSpdyFramerVisitorInterface() {} | 107 virtual ~BufferedSpdyFramerVisitorInterface() {} |
107 | 108 |
108 private: | 109 private: |
109 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface); | 110 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface); |
110 }; | 111 }; |
111 | 112 |
112 class NET_EXPORT_PRIVATE BufferedSpdyFramer | 113 class NET_EXPORT_PRIVATE BufferedSpdyFramer |
113 : public SpdyFramerVisitorInterface { | 114 : public SpdyFramerVisitorInterface { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
189 SpdyFrame* CreateHeaders(SpdyStreamId stream_id, | 190 SpdyFrame* CreateHeaders(SpdyStreamId stream_id, |
190 SpdyControlFlags flags, | 191 SpdyControlFlags flags, |
191 const SpdyHeaderBlock* headers); | 192 const SpdyHeaderBlock* headers); |
192 SpdyFrame* CreateWindowUpdate( | 193 SpdyFrame* CreateWindowUpdate( |
193 SpdyStreamId stream_id, | 194 SpdyStreamId stream_id, |
194 uint32 delta_window_size) const; | 195 uint32 delta_window_size) const; |
195 SpdyFrame* CreateDataFrame(SpdyStreamId stream_id, | 196 SpdyFrame* CreateDataFrame(SpdyStreamId stream_id, |
196 const char* data, | 197 const char* data, |
197 uint32 len, | 198 uint32 len, |
198 SpdyDataFlags flags); | 199 SpdyDataFlags flags); |
| 200 SpdyFrame* CreatePushPromise(SpdyStreamId stream_id, |
| 201 SpdyStreamId promised_stream_id, |
| 202 const SpdyHeaderBlock* headers); |
199 | 203 |
200 // Serialize a frame of unknown type. | 204 // Serialize a frame of unknown type. |
201 SpdySerializedFrame* SerializeFrame(const SpdyFrameIR& frame) { | 205 SpdySerializedFrame* SerializeFrame(const SpdyFrameIR& frame) { |
202 return spdy_framer_.SerializeFrame(frame); | 206 return spdy_framer_.SerializeFrame(frame); |
203 } | 207 } |
204 | 208 |
205 SpdyPriority GetHighestPriority() const; | 209 SpdyPriority GetHighestPriority() const; |
206 | 210 |
207 size_t GetDataFrameMinimumSize() const { | 211 size_t GetDataFrameMinimumSize() const { |
208 return spdy_framer_.GetDataFrameMinimumSize(); | 212 return spdy_framer_.GetDataFrameMinimumSize(); |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 bool header_buffer_valid_; | 249 bool header_buffer_valid_; |
246 SpdyStreamId header_stream_id_; | 250 SpdyStreamId header_stream_id_; |
247 int frames_received_; | 251 int frames_received_; |
248 | 252 |
249 // Collection of fields from control frames that we need to | 253 // Collection of fields from control frames that we need to |
250 // buffer up from the spdy framer. | 254 // buffer up from the spdy framer. |
251 struct ControlFrameFields { | 255 struct ControlFrameFields { |
252 SpdyFrameType type; | 256 SpdyFrameType type; |
253 SpdyStreamId stream_id; | 257 SpdyStreamId stream_id; |
254 SpdyStreamId associated_stream_id; | 258 SpdyStreamId associated_stream_id; |
| 259 SpdyStreamId promised_stream_id; |
255 SpdyPriority priority; | 260 SpdyPriority priority; |
256 uint8 credential_slot; | 261 uint8 credential_slot; |
257 bool fin; | 262 bool fin; |
258 bool unidirectional; | 263 bool unidirectional; |
259 }; | 264 }; |
260 scoped_ptr<ControlFrameFields> control_frame_fields_; | 265 scoped_ptr<ControlFrameFields> control_frame_fields_; |
261 | 266 |
262 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); | 267 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); |
263 }; | 268 }; |
264 | 269 |
265 } // namespace net | 270 } // namespace net |
266 | 271 |
267 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ | 272 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ |
OLD | NEW |