| OLD | NEW |
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 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_SPDY_FRAMER_DECODER_ADAPTER_H_ | 5 #ifndef NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |
| 6 #define NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ | 6 #define NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 // Sets whether or not ProcessInput returns after finishing a frame, or | 47 // Sets whether or not ProcessInput returns after finishing a frame, or |
| 48 // continues processing additional frames. Normally ProcessInput processes | 48 // continues processing additional frames. Normally ProcessInput processes |
| 49 // all input, but this method enables the caller (and visitor) to work with | 49 // all input, but this method enables the caller (and visitor) to work with |
| 50 // a single frame at a time (or that portion of the frame which is provided | 50 // a single frame at a time (or that portion of the frame which is provided |
| 51 // as input). Reset() does not change the value of this flag. | 51 // as input). Reset() does not change the value of this flag. |
| 52 virtual void set_process_single_input_frame(bool v); | 52 virtual void set_process_single_input_frame(bool v); |
| 53 bool process_single_input_frame() const { | 53 bool process_single_input_frame() const { |
| 54 return process_single_input_frame_; | 54 return process_single_input_frame_; |
| 55 } | 55 } |
| 56 | 56 |
| 57 // Decode the |len| bytes of encoded HTTP/2 starting at |*data|. Returns the | 57 // Decode the |len| bytes of encoded HTTP/2 starting at |*data|. Returns |
| 58 // number of bytes consumed. It is safe to pass more bytes in than may be | 58 // the number of bytes consumed. It is safe to pass more bytes in than |
| 59 // consumed. | 59 // may be consumed. Should process (or otherwise buffer) as much as |
| 60 // available, unless process_single_input_frame is true. |
| 60 virtual size_t ProcessInput(const char* data, size_t len) = 0; | 61 virtual size_t ProcessInput(const char* data, size_t len) = 0; |
| 61 | 62 |
| 62 // Reset the decoder (used just for tests at this time). | 63 // Reset the decoder (used just for tests at this time). |
| 63 virtual void Reset() = 0; | 64 virtual void Reset() = 0; |
| 64 | 65 |
| 65 // Current state of the decoder. | 66 // Current state of the decoder. |
| 66 virtual SpdyFramer::SpdyState state() const = 0; | 67 virtual SpdyFramer::SpdyState state() const = 0; |
| 67 | 68 |
| 68 // Current error code (NO_ERROR if state != ERROR). | 69 // Current error code (NO_ERROR if state != ERROR). |
| 69 virtual SpdyFramer::SpdyError error_code() const = 0; | 70 virtual SpdyFramer::SpdyError error_code() const = 0; |
| 70 | 71 |
| 71 // Did the most recently decoded frame header appear to be the start of an | 72 // Has any frame header looked like the start of an HTTP/1.1 (or earlier) |
| 72 // HTTP/1.1 (or earlier) response? Used to detect if a backend/server that | 73 // response? Used to detect if a backend/server that we sent a request to |
| 73 // we sent a request to, responded with an HTTP/1.1 response? | 74 // has responded with an HTTP/1.1 (or earlier) response. |
| 74 virtual bool probable_http_response() const = 0; | 75 virtual bool probable_http_response() const = 0; |
| 75 | 76 |
| 76 private: | 77 private: |
| 77 SpdyFramerVisitorInterface* visitor_ = nullptr; | 78 SpdyFramerVisitorInterface* visitor_ = nullptr; |
| 78 SpdyFramerDebugVisitorInterface* debug_visitor_ = nullptr; | 79 SpdyFramerDebugVisitorInterface* debug_visitor_ = nullptr; |
| 79 bool process_single_input_frame_ = false; | 80 bool process_single_input_frame_ = false; |
| 80 }; | 81 }; |
| 81 | 82 |
| 82 // Create an instance of NestedSpdyFramerDecoder, which implements | 83 // Create an instance of NestedSpdyFramerDecoder, which implements |
| 83 // SpdyFramerDecoderAdapter, delegating to a SpdyFramer instance that will | 84 // SpdyFramerDecoderAdapter, delegating to a SpdyFramer instance that will |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 152 SpdyFramer* framer() const { return framer_; } | 153 SpdyFramer* framer() const { return framer_; } |
| 153 | 154 |
| 154 private: | 155 private: |
| 155 SpdyFramerVisitorInterface* const visitor_; | 156 SpdyFramerVisitorInterface* const visitor_; |
| 156 SpdyFramer* const framer_; | 157 SpdyFramer* const framer_; |
| 157 }; | 158 }; |
| 158 | 159 |
| 159 } // namespace net | 160 } // namespace net |
| 160 | 161 |
| 161 #endif // NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ | 162 #endif // NET_SPDY_SPDY_FRAMER_DECODER_ADAPTER_H_ |
| OLD | NEW |