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

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

Issue 987823003: Code cleanup. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
« no previous file with comments | « no previous file | net/spdy/spdy_framer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_SPDY_FRAMER_H_ 5 #ifndef NET_SPDY_SPDY_FRAMER_H_
6 #define NET_SPDY_SPDY_FRAMER_H_ 6 #define NET_SPDY_SPDY_FRAMER_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <memory> 10 #include <memory>
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
670 HpackDecoder* GetHpackDecoder(); 670 HpackDecoder* GetHpackDecoder();
671 671
672 size_t GetNumberRequiredContinuationFrames(size_t size); 672 size_t GetNumberRequiredContinuationFrames(size_t size);
673 673
674 void WritePayloadWithContinuation(SpdyFrameBuilder* builder, 674 void WritePayloadWithContinuation(SpdyFrameBuilder* builder,
675 const std::string& hpack_encoding, 675 const std::string& hpack_encoding,
676 SpdyStreamId stream_id, 676 SpdyStreamId stream_id,
677 SpdyFrameType type, 677 SpdyFrameType type,
678 int padding_payload_len); 678 int padding_payload_len);
679 679
680 private:
681 // Deliver the given control frame's uncompressed headers block to the 680 // Deliver the given control frame's uncompressed headers block to the
682 // visitor in chunks. Returns true if the visitor has accepted all of the 681 // visitor in chunks. Returns true if the visitor has accepted all of the
683 // chunks. 682 // chunks.
684 bool IncrementallyDeliverControlFrameHeaderData(SpdyStreamId stream_id, 683 bool IncrementallyDeliverControlFrameHeaderData(SpdyStreamId stream_id,
685 const char* data, 684 const char* data,
686 size_t len); 685 size_t len);
687 686
688 // Utility to copy the given data block to the current frame buffer, up 687 // Utility to copy the given data block to the current frame buffer, up
689 // to the given maximum number of bytes, and update the buffer 688 // to the given maximum number of bytes, and update the buffer
690 // data (pointer and length). Returns the number of bytes 689 // data (pointer and length). Returns the number of bytes
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
738 // are part of the frame's payload, and not the frame's headers. 737 // are part of the frame's payload, and not the frame's headers.
739 size_t remaining_control_header_; 738 size_t remaining_control_header_;
740 739
741 scoped_ptr<char[]> current_frame_buffer_; 740 scoped_ptr<char[]> current_frame_buffer_;
742 // Number of bytes read into the current_frame_buffer_. 741 // Number of bytes read into the current_frame_buffer_.
743 size_t current_frame_buffer_length_; 742 size_t current_frame_buffer_length_;
744 743
745 // The type of the frame currently being read. 744 // The type of the frame currently being read.
746 SpdyFrameType current_frame_type_; 745 SpdyFrameType current_frame_type_;
747 746
748 // The flags field of the frame currently being read.
749 uint8 current_frame_flags_;
750
751 // The total length of the frame currently being read, including frame header. 747 // The total length of the frame currently being read, including frame header.
752 uint32 current_frame_length_; 748 uint32 current_frame_length_;
753 749
754 // The stream ID field of the frame currently being read, if applicable. 750 // The stream ID field of the frame currently being read, if applicable.
755 SpdyStreamId current_frame_stream_id_; 751 SpdyStreamId current_frame_stream_id_;
756 752
753 // Set this to the current stream when we receive a HEADERS, PUSH_PROMISE, or
754 // CONTINUATION frame without the END_HEADERS(0x4) bit set. These frames must
755 // be followed by a CONTINUATION frame, or else we throw a PROTOCOL_ERROR.
756 // A value of 0 indicates that we are not expecting a CONTINUATION frame.
757 SpdyStreamId expect_continuation_;
758
757 // Scratch space for handling SETTINGS frames. 759 // Scratch space for handling SETTINGS frames.
758 // TODO(hkhalil): Unify memory for this scratch space with 760 // TODO(hkhalil): Unify memory for this scratch space with
759 // current_frame_buffer_. 761 // current_frame_buffer_.
760 SpdySettingsScratch settings_scratch_; 762 SpdySettingsScratch settings_scratch_;
761 763
762 SpdyAltSvcScratch altsvc_scratch_; 764 SpdyAltSvcScratch altsvc_scratch_;
763 765
764 bool enable_compression_; // Controls all compression
765 // SPDY header compressors. 766 // SPDY header compressors.
766 scoped_ptr<z_stream> header_compressor_; 767 scoped_ptr<z_stream> header_compressor_;
767 scoped_ptr<z_stream> header_decompressor_; 768 scoped_ptr<z_stream> header_decompressor_;
768 769
769 scoped_ptr<HpackEncoder> hpack_encoder_; 770 scoped_ptr<HpackEncoder> hpack_encoder_;
770 scoped_ptr<HpackDecoder> hpack_decoder_; 771 scoped_ptr<HpackDecoder> hpack_decoder_;
771 772
772 SpdyFramerVisitorInterface* visitor_; 773 SpdyFramerVisitorInterface* visitor_;
773 SpdyFramerDebugVisitorInterface* debug_visitor_; 774 SpdyFramerDebugVisitorInterface* debug_visitor_;
774 775
775 std::string display_protocol_; 776 std::string display_protocol_;
776 777
777 // The protocol version to be spoken/understood by this framer. 778 // The protocol version to be spoken/understood by this framer.
778 const SpdyMajorVersion protocol_version_; 779 const SpdyMajorVersion protocol_version_;
779 780
781 // The flags field of the frame currently being read.
782 uint8 current_frame_flags_;
783
784 // Determines whether HPACK or gzip compression is used.
785 bool enable_compression_;
786
780 // Tracks if we've ever gotten far enough in framing to see a control frame of 787 // Tracks if we've ever gotten far enough in framing to see a control frame of
781 // type SYN_STREAM or SYN_REPLY. 788 // type SYN_STREAM or SYN_REPLY.
782 // 789 //
783 // If we ever get something which looks like a data frame before we've had a 790 // If we ever get something which looks like a data frame before we've had a
784 // SYN, we explicitly check to see if it looks like we got an HTTP response 791 // SYN, we explicitly check to see if it looks like we got an HTTP response
785 // to a SPDY request. This boolean lets us do that. 792 // to a SPDY request. This boolean lets us do that.
786 bool syn_frame_processed_; 793 bool syn_frame_processed_;
787 794
788 // If we ever get a data frame before a SYN frame, we check to see if it 795 // If we ever get a data frame before a SYN frame, we check to see if it
789 // starts with HTTP. If it does, we likely have an HTTP response. This 796 // starts with HTTP. If it does, we likely have an HTTP response. This
790 // isn't guaranteed though: we could have gotten a settings frame and then 797 // isn't guaranteed though: we could have gotten a settings frame and then
791 // corrupt data that just looks like HTTP, but deterministic checking requires 798 // corrupt data that just looks like HTTP, but deterministic checking requires
792 // a lot more state. 799 // a lot more state.
793 bool probable_http_response_; 800 bool probable_http_response_;
794 801
795 // Set this to the current stream when we receive a HEADERS, PUSH_PROMISE, or
796 // CONTINUATION frame without the END_HEADERS(0x4) bit set. These frames must
797 // be followed by a CONTINUATION frame, or else we throw a PROTOCOL_ERROR.
798 // A value of 0 indicates that we are not expecting a CONTINUATION frame.
799 SpdyStreamId expect_continuation_;
800
801 // If a HEADERS frame is followed by a CONTINUATION frame, the FIN/END_STREAM 802 // If a HEADERS frame is followed by a CONTINUATION frame, the FIN/END_STREAM
802 // flag is still carried in the HEADERS frame. If it's set, flip this so that 803 // flag is still carried in the HEADERS frame. If it's set, flip this so that
803 // we know to terminate the stream when the entire header block has been 804 // we know to terminate the stream when the entire header block has been
804 // processed. 805 // processed.
805 bool end_stream_when_done_; 806 bool end_stream_when_done_;
806 }; 807 };
807 808
808 } // namespace net 809 } // namespace net
809 810
810 #endif // NET_SPDY_SPDY_FRAMER_H_ 811 #endif // NET_SPDY_SPDY_FRAMER_H_
OLDNEW
« no previous file with comments | « no previous file | net/spdy/spdy_framer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698