diff options
Diffstat (limited to 'chromium/net/tools/quic/quic_spdy_client_stream.h')
-rw-r--r-- | chromium/net/tools/quic/quic_spdy_client_stream.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/chromium/net/tools/quic/quic_spdy_client_stream.h b/chromium/net/tools/quic/quic_spdy_client_stream.h new file mode 100644 index 00000000000..ec4d25747f7 --- /dev/null +++ b/chromium/net/tools/quic/quic_spdy_client_stream.h @@ -0,0 +1,47 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef NET_TOOLS_QUIC_QUIC_SPDY_CLIENT_STREAM_H_ +#define NET_TOOLS_QUIC_QUIC_SPDY_CLIENT_STREAM_H_ + +#include "base/strings/string_piece.h" +#include "net/base/io_buffer.h" +#include "net/tools/quic/quic_reliable_client_stream.h" + +namespace net { + +class BalsaHeaders; + +namespace tools { + +class QuicClientSession; + +// All this does right now is send an SPDY request, and aggregate the +// SPDY response. +class QuicSpdyClientStream : public QuicReliableClientStream { + public: + QuicSpdyClientStream(QuicStreamId id, QuicClientSession* session); + virtual ~QuicSpdyClientStream(); + + // ReliableQuicStream implementation called by the session when there's + // data for us. + virtual uint32 ProcessData(const char* data, uint32 data_len) OVERRIDE; + + virtual void TerminateFromPeer(bool half_close) OVERRIDE; + + virtual ssize_t SendRequest(const BalsaHeaders& headers, + base::StringPiece body, + bool fin) OVERRIDE; + + private: + int ParseResponseHeaders(); + + scoped_refptr<GrowableIOBuffer> read_buf_; + bool response_headers_received_; +}; + +} // namespace tools +} // namespace net + +#endif // NET_TOOLS_QUIC_QUIC_SPDY_CLIENT_STREAM_H_ |