C++ API Reference for Intel® Data Analytics Acceleration Library 2020 Update 1

zlibcompression.h
1 /* file: zlibcompression.h */
2 /*******************************************************************************
3 * Copyright 2014-2020 Intel Corporation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *******************************************************************************/
17 
18 /*
19 //++
20 // Implementation of the ZLIB DEFLATE compression and decompression interface.
21 //--
22 */
23 
24 #ifndef __ZLIBCOMPRESSION_H__
25 #define __ZLIBCOMPRESSION_H__
26 #include "data_management/compression/compression.h"
27 
28 namespace daal
29 {
30 namespace data_management
31 {
32 
33 namespace interface1
34 {
49 /* [ZlibCompressionParameter source code] */
50 class DAAL_EXPORT ZlibCompressionParameter : public data_management::CompressionParameter
51 {
52 public:
59  ZlibCompressionParameter( CompressionLevel clevel = defaultLevel, bool bgzHeader = false ) :
60  data_management::CompressionParameter( clevel ), gzHeader(bgzHeader) {}
61 
62  ~ZlibCompressionParameter() {}
63 
64  bool gzHeader;
65 };
66 /* [ZlibCompressionParameter source code] */
67 
78 template<> class DAAL_EXPORT Compressor<zlib> : public data_management::CompressorImpl
79 {
80 public:
84  Compressor();
85  ~Compressor();
92  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
97  void setInputDataBlock( DataBlock &inBlock )
98  {
99  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
100  }
107  void run( byte *outBlock, size_t size, size_t offset );
112  void run( DataBlock &outBlock )
113  {
114  run( outBlock.getPtr(), outBlock.getSize(), 0 );
115  }
116 
117  ZlibCompressionParameter parameter;
119 protected:
120  void initialize();
121 
122 private:
123  void *_strmp;
124  int _flush;
125 
126  void finalizeCompression();
127  void resetCompression();
128 
129 };
130 
141 template<> class DAAL_EXPORT Decompressor<zlib> : public data_management::DecompressorImpl
142 {
143 public:
147  Decompressor();
148  ~Decompressor();
155  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
160  void setInputDataBlock( DataBlock &inBlock )
161  {
162  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
163  }
170  void run( byte *outBlock, size_t size, size_t offset );
175  void run( DataBlock &outBlock )
176  {
177  run( outBlock.getPtr(), outBlock.getSize(), 0 );
178  }
179 
180  ZlibCompressionParameter parameter;
182 protected:
183  void initialize();
184 
185 private:
186  void *_strmp;
187  int _flush;
188 
189  void finalizeCompression();
190  void resetCompression();
191 };
193 } // namespace interface1
194 using interface1::ZlibCompressionParameter;
195 using interface1::Compressor;
196 using interface1::Decompressor;
197 
198 } //namespace data_management
199 } //namespace daal
200 #endif //__ZLIBCOMPRESSION_H
daal::data_management::zlib
Definition: compression.h:66
daal::data_management::interface1::Compressor
Compressor class compresses an input data block and writes results into an output data block...
Definition: compression.h:283
daal::data_management::interface1::Compressor< zlib >::parameter
ZlibCompressionParameter parameter
Definition: zlibcompression.h:117
daal::data_management::interface1::Decompressor< zlib >::run
void run(DataBlock &outBlock)
Definition: zlibcompression.h:175
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:135
daal::data_management::interface1::Decompressor
Decompressor class decompresses an input data block and writes results into an output data block...
Definition: compression.h:305
daal::data_management::interface1::Decompressor< zlib >::parameter
ZlibCompressionParameter parameter
Definition: zlibcompression.h:180
daal::data_management::interface1::DataBlock::getPtr
virtual byte * getPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:125
daal::data_management::interface1::DataBlock
Class that stores a pointer to a byte array and its size. Not responsible for memory management...
Definition: data_block.h:85
daal::data_management::interface1::Decompressor< zlib >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: zlibcompression.h:160
daal::data_management::interface1::Compressor< zlib >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: zlibcompression.h:97
daal::data_management::defaultLevel
Definition: compression.h:46
daal::data_management::interface1::ZlibCompressionParameter::ZlibCompressionParameter
ZlibCompressionParameter(CompressionLevel clevel=defaultLevel, bool bgzHeader=false)
Definition: zlibcompression.h:59
daal::data_management::CompressionLevel
CompressionLevel
Compression levels
Definition: compression.h:44
daal::data_management::interface1::CompressionParameter
Parameters for compression and decompression.
Definition: compression.h:87
daal::data_management::interface1::Compressor< zlib >::run
void run(DataBlock &outBlock)
Definition: zlibcompression.h:112
daal::data_management::interface1::ZlibCompressionParameter
Parameter for zlib compression and decompression.
Definition: zlibcompression.h:50
daal::data_management::interface1::ZlibCompressionParameter::gzHeader
bool gzHeader
Definition: zlibcompression.h:64

For more complete information about compiler optimizations, see our Optimization Notice.