LCOV - code coverage report
Current view: top level - source/extensions/compression/zstd/compressor - config.h (source / functions) Hit Total Coverage
Test: coverage.dat Lines: 4 9 44.4 %
Date: 2024-01-05 06:35:25 Functions: 2 5 40.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include "envoy/compression/compressor/factory.h"
       4             : #include "envoy/extensions/compression/zstd/compressor/v3/zstd.pb.h"
       5             : #include "envoy/extensions/compression/zstd/compressor/v3/zstd.pb.validate.h"
       6             : 
       7             : #include "source/common/http/headers.h"
       8             : #include "source/extensions/compression/common/compressor/factory_base.h"
       9             : #include "source/extensions/compression/zstd/compressor/zstd_compressor_impl.h"
      10             : 
      11             : namespace Envoy {
      12             : namespace Extensions {
      13             : namespace Compression {
      14             : namespace Zstd {
      15             : namespace Compressor {
      16             : 
      17             : namespace {
      18             : 
      19           0 : const std::string& zstdStatsPrefix() { CONSTRUCT_ON_FIRST_USE(std::string, "zstd."); }
      20           2 : const std::string& zstdExtensionName() {
      21           2 :   CONSTRUCT_ON_FIRST_USE(std::string, "envoy.compression.zstd.compressor");
      22           2 : }
      23             : 
      24             : } // namespace
      25             : 
      26             : class ZstdCompressorFactory : public Envoy::Compression::Compressor::CompressorFactory {
      27             : public:
      28             :   ZstdCompressorFactory(const envoy::extensions::compression::zstd::compressor::v3::Zstd& zstd,
      29             :                         Event::Dispatcher& dispatcher, Api::Api& api,
      30             :                         ThreadLocal::SlotAllocator& tls);
      31             : 
      32             :   // Envoy::Compression::Compressor::CompressorFactory
      33             :   Envoy::Compression::Compressor::CompressorPtr createCompressor() override;
      34           0 :   const std::string& statsPrefix() const override { return zstdStatsPrefix(); }
      35           0 :   const std::string& contentEncoding() const override {
      36           0 :     return Http::CustomHeaders::get().ContentEncodingValues.Zstd;
      37           0 :   }
      38             : 
      39             : private:
      40             :   const uint32_t compression_level_;
      41             :   const bool enable_checksum_;
      42             :   const uint32_t strategy_;
      43             :   const uint32_t chunk_size_;
      44             :   ZstdCDictManagerPtr cdict_manager_{nullptr};
      45             : };
      46             : 
      47             : class ZstdCompressorLibraryFactory
      48             :     : public Compression::Common::Compressor::CompressorLibraryFactoryBase<
      49             :           envoy::extensions::compression::zstd::compressor::v3::Zstd> {
      50             : public:
      51           2 :   ZstdCompressorLibraryFactory() : CompressorLibraryFactoryBase(zstdExtensionName()) {}
      52             : 
      53             : private:
      54             :   Envoy::Compression::Compressor::CompressorFactoryPtr createCompressorFactoryFromProtoTyped(
      55             :       const envoy::extensions::compression::zstd::compressor::v3::Zstd& config,
      56             :       Server::Configuration::FactoryContext& context) override;
      57             : };
      58             : 
      59             : DECLARE_FACTORY(ZstdCompressorLibraryFactory);
      60             : 
      61             : } // namespace Compressor
      62             : } // namespace Zstd
      63             : } // namespace Compression
      64             : } // namespace Extensions
      65             : } // namespace Envoy

Generated by: LCOV version 1.15