MCPcopy
hub / github.com/IBM/sarama / gzipCompress

Function gzipCompress

compress.go:129–176  ·  view source on GitHub ↗
(level int, data []byte)

Source from the content-addressed store, hash-verified

127}
128
129func gzipCompress(level int, data []byte) ([]byte, error) {
130 var (
131 buf bytes.Buffer
132 writer *gzip.Writer
133 pool *sync.Pool
134 )
135
136 switch level {
137 case CompressionLevelDefault:
138 pool = &gzipWriterPool
139 case 1:
140 pool = &gzipWriterPoolForCompressionLevel1
141 case 2:
142 pool = &gzipWriterPoolForCompressionLevel2
143 case 3:
144 pool = &gzipWriterPoolForCompressionLevel3
145 case 4:
146 pool = &gzipWriterPoolForCompressionLevel4
147 case 5:
148 pool = &gzipWriterPoolForCompressionLevel5
149 case 6:
150 pool = &gzipWriterPoolForCompressionLevel6
151 case 7:
152 pool = &gzipWriterPoolForCompressionLevel7
153 case 8:
154 pool = &gzipWriterPoolForCompressionLevel8
155 case 9:
156 pool = &gzipWriterPoolForCompressionLevel9
157 default:
158 var err error
159 writer, err = gzip.NewWriterLevel(&buf, level)
160 if err != nil {
161 return nil, err
162 }
163 }
164 if pool != nil {
165 writer = pool.Get().(*gzip.Writer)
166 writer.Reset(&buf)
167 defer pool.Put(writer)
168 }
169 if _, err := writer.Write(data); err != nil {
170 return nil, err
171 }
172 if err := writer.Close(); err != nil {
173 return nil, err
174 }
175 return buf.Bytes(), nil
176}
177
178func lz4Compress(data []byte) ([]byte, error) {
179 writer := lz4WriterPool.Get().(*lz4.Writer)

Callers 1

compressFunction · 0.85

Calls 3

WriteMethod · 0.80
CloseMethod · 0.65
GetMethod · 0.45

Tested by

no test coverage detected