| 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 <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 74 virtual void OnSettingsAck() {} | 74 virtual void OnSettingsAck() {} |
| 75 | 75 |
| 76 // Called at the completion of parsing SETTINGS id and value tuples. | 76 // Called at the completion of parsing SETTINGS id and value tuples. |
| 77 virtual void OnSettingsEnd() {} | 77 virtual void OnSettingsEnd() {} |
| 78 | 78 |
| 79 // Called when a PING frame has been parsed. | 79 // Called when a PING frame has been parsed. |
| 80 virtual void OnPing(SpdyPingId unique_id, bool is_ack) = 0; | 80 virtual void OnPing(SpdyPingId unique_id, bool is_ack) = 0; |
| 81 | 81 |
| 82 // Called when a RST_STREAM frame has been parsed. | 82 // Called when a RST_STREAM frame has been parsed. |
| 83 virtual void OnRstStream(SpdyStreamId stream_id, | 83 virtual void OnRstStream(SpdyStreamId stream_id, |
| 84 SpdyRstStreamStatus status) = 0; | 84 SpdyErrorCode error_code) = 0; |
| 85 | 85 |
| 86 // Called when a GOAWAY frame has been parsed. | 86 // Called when a GOAWAY frame has been parsed. |
| 87 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, | 87 virtual void OnGoAway(SpdyStreamId last_accepted_stream_id, |
| 88 SpdyGoAwayStatus status, | 88 SpdyErrorCode error_code, |
| 89 base::StringPiece debug_data) = 0; | 89 base::StringPiece debug_data) = 0; |
| 90 | 90 |
| 91 // Called when a WINDOW_UPDATE frame has been parsed. | 91 // Called when a WINDOW_UPDATE frame has been parsed. |
| 92 virtual void OnWindowUpdate(SpdyStreamId stream_id, | 92 virtual void OnWindowUpdate(SpdyStreamId stream_id, |
| 93 int delta_window_size) = 0; | 93 int delta_window_size) = 0; |
| 94 | 94 |
| 95 // Called when a PUSH_PROMISE frame has been parsed. | 95 // Called when a PUSH_PROMISE frame has been parsed. |
| 96 virtual void OnPushPromise(SpdyStreamId stream_id, | 96 virtual void OnPushPromise(SpdyStreamId stream_id, |
| 97 SpdyStreamId promised_stream_id, | 97 SpdyStreamId promised_stream_id, |
| 98 SpdyHeaderBlock headers) = 0; | 98 SpdyHeaderBlock headers) = 0; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 void OnStreamEnd(SpdyStreamId stream_id) override; | 148 void OnStreamEnd(SpdyStreamId stream_id) override; |
| 149 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; | 149 void OnStreamPadding(SpdyStreamId stream_id, size_t len) override; |
| 150 SpdyHeadersHandlerInterface* OnHeaderFrameStart( | 150 SpdyHeadersHandlerInterface* OnHeaderFrameStart( |
| 151 SpdyStreamId stream_id) override; | 151 SpdyStreamId stream_id) override; |
| 152 void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override; | 152 void OnHeaderFrameEnd(SpdyStreamId stream_id, bool end_headers) override; |
| 153 void OnSettings(bool clear_persisted) override; | 153 void OnSettings(bool clear_persisted) override; |
| 154 void OnSetting(SpdySettingsIds id, uint32_t value) override; | 154 void OnSetting(SpdySettingsIds id, uint32_t value) override; |
| 155 void OnSettingsAck() override; | 155 void OnSettingsAck() override; |
| 156 void OnSettingsEnd() override; | 156 void OnSettingsEnd() override; |
| 157 void OnPing(SpdyPingId unique_id, bool is_ack) override; | 157 void OnPing(SpdyPingId unique_id, bool is_ack) override; |
| 158 void OnRstStream(SpdyStreamId stream_id, SpdyRstStreamStatus status) override; | 158 void OnRstStream(SpdyStreamId stream_id, SpdyErrorCode error_code) override; |
| 159 void OnGoAway(SpdyStreamId last_accepted_stream_id, | 159 void OnGoAway(SpdyStreamId last_accepted_stream_id, |
| 160 SpdyGoAwayStatus status) override; | 160 SpdyErrorCode error_code) override; |
| 161 bool OnGoAwayFrameData(const char* goaway_data, size_t len) override; | 161 bool OnGoAwayFrameData(const char* goaway_data, size_t len) override; |
| 162 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; | 162 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override; |
| 163 void OnPushPromise(SpdyStreamId stream_id, | 163 void OnPushPromise(SpdyStreamId stream_id, |
| 164 SpdyStreamId promised_stream_id, | 164 SpdyStreamId promised_stream_id, |
| 165 bool end) override; | 165 bool end) override; |
| 166 void OnAltSvc(SpdyStreamId stream_id, | 166 void OnAltSvc(SpdyStreamId stream_id, |
| 167 base::StringPiece origin, | 167 base::StringPiece origin, |
| 168 const SpdyAltSvcWireFormat::AlternativeServiceVector& | 168 const SpdyAltSvcWireFormat::AlternativeServiceVector& |
| 169 altsvc_vector) override; | 169 altsvc_vector) override; |
| 170 void OnDataFrameHeader(SpdyStreamId stream_id, | 170 void OnDataFrameHeader(SpdyStreamId stream_id, |
| 171 size_t length, | 171 size_t length, |
| 172 bool fin) override; | 172 bool fin) override; |
| 173 void OnContinuation(SpdyStreamId stream_id, bool end) override; | 173 void OnContinuation(SpdyStreamId stream_id, bool end) override; |
| 174 bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) override; | 174 bool OnUnknownFrame(SpdyStreamId stream_id, uint8_t frame_type) override; |
| 175 | 175 |
| 176 // SpdyFramer methods. | 176 // SpdyFramer methods. |
| 177 size_t ProcessInput(const char* data, size_t len); | 177 size_t ProcessInput(const char* data, size_t len); |
| 178 void UpdateHeaderDecoderTableSize(uint32_t value); | 178 void UpdateHeaderDecoderTableSize(uint32_t value); |
| 179 void Reset(); | 179 void Reset(); |
| 180 SpdyFramer::SpdyFramerError spdy_framer_error() const; | 180 SpdyFramer::SpdyFramerError spdy_framer_error() const; |
| 181 SpdyFramer::SpdyState state() const; | 181 SpdyFramer::SpdyState state() const; |
| 182 bool MessageFullyRead(); | 182 bool MessageFullyRead(); |
| 183 bool HasError(); | 183 bool HasError(); |
| 184 SpdySerializedFrame* CreateRstStream(SpdyStreamId stream_id, | 184 SpdySerializedFrame* CreateRstStream(SpdyStreamId stream_id, |
| 185 SpdyRstStreamStatus status) const; | 185 SpdyErrorCode error_code) const; |
| 186 SpdySerializedFrame* CreateSettings(const SettingsMap& values) const; | 186 SpdySerializedFrame* CreateSettings(const SettingsMap& values) const; |
| 187 SpdySerializedFrame* CreatePingFrame(SpdyPingId unique_id, bool is_ack) const; | 187 SpdySerializedFrame* CreatePingFrame(SpdyPingId unique_id, bool is_ack) const; |
| 188 SpdySerializedFrame* CreateGoAway(SpdyStreamId last_accepted_stream_id, | 188 SpdySerializedFrame* CreateGoAway(SpdyStreamId last_accepted_stream_id, |
| 189 SpdyGoAwayStatus status, | 189 SpdyErrorCode error_code, |
| 190 base::StringPiece debug_data) const; | 190 base::StringPiece debug_data) const; |
| 191 SpdySerializedFrame* CreateHeaders(SpdyStreamId stream_id, | 191 SpdySerializedFrame* CreateHeaders(SpdyStreamId stream_id, |
| 192 SpdyControlFlags flags, | 192 SpdyControlFlags flags, |
| 193 int weight, | 193 int weight, |
| 194 SpdyHeaderBlock headers); | 194 SpdyHeaderBlock headers); |
| 195 SpdySerializedFrame* CreateWindowUpdate(SpdyStreamId stream_id, | 195 SpdySerializedFrame* CreateWindowUpdate(SpdyStreamId stream_id, |
| 196 uint32_t delta_window_size) const; | 196 uint32_t delta_window_size) const; |
| 197 SpdySerializedFrame* CreateDataFrame(SpdyStreamId stream_id, | 197 SpdySerializedFrame* CreateDataFrame(SpdyStreamId stream_id, |
| 198 const char* data, | 198 const char* data, |
| 199 uint32_t len, | 199 uint32_t len, |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 260 SpdyStreamId parent_stream_id; | 260 SpdyStreamId parent_stream_id; |
| 261 bool exclusive; | 261 bool exclusive; |
| 262 bool fin; | 262 bool fin; |
| 263 bool unidirectional; | 263 bool unidirectional; |
| 264 }; | 264 }; |
| 265 std::unique_ptr<ControlFrameFields> control_frame_fields_; | 265 std::unique_ptr<ControlFrameFields> control_frame_fields_; |
| 266 | 266 |
| 267 // Collection of fields of a GOAWAY frame that this class needs to buffer. | 267 // Collection of fields of a GOAWAY frame that this class needs to buffer. |
| 268 struct GoAwayFields { | 268 struct GoAwayFields { |
| 269 SpdyStreamId last_accepted_stream_id; | 269 SpdyStreamId last_accepted_stream_id; |
| 270 SpdyGoAwayStatus status; | 270 SpdyErrorCode error_code; |
| 271 std::string debug_data; | 271 std::string debug_data; |
| 272 }; | 272 }; |
| 273 std::unique_ptr<GoAwayFields> goaway_fields_; | 273 std::unique_ptr<GoAwayFields> goaway_fields_; |
| 274 | 274 |
| 275 std::unique_ptr<HeaderCoalescer> coalescer_; | 275 std::unique_ptr<HeaderCoalescer> coalescer_; |
| 276 | 276 |
| 277 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); | 277 DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer); |
| 278 }; | 278 }; |
| 279 | 279 |
| 280 } // namespace net | 280 } // namespace net |
| 281 | 281 |
| 282 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ | 282 #endif // NET_SPDY_BUFFERED_SPDY_FRAMER_H_ |
| OLD | NEW |