blob: 42a71e018e787d35ed6e2c6758aa1f41bb54a678 [file] [log] [blame]
#ifndef NET_THIRD_PARTY_QUIC_CORE_QPACK_QPACK_DECODER_TEST_UTILS_H_
#define NET_THIRD_PARTY_QUIC_CORE_QPACK_QPACK_DECODER_TEST_UTILS_H_
#include "net/third_party/quic/core/qpack/qpack_decoder.h"
#include "net/third_party/quic/core/qpack/qpack_test_utils.h"
#include "net/third_party/quic/platform/api/quic_string_piece.h"
#include "net/third_party/spdy/core/spdy_header_block.h"
namespace quic {
namespace test {
// HeadersHandlerInterface implementation that collects decoded headers
// into a SpdyHeaderBlock.
class TestHeadersHandler : public QpackDecoder::HeadersHandlerInterface {
public:
TestHeadersHandler();
// HeadersHandlerInterface implementation:
void OnHeaderDecoded(QuicStringPiece name, QuicStringPiece value) override;
void OnDecodingCompleted() override;
void OnDecodingErrorDetected(QuicStringPiece error_message) override;
spdy::SpdyHeaderBlock ReleaseHeaderList();
bool decoding_completed() const;
bool decoding_error_detected() const;
private:
spdy::SpdyHeaderBlock header_list_;
bool decoding_completed_;
bool decoding_error_detected_;
};
void QpackDecode(QpackDecoder::HeadersHandlerInterface* handler,
const FragmentSizeGenerator& fragment_size_generator,
QuicStringPiece data);
} // namespace test
} // namespace quic
#endif // NET_THIRD_PARTY_QUIC_CORE_QPACK_QPACK_DECODER_TEST_UTILS_H_