Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : 5 : #include "envoy/config/typed_config.h" 6 : #include "envoy/registry/registry.h" 7 : 8 : #include "source/common/formatter/substitution_formatter.h" 9 : 10 : namespace Envoy { 11 : namespace Extensions { 12 : namespace Formatter { 13 : 14 : class ReqWithoutQuery : public ::Envoy::Formatter::FormatterProvider { 15 : public: 16 : ReqWithoutQuery(const std::string& main_header, const std::string& alternative_header, 17 : absl::optional<size_t> max_length); 18 : 19 : absl::optional<std::string> 20 : formatWithContext(const Envoy::Formatter::HttpFormatterContext& context, 21 : const StreamInfo::StreamInfo&) const override; 22 : ProtobufWkt::Value formatValueWithContext(const Envoy::Formatter::HttpFormatterContext& context, 23 : const StreamInfo::StreamInfo&) const override; 24 : 25 : private: 26 : const Http::HeaderEntry* findHeader(const Http::HeaderMap& headers) const; 27 : 28 : Http::LowerCaseString main_header_; 29 : Http::LowerCaseString alternative_header_; 30 : absl::optional<size_t> max_length_; 31 : }; 32 : 33 : class ReqWithoutQueryCommandParser : public ::Envoy::Formatter::CommandParser { 34 : public: 35 0 : ReqWithoutQueryCommandParser() = default; 36 : ::Envoy::Formatter::FormatterProviderPtr parse(const std::string& command, 37 : const std::string& subcommand, 38 : absl::optional<size_t>& max_length) const override; 39 : }; 40 : 41 : } // namespace Formatter 42 : } // namespace Extensions 43 : } // namespace Envoy