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

          Line data    Source code
       1             : #include "source/extensions/compression/zstd/compressor/config.h"
       2             : 
       3             : namespace Envoy {
       4             : namespace Extensions {
       5             : namespace Compression {
       6             : namespace Zstd {
       7             : namespace Compressor {
       8             : 
       9             : ZstdCompressorFactory::ZstdCompressorFactory(
      10             :     const envoy::extensions::compression::zstd::compressor::v3::Zstd& zstd,
      11             :     Event::Dispatcher& dispatcher, Api::Api& api, ThreadLocal::SlotAllocator& tls)
      12             :     : compression_level_(
      13             :           PROTOBUF_GET_WRAPPED_OR_DEFAULT(zstd, compression_level, ZSTD_CLEVEL_DEFAULT)),
      14             :       enable_checksum_(zstd.enable_checksum()), strategy_(zstd.strategy()),
      15           0 :       chunk_size_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(zstd, chunk_size, ZSTD_CStreamOutSize())) {
      16           0 :   if (zstd.has_dictionary()) {
      17           0 :     Protobuf::RepeatedPtrField<envoy::config::core::v3::DataSource> dictionaries;
      18           0 :     dictionaries.Add()->CopyFrom(zstd.dictionary());
      19           0 :     cdict_manager_ = std::make_unique<ZstdCDictManager>(
      20           0 :         dictionaries, dispatcher, api, tls, true,
      21           0 :         [this](const void* dict_buffer, size_t dict_size) -> ZSTD_CDict* {
      22           0 :           return ZSTD_createCDict(dict_buffer, dict_size, compression_level_);
      23           0 :         });
      24           0 :   }
      25           0 : }
      26             : 
      27           0 : Envoy::Compression::Compressor::CompressorPtr ZstdCompressorFactory::createCompressor() {
      28           0 :   return std::make_unique<ZstdCompressorImpl>(compression_level_, enable_checksum_, strategy_,
      29           0 :                                               cdict_manager_, chunk_size_);
      30           0 : }
      31             : 
      32             : Envoy::Compression::Compressor::CompressorFactoryPtr
      33             : ZstdCompressorLibraryFactory::createCompressorFactoryFromProtoTyped(
      34             :     const envoy::extensions::compression::zstd::compressor::v3::Zstd& proto_config,
      35           0 :     Server::Configuration::FactoryContext& context) {
      36           0 :   auto& server_context = context.serverFactoryContext();
      37           0 :   return std::make_unique<ZstdCompressorFactory>(
      38           0 :       proto_config, server_context.mainThreadDispatcher(), server_context.api(),
      39           0 :       server_context.threadLocal());
      40           0 : }
      41             : 
      42             : /**
      43             :  * Static registration for the zstd compressor library. @see NamedCompressorLibraryConfigFactory.
      44             :  */
      45             : REGISTER_FACTORY(ZstdCompressorLibraryFactory,
      46             :                  Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory);
      47             : 
      48             : } // namespace Compressor
      49             : } // namespace Zstd
      50             : } // namespace Compression
      51             : } // namespace Extensions
      52             : } // namespace Envoy

Generated by: LCOV version 1.15