| Index: net/spdy/buffered_spdy_framer.h
|
| ===================================================================
|
| --- net/spdy/buffered_spdy_framer.h (revision 122608)
|
| +++ net/spdy/buffered_spdy_framer.h (working copy)
|
| @@ -16,15 +16,20 @@
|
|
|
| namespace spdy {
|
|
|
| -class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface
|
| - : public SpdyFramerVisitorInterface {
|
| +class NET_EXPORT_PRIVATE BufferedSpdyFramerVisitorInterface {
|
| public:
|
| BufferedSpdyFramerVisitorInterface() {}
|
| virtual ~BufferedSpdyFramerVisitorInterface() {}
|
|
|
| + // Called if an error is detected in the SpdyFrame protocol.
|
| + virtual void OnError() = 0;
|
| +
|
| + // Called if an error is detected in a SPDY stream.
|
| + virtual void OnStreamError(spdy::SpdyStreamId stream_id) = 0;
|
| +
|
| // Called after all the header data for SYN_STREAM control frame is received.
|
| - virtual void OnSyn(const SpdySynStreamControlFrame& frame,
|
| - const linked_ptr<SpdyHeaderBlock>& headers) = 0;
|
| + virtual void OnSynStream(const SpdySynStreamControlFrame& frame,
|
| + const linked_ptr<SpdyHeaderBlock>& headers) = 0;
|
|
|
| // Called after all the header data for SYN_REPLY control frame is received.
|
| virtual void OnSynReply(const SpdySynReplyControlFrame& frame,
|
| @@ -34,11 +39,37 @@
|
| virtual void OnHeaders(const SpdyHeadersControlFrame& frame,
|
| const linked_ptr<SpdyHeaderBlock>& headers) = 0;
|
|
|
| + // Called after a RST_STREAM frame is received.
|
| + virtual void OnRstStream(const spdy::SpdyRstStreamControlFrame& frame) = 0;
|
| +
|
| + // Called after a GOAWAY frame is received.
|
| + virtual void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame) = 0;
|
| +
|
| + // Called after a PING frame is received.
|
| + virtual void OnPing(const spdy::SpdyPingControlFrame& frame) = 0;
|
| +
|
| + // Called after a SETTINGS frame is received.
|
| + virtual void OnSettings(const spdy::SpdySettingsControlFrame& frame) = 0;
|
| +
|
| + // Called after a WINDOW_UPDATE frame is received.
|
| + virtual void OnWindowUpdate(
|
| + const spdy::SpdyWindowUpdateControlFrame& frame) = 0;
|
| +
|
| + // Called when data is received.
|
| + // |stream_id| The stream receiving data.
|
| + // |data| A buffer containing the data received.
|
| + // |len| The length of the data buffer.
|
| + // When the other side has finished sending data on this stream,
|
| + // this method will be called with a zero-length buffer.
|
| + virtual void OnStreamFrameData(SpdyStreamId stream_id,
|
| + const char* data,
|
| + size_t len) = 0;
|
| private:
|
| DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramerVisitorInterface);
|
| };
|
|
|
| -class NET_EXPORT_PRIVATE BufferedSpdyFramer {
|
| +class NET_EXPORT_PRIVATE BufferedSpdyFramer
|
| + : public SpdyFramerVisitorInterface {
|
| public:
|
| BufferedSpdyFramer();
|
| virtual ~BufferedSpdyFramer();
|
| @@ -49,15 +80,20 @@
|
| // visitor will be used.
|
| void set_visitor(BufferedSpdyFramerVisitorInterface* visitor);
|
|
|
| - void OnControl(const SpdyControlFrame* frame);
|
| + // SpdyFramerVisitorInterface
|
| + virtual void OnError(SpdyFramer* /*framer*/) OVERRIDE;
|
| + virtual void OnControl(const SpdyControlFrame* frame) OVERRIDE;
|
| + virtual bool OnCredentialFrameData(const char* frame_data,
|
| + size_t len) OVERRIDE;
|
| + virtual bool OnControlFrameHeaderData(SpdyStreamId stream_id,
|
| + const char* header_data,
|
| + size_t len) OVERRIDE;
|
| + virtual void OnStreamFrameData(SpdyStreamId stream_id,
|
| + const char* data,
|
| + size_t len) OVERRIDE;
|
| + virtual void OnDataFrameHeader(const SpdyDataFrame* frame) OVERRIDE;
|
|
|
| - bool OnControlFrameHeaderData(SpdyStreamId stream_id,
|
| - const char* header_data,
|
| - size_t len);
|
| -
|
| - void OnDataFrameHeader(const SpdyDataFrame* frame);
|
| -
|
| - // spdy_framer_ methods.
|
| + // SpdyFramer methods.
|
| size_t ProcessInput(const char* data, size_t len);
|
| void Reset();
|
| SpdyFramer::SpdyError error_code() const;
|
| @@ -86,6 +122,8 @@
|
| SpdyFrame* CompressFrame(const SpdyFrame& frame);
|
| bool IsCompressible(const SpdyFrame& frame) const;
|
|
|
| + int frames_received() const { return frames_received_; }
|
| +
|
| private:
|
| // The size of the header_buffer_.
|
| enum { kHeaderBufferSize = 32 * 1024 };
|
| @@ -101,6 +139,7 @@
|
| bool header_buffer_valid_;
|
| SpdyStreamId header_stream_id_;
|
| scoped_ptr<SpdyFrame> control_frame_;
|
| + int frames_received_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(BufferedSpdyFramer);
|
| };
|
|
|