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

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <cstdint>
       4             : #include <string>
       5             : #include <vector>
       6             : 
       7             : #include "envoy/access_log/access_log.h"
       8             : #include "envoy/runtime/runtime.h"
       9             : 
      10             : #include "source/common/access_log/access_log_impl.h"
      11             : #include "source/common/http/header_utility.h"
      12             : #include "source/common/protobuf/protobuf.h"
      13             : 
      14             : namespace Envoy {
      15             : namespace Extensions {
      16             : namespace AccessLoggers {
      17             : namespace Common {
      18             : 
      19             : /**
      20             :  * Base implementation of Accesslog::Instance handles common filter logic.
      21             :  */
      22             : class ImplBase : public AccessLog::Instance {
      23             : public:
      24         171 :   ImplBase(AccessLog::FilterPtr filter) : filter_(std::move(filter)) {}
      25             : 
      26             :   /**
      27             :    * Log a completed request if the underlying AccessLog `filter_` allows it.
      28             :    */
      29             :   void log(const Formatter::HttpFormatterContext& log_context,
      30             :            const StreamInfo::StreamInfo& stream_info) override;
      31             : 
      32             : private:
      33             :   /**
      34             :    * Log a completed request.
      35             :    * @param context supplies the necessary context to log.
      36             :    * @param stream_info supplies additional information about the request not
      37             :    * contained in the request headers.
      38             :    */
      39             :   virtual void emitLog(const Formatter::HttpFormatterContext& context,
      40             :                        const StreamInfo::StreamInfo& stream_info) PURE;
      41             : 
      42             :   AccessLog::FilterPtr filter_;
      43             : };
      44             : 
      45             : } // namespace Common
      46             : } // namespace AccessLoggers
      47             : } // namespace Extensions
      48             : } // namespace Envoy

Generated by: LCOV version 1.15