| 84 | Codec::~Codec() {} |
| 85 | |
| 86 | Status Codec::CreateCompressor(MemPool* mem_pool, bool reuse, const CodecInfo& codec_info, |
| 87 | scoped_ptr<Codec>* compressor) { |
| 88 | THdfsCompression::type format = codec_info.format_; |
| 89 | switch (format) { |
| 90 | case THdfsCompression::NONE: |
| 91 | compressor->reset(nullptr); |
| 92 | return Status::OK(); |
| 93 | case THdfsCompression::GZIP: |
| 94 | compressor->reset(new GzipCompressor(GzipCompressor::GZIP, mem_pool, reuse, |
| 95 | codec_info.compression_level_)); |
| 96 | break; |
| 97 | case THdfsCompression::DEFAULT: |
| 98 | case THdfsCompression::ZLIB: |
| 99 | compressor->reset(new GzipCompressor(GzipCompressor::ZLIB, mem_pool, reuse, |
| 100 | codec_info.compression_level_)); |
| 101 | break; |
| 102 | case THdfsCompression::DEFLATE: |
| 103 | compressor->reset(new GzipCompressor(GzipCompressor::DEFLATE, mem_pool, reuse, |
| 104 | codec_info.compression_level_)); |
| 105 | break; |
| 106 | case THdfsCompression::BZIP2: |
| 107 | compressor->reset(new BzipCompressor(mem_pool, reuse, |
| 108 | codec_info.compression_level_)); |
| 109 | break; |
| 110 | case THdfsCompression::SNAPPY_BLOCKED: |
| 111 | compressor->reset(new SnappyBlockCompressor(mem_pool, reuse)); |
| 112 | break; |
| 113 | case THdfsCompression::SNAPPY: |
| 114 | compressor->reset(new SnappyCompressor(mem_pool, reuse)); |
| 115 | break; |
| 116 | case THdfsCompression::LZ4: |
| 117 | compressor->reset(new Lz4Compressor(mem_pool, reuse, |
| 118 | codec_info.compression_level_)); |
| 119 | break; |
| 120 | case THdfsCompression::ZSTD: |
| 121 | compressor->reset(new ZstandardCompressor(mem_pool, reuse, |
| 122 | codec_info.compression_level_)); |
| 123 | break; |
| 124 | case THdfsCompression::LZ4_BLOCKED: |
| 125 | compressor->reset(new Lz4BlockCompressor(mem_pool, reuse, |
| 126 | codec_info.compression_level_)); |
| 127 | break; |
| 128 | default: { |
| 129 | if (format == THdfsCompression::LZO) return Status(NO_LZO_MSG); |
| 130 | return Status(Substitute("Unsupported codec: $0", format)); |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | return (*compressor)->Init(); |
| 135 | } |
| 136 | |
| 137 | Status Codec::ValidateCompressionLevel(THdfsCompression::type format, |
| 138 | int compression_level) { |
nothing calls this directly
no test coverage detected