LCOV - code coverage report
Current view: top level - source/extensions/compression/common/compressor - factory_base.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 5 11 45.5 %
Date: 2024-01-05 06:35:25 Functions: 9 12 75.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/compression/compressor/config.h"
       4             : #include "envoy/compression/compressor/factory.h"
       5             : #include "envoy/server/filter_config.h"
       6             : 
       7             : namespace Envoy {
       8             : namespace Extensions {
       9             : namespace Compression {
      10             : namespace Common {
      11             : namespace Compressor {
      12             : 
      13             : template <class ConfigProto>
      14             : class CompressorLibraryFactoryBase
      15             :     : public Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory {
      16             : public:
      17             :   Envoy::Compression::Compressor::CompressorFactoryPtr
      18             :   createCompressorFactoryFromProto(const Protobuf::Message& proto_config,
      19           0 :                                    Server::Configuration::FactoryContext& context) override {
      20           0 :     return createCompressorFactoryFromProtoTyped(
      21           0 :         MessageUtil::downcastAndValidate<const ConfigProto&>(proto_config,
      22           0 :                                                              context.messageValidationVisitor()),
      23           0 :         context);
      24           0 :   }
      25             : 
      26           3 :   ProtobufTypes::MessagePtr createEmptyConfigProto() override {
      27           3 :     return std::make_unique<ConfigProto>();
      28           3 :   }
      29             : 
      30         114 :   std::string name() const override { return name_; }
      31             : 
      32             : protected:
      33           6 :   CompressorLibraryFactoryBase(const std::string& name) : name_(name) {}
      34             : 
      35             : private:
      36             :   virtual Envoy::Compression::Compressor::CompressorFactoryPtr
      37             :   createCompressorFactoryFromProtoTyped(const ConfigProto&,
      38             :                                         Server::Configuration::FactoryContext&) PURE;
      39             : 
      40             :   const std::string name_;
      41             : };
      42             : 
      43             : } // namespace Compressor
      44             : } // namespace Common
      45             : } // namespace Compression
      46             : } // namespace Extensions
      47             : } // namespace Envoy

Generated by: LCOV version 1.15