1 // Copyright (c) 2018 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_ 6 #define QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_ 7 8 #include <functional> 9 #include <utility> 10 11 #include "quiche/quic/core/http/quic_spdy_client_stream.h" 12 #include "quiche/common/quiche_callbacks.h" 13 14 namespace quic { 15 16 class QuicSimpleClientStream : public QuicSpdyClientStream { 17 public: QuicSimpleClientStream(QuicStreamId id,QuicSpdyClientSession * session,StreamType type,bool drop_response_body)18 QuicSimpleClientStream(QuicStreamId id, QuicSpdyClientSession* session, 19 StreamType type, bool drop_response_body) 20 : QuicSpdyClientStream(id, session, type), 21 drop_response_body_(drop_response_body) {} 22 void OnBodyAvailable() override; 23 set_on_interim_headers(quiche::MultiUseCallback<void (const spdy::Http2HeaderBlock &)> on_interim_headers)24 void set_on_interim_headers( 25 quiche::MultiUseCallback<void(const spdy::Http2HeaderBlock&)> 26 on_interim_headers) { 27 on_interim_headers_ = std::move(on_interim_headers); 28 } 29 30 protected: 31 bool ParseAndValidateStatusCode() override; 32 33 private: 34 quiche::MultiUseCallback<void(const spdy::Http2HeaderBlock&)> 35 on_interim_headers_; 36 const bool drop_response_body_; 37 }; 38 39 } // namespace quic 40 41 #endif // QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_ 42