| Index: net/spdy/spdy_framer.h
|
| diff --git a/net/spdy/spdy_framer.h b/net/spdy/spdy_framer.h
|
| index a97eddbd1c07b737a901ab13a57ec322f569dd73..436ee6c04e3176173357273d0552140d054b62a9 100644
|
| --- a/net/spdy/spdy_framer.h
|
| +++ b/net/spdy/spdy_framer.h
|
| @@ -44,6 +44,10 @@ class TestSpdyVisitor;
|
|
|
| } // namespace test
|
|
|
| +// A datastructure for holding a set of headers from either a
|
| +// SYN_STREAM or SYN_REPLY frame.
|
| +typedef std::map<std::string, std::string> SpdyHeaderBlock;
|
| +
|
| // A datastructure for holding the ID and flag fields for SETTINGS.
|
| // Conveniently handles converstion to/from wire format.
|
| class NET_EXPORT_PRIVATE SettingsFlagsAndId {
|
| @@ -72,6 +76,7 @@ typedef std::pair<SpdySettingsFlags, uint32> SettingsFlagsAndValue;
|
| typedef std::map<SpdySettingsIds, SettingsFlagsAndValue> SettingsMap;
|
|
|
| // A datastrcture for holding the contents of a CREDENTIAL frame.
|
| +// TODO(hkhalil): Remove, use SpdyCredentialIR instead.
|
| struct NET_EXPORT_PRIVATE SpdyCredential {
|
| SpdyCredential();
|
| ~SpdyCredential();
|
| @@ -299,6 +304,7 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| const SpdyHeaderBlock* headers);
|
|
|
| // Retrieve serialized length of SpdyHeaderBlock.
|
| + // TODO(hkhalil): Change to const reference instead of const pointer.
|
| static size_t GetSerializedLength(const int spdy_version,
|
| const SpdyHeaderBlock* headers);
|
|
|
| @@ -360,6 +366,7 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| SpdyControlFlags flags,
|
| bool compressed,
|
| const SpdyHeaderBlock* headers);
|
| + SpdySerializedFrame* SerializeSynStream(const SpdySynStreamIR& syn_stream);
|
|
|
| // Create a SpdySynReplyControlFrame.
|
| // |stream_id| is the stream for this frame.
|
| @@ -371,17 +378,22 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| SpdyControlFlags flags,
|
| bool compressed,
|
| const SpdyHeaderBlock* headers);
|
| + SpdySerializedFrame* SerializeSynReply(const SpdySynReplyIR& syn_reply);
|
|
|
| SpdyRstStreamControlFrame* CreateRstStream(SpdyStreamId stream_id,
|
| SpdyRstStreamStatus status) const;
|
| + SpdySerializedFrame* SerializeRstStream(
|
| + const SpdyRstStreamIR& rst_stream) const;
|
|
|
| // Creates an instance of SpdySettingsControlFrame. The SETTINGS frame is
|
| // used to communicate name/value pairs relevant to the communication channel.
|
| SpdySettingsControlFrame* CreateSettings(const SettingsMap& values) const;
|
| + SpdySerializedFrame* SerializeSettings(const SpdySettingsIR& settings) const;
|
|
|
| // Creates an instance of SpdyPingControlFrame. The unique_id is used to
|
| // identify the ping request/response.
|
| SpdyPingControlFrame* CreatePingFrame(uint32 unique_id) const;
|
| + SpdySerializedFrame* SerializePing(const SpdyPingIR& ping) const;
|
|
|
| // Creates an instance of SpdyGoAwayControlFrame. The GOAWAY frame is used
|
| // prior to the shutting down of the TCP connection, and includes the
|
| @@ -389,6 +401,7 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| // to completion.
|
| SpdyGoAwayControlFrame* CreateGoAway(SpdyStreamId last_accepted_stream_id,
|
| SpdyGoAwayStatus status) const;
|
| + SpdySerializedFrame* SerializeGoAway(const SpdyGoAwayIR& goaway) const;
|
|
|
| // Creates an instance of SpdyHeadersControlFrame. The HEADERS frame is used
|
| // for sending additional headers outside of a SYN_STREAM/SYN_REPLY. The
|
| @@ -397,18 +410,23 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| SpdyControlFlags flags,
|
| bool compressed,
|
| const SpdyHeaderBlock* headers);
|
| + SpdySerializedFrame* SerializeHeaders(const SpdyHeadersIR& headers);
|
|
|
| // Creates an instance of SpdyWindowUpdateControlFrame. The WINDOW_UPDATE
|
| // frame is used to implement per stream flow control in SPDY.
|
| SpdyWindowUpdateControlFrame* CreateWindowUpdate(
|
| SpdyStreamId stream_id,
|
| uint32 delta_window_size) const;
|
| + SpdySerializedFrame* SerializeWindowUpdate(
|
| + const SpdyWindowUpdateIR& window_update) const;
|
|
|
| // Creates an instance of SpdyCredentialControlFrame. The CREDENTIAL
|
| // frame is used to send a client certificate to the server when
|
| // request more than one origin are sent over the same SPDY session.
|
| SpdyCredentialControlFrame* CreateCredentialFrame(
|
| const SpdyCredential& credential) const;
|
| + SpdySerializedFrame* SerializeCredential(
|
| + const SpdyCredentialIR& credential) const;
|
|
|
| // Given a SpdySettingsControlFrame, extract the settings.
|
| // Returns true on successful parse, false otherwise.
|
| @@ -430,6 +448,7 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| // To mark this frame as the last data frame, enable DATA_FLAG_FIN.
|
| SpdyDataFrame* CreateDataFrame(SpdyStreamId stream_id, const char* data,
|
| uint32 len, SpdyDataFlags flags) const;
|
| + SpdySerializedFrame* SerializeData(const SpdyDataIR& data) const;
|
|
|
| // NOTES about frame compression.
|
| // We want spdy to compress headers across the entire session. As long as
|
| @@ -467,7 +486,9 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| const SpdyControlFrame* control_frame);
|
|
|
| // For ease of testing and experimentation we can tweak compression on/off.
|
| - void set_enable_compression(bool value);
|
| + void set_enable_compression(bool value) {
|
| + enable_compression_ = value;
|
| + }
|
|
|
| // Used only in log messages.
|
| void set_display_protocol(const std::string& protocol) {
|
| @@ -560,6 +581,10 @@ class NET_EXPORT_PRIVATE SpdyFramer {
|
| void WriteHeaderBlockToZ(const SpdyHeaderBlock* headers,
|
| z_stream* out) const;
|
|
|
| + void SerializeNameValueBlock(
|
| + SpdyFrameBuilder* builder,
|
| + const SpdyFrameWithNameValueBlockIR& frame) const;
|
| +
|
| // Set the error code and moves the framer into the error state.
|
| void set_error(SpdyError error);
|
|
|
|
|