blob: db7588bb816ba3a4938a5bb3e5e2d497fc916660 [file] [log] [blame]
// Copyright (c) 2018 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 QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_
#define QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_
#include <functional>
#include <utility>
#include "quiche/quic/core/http/quic_spdy_client_stream.h"
#include "quiche/common/quiche_callbacks.h"
namespace quic {
class QuicSimpleClientStream : public QuicSpdyClientStream {
public:
QuicSimpleClientStream(QuicStreamId id, QuicSpdyClientSession* session,
StreamType type, bool drop_response_body)
: QuicSpdyClientStream(id, session, type),
drop_response_body_(drop_response_body) {}
void OnBodyAvailable() override;
void set_on_interim_headers(
quiche::MultiUseCallback<void(const spdy::Http2HeaderBlock&)>
on_interim_headers) {
on_interim_headers_ = std::move(on_interim_headers);
}
protected:
bool ParseAndValidateStatusCode() override;
private:
quiche::MultiUseCallback<void(const spdy::Http2HeaderBlock&)>
on_interim_headers_;
const bool drop_response_body_;
};
} // namespace quic
#endif // QUICHE_QUIC_TOOLS_QUIC_SIMPLE_CLIENT_STREAM_H_