Line data Source code
1 : #include "source/extensions/compression/brotli/compressor/config.h" 2 : 3 : namespace Envoy { 4 : namespace Extensions { 5 : namespace Compression { 6 : namespace Brotli { 7 : namespace Compressor { 8 : 9 : BrotliCompressorFactory::BrotliCompressorFactory( 10 : const envoy::extensions::compression::brotli::compressor::v3::Brotli& brotli) 11 : : chunk_size_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(brotli, chunk_size, DefaultChunkSize)), 12 : disable_literal_context_modeling_(brotli.disable_literal_context_modeling()), 13 : encoder_mode_(encoderModeEnum(brotli.encoder_mode())), 14 : input_block_bits_( 15 : PROTOBUF_GET_WRAPPED_OR_DEFAULT(brotli, input_block_bits, DefaultInputBlockBits)), 16 : quality_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(brotli, quality, DefaultQuality)), 17 0 : window_bits_(PROTOBUF_GET_WRAPPED_OR_DEFAULT(brotli, window_bits, DefaultWindowBits)) {} 18 : 19 0 : Envoy::Compression::Compressor::CompressorPtr BrotliCompressorFactory::createCompressor() { 20 0 : return std::make_unique<BrotliCompressorImpl>(quality_, window_bits_, input_block_bits_, 21 0 : disable_literal_context_modeling_, encoder_mode_, 22 0 : chunk_size_); 23 0 : } 24 : 25 : BrotliCompressorImpl::EncoderMode BrotliCompressorFactory::encoderModeEnum( 26 0 : envoy::extensions::compression::brotli::compressor::v3::Brotli::EncoderMode encoder_mode) { 27 0 : switch (encoder_mode) { 28 0 : case envoy::extensions::compression::brotli::compressor::v3::Brotli::GENERIC: 29 0 : return BrotliCompressorImpl::EncoderMode::Generic; 30 0 : case envoy::extensions::compression::brotli::compressor::v3::Brotli::TEXT: 31 0 : return BrotliCompressorImpl::EncoderMode::Text; 32 0 : case envoy::extensions::compression::brotli::compressor::v3::Brotli::FONT: 33 0 : return BrotliCompressorImpl::EncoderMode::Font; 34 0 : default: 35 0 : return BrotliCompressorImpl::EncoderMode::Default; 36 0 : } 37 0 : } 38 : 39 : Envoy::Compression::Compressor::CompressorFactoryPtr 40 : BrotliCompressorLibraryFactory::createCompressorFactoryFromProtoTyped( 41 : const envoy::extensions::compression::brotli::compressor::v3::Brotli& proto_config, 42 0 : Server::Configuration::FactoryContext&) { 43 0 : return std::make_unique<BrotliCompressorFactory>(proto_config); 44 0 : } 45 : 46 : /** 47 : * Static registration for the brotli compressor library. @see NamedCompressorLibraryConfigFactory. 48 : */ 49 : REGISTER_FACTORY(BrotliCompressorLibraryFactory, 50 : Envoy::Compression::Compressor::NamedCompressorLibraryConfigFactory); 51 : 52 : } // namespace Compressor 53 : } // namespace Brotli 54 : } // namespace Compression 55 : } // namespace Extensions 56 : } // namespace Envoy