LCOV - code coverage report
Current view: top level - source/extensions/formatter/cel - cel.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 1 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 1 0.0 %

          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             : #include "source/extensions/filters/common/expr/evaluator.h"
      10             : 
      11             : namespace Envoy {
      12             : namespace Extensions {
      13             : namespace Formatter {
      14             : 
      15             : class CELFormatter : public ::Envoy::Formatter::FormatterProvider {
      16             : public:
      17             :   CELFormatter(const ::Envoy::LocalInfo::LocalInfo& local_info,
      18             :                Extensions::Filters::Common::Expr::BuilderInstanceSharedPtr,
      19             :                const google::api::expr::v1alpha1::Expr&, absl::optional<size_t>&);
      20             : 
      21             :   absl::optional<std::string>
      22             :   formatWithContext(const Envoy::Formatter::HttpFormatterContext& context,
      23             :                     const StreamInfo::StreamInfo&) const override;
      24             :   ProtobufWkt::Value formatValueWithContext(const Envoy::Formatter::HttpFormatterContext& context,
      25             :                                             const StreamInfo::StreamInfo&) const override;
      26             : 
      27             : private:
      28             :   const ::Envoy::LocalInfo::LocalInfo& local_info_;
      29             :   Extensions::Filters::Common::Expr::BuilderInstanceSharedPtr expr_builder_;
      30             :   const google::api::expr::v1alpha1::Expr parsed_expr_;
      31             :   const absl::optional<size_t> max_length_;
      32             :   Extensions::Filters::Common::Expr::ExpressionPtr compiled_expr_;
      33             : };
      34             : 
      35             : class CELFormatterCommandParser : public ::Envoy::Formatter::CommandParser {
      36             : public:
      37             :   CELFormatterCommandParser(Server::Configuration::CommonFactoryContext& context)
      38             :       : local_info_(context.localInfo()),
      39           0 :         expr_builder_(Extensions::Filters::Common::Expr::getBuilder(context)){};
      40             :   ::Envoy::Formatter::FormatterProviderPtr parse(const std::string& command,
      41             :                                                  const std::string& subcommand,
      42             :                                                  absl::optional<size_t>& max_length) const override;
      43             : 
      44             : private:
      45             :   const ::Envoy::LocalInfo::LocalInfo& local_info_;
      46             :   Extensions::Filters::Common::Expr::BuilderInstanceSharedPtr expr_builder_;
      47             : };
      48             : 
      49             : } // namespace Formatter
      50             : } // namespace Extensions
      51             : } // namespace Envoy

Generated by: LCOV version 1.15