1
#pragma once
2

            
3
#include <memory>
4

            
5
#include "source/common/http/http1/parser.h"
6

            
7
namespace Envoy {
8
namespace Http {
9
namespace Http1 {
10

            
11
class LegacyHttpParserImpl : public Parser {
12
public:
13
  LegacyHttpParserImpl(MessageType type, ParserCallbacks* data);
14
  ~LegacyHttpParserImpl() override;
15

            
16
  // Http1::Parser
17
  size_t execute(const char* slice, int len) override;
18
  void resume() override;
19
  CallbackResult pause() override;
20
  ParserStatus getStatus() const override;
21
  Http::Code statusCode() const override;
22
  bool isHttp11() const override;
23
  absl::optional<uint64_t> contentLength() const override;
24
  bool isChunked() const override;
25
  absl::string_view methodName() const override;
26
  absl::string_view errorMessage() const override;
27
  int hasTransferEncoding() const override;
28

            
29
private:
30
  class Impl;
31
  std::unique_ptr<Impl> impl_;
32
};
33

            
34
} // namespace Http1
35
} // namespace Http
36
} // namespace Envoy