xref: /aosp_15_r20/external/cronet/net/third_party/quiche/src/quiche/quic/tools/quic_simple_client_stream.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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