LCOV - code coverage report
Current view: top level - source/extensions/compression/gzip/compressor - config.cc (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 0 47 0.0 %
Date: 2024-01-05 06:35:25 Functions: 0 5 0.0 %

          Line data    Source code
       1             : #include "source/extensions/compression/gzip/compressor/config.h"
       2             : 
       3             : namespace Envoy {
       4             : namespace Extensions {
       5             : namespace Compression {
       6             : namespace Gzip {
       7             : namespace Compressor {
       8             : 
       9             : GzipCompressorFactory::GzipCompressorFactory(
      10             :     const envoy::extensions::compression::gzip::compressor::v3::Gzip& gzip)
      11             :     : compression_level_(compressionLevelEnum(gzip.compression_level())),
      12             :       compression_strategy_(compressionStrategyEnum(gzip.compression_strategy())),
      13             :       memory_level_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(gzip, memory_level, DefaultMemoryLevel)),
      14             :       window_bits_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(gzip, window_bits, DefaultWindowBits) |
      15             :                    GzipHeaderValue),
      16           0 :       chunk_size_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(gzip, chunk_size, DefaultChunkSize)) {}
      17             : 
      18             : ZlibCompressorImpl::CompressionLevel GzipCompressorFactory::compressionLevelEnum(
      19             :     envoy::extensions::compression::gzip::compressor::v3::Gzip::CompressionLevel
      20           0 :         compression_level) {
      21           0 :   switch (compression_level) {
      22           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::BEST_SPEED:
      23           0 :     return ZlibCompressorImpl::CompressionLevel::Speed;
      24           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_2:
      25           0 :     return ZlibCompressorImpl::CompressionLevel::Level2;
      26           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_3:
      27           0 :     return ZlibCompressorImpl::CompressionLevel::Level3;
      28           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_4:
      29           0 :     return ZlibCompressorImpl::CompressionLevel::Level4;
      30           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_5:
      31           0 :     return ZlibCompressorImpl::CompressionLevel::Level5;
      32           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_6:
      33           0 :     return ZlibCompressorImpl::CompressionLevel::Level6;
      34           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_7:
      35           0 :     return ZlibCompressorImpl::CompressionLevel::Level7;
      36           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::COMPRESSION_LEVEL_8:
      37           0 :     return ZlibCompressorImpl::CompressionLevel::Level8;
      38           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::BEST_COMPRESSION:
      39           0 :     return ZlibCompressorImpl::CompressionLevel::Best;
      40           0 :   default:
      41           0 :     return ZlibCompressorImpl::CompressionLevel::Standard;
      42           0 :   }
      43           0 : }
      44             : 
      45             : ZlibCompressorImpl::CompressionStrategy GzipCompressorFactory::compressionStrategyEnum(
      46             :     envoy::extensions::compression::gzip::compressor::v3::Gzip::CompressionStrategy
      47           0 :         compression_strategy) {
      48           0 :   switch (compression_strategy) {
      49           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::FILTERED:
      50           0 :     return ZlibCompressorImpl::CompressionStrategy::Filtered;
      51           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::FIXED:
      52           0 :     return ZlibCompressorImpl::CompressionStrategy::Fixed;
      53           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::HUFFMAN_ONLY:
      54           0 :     return ZlibCompressorImpl::CompressionStrategy::Huffman;
      55           0 :   case envoy::extensions::compression::gzip::compressor::v3::Gzip::RLE:
      56           0 :     return ZlibCompressorImpl::CompressionStrategy::Rle;
      57           0 :   default:
      58           0 :     return ZlibCompressorImpl::CompressionStrategy::Standard;
      59           0 :   }
      60           0 : }
      61             : 
      62           0 : Envoy::Compression::Compressor::CompressorPtr GzipCompressorFactory::createCompressor() {
      63           0 :   auto compressor = std::make_unique<ZlibCompressorImpl>(chunk_size_);
      64           0 :   compressor->init(compression_level_, compression_strategy_, window_bits_, memory_level_);
      65           0 :   return compressor;
      66           0 : }
      67             : 
      68             : Envoy::Compression::Compressor::CompressorFactoryPtr
      69             : GzipCompressorLibraryFactory::createCompressorFactoryFromProtoTyped(
      70             :     const envoy::extensions::compression::gzip::compressor::v3::Gzip& proto_config,
      71           0 :     Server::Configuration::FactoryContext&) {
      72           0 :   return std::make_unique<GzipCompressorFactory>(proto_config);
      73           0 : }
      74             : 
      75             : /**
      76             :  * Static registration for the gzip compressor library. @see NamedCompressorLibraryConfigFactory.
      77             :  */
      78             : REGISTER_FACTORY(GzipCompressorLibraryFactory,
      79             :                  Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory);
      80             : 
      81             : } // namespace Compressor
      82             : } // namespace Gzip
      83             : } // namespace Compression
      84             : } // namespace Extensions
      85             : } // namespace Envoy

Generated by: LCOV version 1.15