summaryrefslogtreecommitdiffstats
path: root/net/spdy/spdy_session.h
diff options
context:
space:
mode:
authorrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-25 08:37:30 +0000
committerrtenneti@chromium.org <rtenneti@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-25 08:37:30 +0000
commit3f2aac72c5766e101a619d66aee526b8251653b6 (patch)
treef465923c36c678d30c66800e4db90be55fc28d4f /net/spdy/spdy_session.h
parent01d65174be5027747da08803ff1acc865b76ec03 (diff)
downloadchromium_src-3f2aac72c5766e101a619d66aee526b8251653b6.zip
chromium_src-3f2aac72c5766e101a619d66aee526b8251653b6.tar.gz
chromium_src-3f2aac72c5766e101a619d66aee526b8251653b6.tar.bz2
Changes to read SPDY headers incrementally.
Added buffered_spdy_framer class to support buffering of spdy control header frames. It calls SpdySession's OnSyn, OnSynReply and OnHeaders methods after receiving all the control frame header data. spdy_framer*.* - integrated changes from the server. Changed OnControlFrameHeaderData to send control frame instead of stream_id. Merged changes from the following issue into this issue. http://codereview.chromium.org/8953012/ R=willchan TEST=network unit tests Review URL: http://codereview.chromium.org/8980015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@115769 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/spdy/spdy_session.h')
-rw-r--r--net/spdy/spdy_session.h30
1 files changed, 17 insertions, 13 deletions
diff --git a/net/spdy/spdy_session.h b/net/spdy/spdy_session.h
index 1cdb7f7..fcdb193 100644
--- a/net/spdy/spdy_session.h
+++ b/net/spdy/spdy_session.h
@@ -26,7 +26,7 @@
#include "net/socket/client_socket_handle.h"
#include "net/socket/ssl_client_socket.h"
#include "net/socket/stream_socket.h"
-#include "net/spdy/spdy_framer.h"
+#include "net/spdy/buffered_spdy_framer.h"
#include "net/spdy/spdy_io_buffer.h"
#include "net/spdy/spdy_protocol.h"
#include "net/spdy/spdy_session_pool.h"
@@ -46,7 +46,7 @@ class SpdyStream;
class SSLInfo;
class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
- public spdy::SpdyFramerVisitorInterface,
+ public spdy::BufferedSpdyFramerVisitorInterface,
public LayeredPool {
public:
// Create a new SpdySession.
@@ -304,12 +304,6 @@ class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
const BoundNetLog& stream_net_log);
// Control frame handlers.
- void OnSyn(const spdy::SpdySynStreamControlFrame& frame,
- const linked_ptr<spdy::SpdyHeaderBlock>& headers);
- void OnSynReply(const spdy::SpdySynReplyControlFrame& frame,
- const linked_ptr<spdy::SpdyHeaderBlock>& headers);
- void OnHeaders(const spdy::SpdyHeadersControlFrame& frame,
- const linked_ptr<spdy::SpdyHeaderBlock>& headers);
void OnRst(const spdy::SpdyRstStreamControlFrame& frame);
void OnGoAway(const spdy::SpdyGoAwayControlFrame& frame);
void OnPing(const spdy::SpdyPingControlFrame& frame);
@@ -398,19 +392,29 @@ class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
// can be deferred to the MessageLoop, so we avoid re-entrancy problems.
void InvokeUserStreamCreationCallback(scoped_refptr<SpdyStream>* stream);
- // SpdyFramerVisitorInterface:
+ // BufferedSpdyFramerVisitorInterface:
virtual void OnError(spdy::SpdyFramer*) OVERRIDE;
virtual void OnStreamFrameData(spdy::SpdyStreamId stream_id,
const char* data,
size_t len) OVERRIDE;
virtual void OnControl(const spdy::SpdyControlFrame* frame) OVERRIDE;
- virtual bool OnControlFrameHeaderData(spdy::SpdyStreamId stream_id,
- const char* header_data,
- size_t len) OVERRIDE;
+ virtual bool OnControlFrameHeaderData(
+ const spdy::SpdyControlFrame* control_frame,
+ const char* header_data,
+ size_t len) OVERRIDE;
virtual void OnDataFrameHeader(const spdy::SpdyDataFrame* frame) OVERRIDE;
+ virtual void OnSyn(const spdy::SpdySynStreamControlFrame& frame,
+ const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
+ virtual void OnSynReply(
+ const spdy::SpdySynReplyControlFrame& frame,
+ const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
+ virtual void OnHeaders(
+ const spdy::SpdyHeadersControlFrame& frame,
+ const linked_ptr<spdy::SpdyHeaderBlock>& headers) OVERRIDE;
+
// --------------------------
// Helper methods for testing
// --------------------------
@@ -507,7 +511,7 @@ class NET_EXPORT SpdySession : public base::RefCounted<SpdySession>,
int certificate_error_code_;
// Spdy Frame state.
- spdy::SpdyFramer spdy_framer_;
+ spdy::BufferedSpdyFramer buffered_spdy_framer_;
// If an error has occurred on the session, the session is effectively
// dead. Record this error here. When no error has occurred, |error_| will