| 15 | |
| 16 | |
| 17 | TCompressionCodecFactory::TCompressionCodecFactory() { |
| 18 | auto gzip = [](auto s) { |
| 19 | return MakeHolder<TZLibDecompress>(s); |
| 20 | }; |
| 21 | |
| 22 | Add("gzip", gzip, [](auto s) { return MakeHolder<TZLibCompress>(s, ZLib::GZip); }); |
| 23 | Add("deflate", gzip, [](auto s) { return MakeHolder<TZLibCompress>(s, ZLib::ZLib); }); |
| 24 | Add("br", [](auto s) { return MakeHolder<TBrotliDecompress>(s); }, [](auto s) { return MakeHolder<TBrotliCompress>(s, 4); }); |
| 25 | Add("x-gzip", gzip, [](auto s) { return MakeHolder<TZLibCompress>(s, ZLib::GZip); }); |
| 26 | Add("x-deflate", gzip, [](auto s) { return MakeHolder<TZLibCompress>(s, ZLib::ZLib); }); |
| 27 | |
| 28 | #if defined(ENABLE_GPL) |
| 29 | const ui16 bs = 32 * 1024; |
| 30 | |
| 31 | Add("y-lzo", [](auto s) { return MakeHolder<TLzoDecompress>(s); }, [bs](auto s) { return MakeHolder<TLazy<TLzoCompress> >(s, bs); }); |
| 32 | Add("y-lzf", [](auto s) { return MakeHolder<TLzfDecompress>(s); }, [bs](auto s) { return MakeHolder<TLazy<TLzfCompress> >(s, bs); }); |
| 33 | Add("y-lzq", [](auto s) { return MakeHolder<TLzqDecompress>(s); }, [bs](auto s) { return MakeHolder<TLazy<TLzqCompress> >(s, bs); }); |
| 34 | #endif |
| 35 | |
| 36 | Add("y-bzip2", [](auto s) { return MakeHolder<TBZipDecompress>(s); }, [](auto s) { return MakeHolder<TBZipCompress>(s); }); |
| 37 | Add("y-lzma", [](auto s) { return MakeHolder<TLzmaDecompress>(s); }, [](auto s) { return MakeHolder<TLzmaCompress>(s); }); |
| 38 | |
| 39 | for (auto codecName : NBlockCodecs::ListAllCodecs()) { |
| 40 | if (codecName.StartsWith("zstd06")) { |
| 41 | continue; |
| 42 | } |
| 43 | |
| 44 | if (codecName.StartsWith("zstd08")) { |
| 45 | continue; |
| 46 | } |
| 47 | |
| 48 | auto codec = NBlockCodecs::Codec(codecName); |
| 49 | |
| 50 | auto enc = [codec](auto s) { |
| 51 | return MakeHolder<NBlockCodecs::TCodedOutput>(s, codec, 32 * 1024); |
| 52 | }; |
| 53 | |
| 54 | auto dec = [codec](auto s) { |
| 55 | return MakeHolder<NBlockCodecs::TDecodedInput>(s, codec); |
| 56 | }; |
| 57 | |
| 58 | Add(TString("z-") + codecName, dec, enc); |
| 59 | } |
| 60 | } |
| 61 | |
| 62 | void TCompressionCodecFactory::Add(TStringBuf name, TDecoderConstructor d, TEncoderConstructor e) { |
| 63 | Strings_.emplace_back(name); |
nothing calls this directly
no test coverage detected