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

bzip2compression.h
1 /* file: bzip2compression.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 bzip2 compression and decompression interface.
21 //--
22 */
23 
24 #ifndef __BZIP2COMPRESSION_H__
25 #define __BZIP2COMPRESSION_H__
26 #include "data_management/compression/compression.h"
27 
28 namespace daal
29 {
35 namespace data_management
36 {
37 
38 namespace interface1
39 {
56 /* [Bzip2CompressionParameter source code] */
57 class DAAL_EXPORT Bzip2CompressionParameter : public data_management::CompressionParameter
58 {
59 public:
65  Bzip2CompressionParameter( CompressionLevel clevel = defaultLevel ) :
66  data_management::CompressionParameter(clevel)
67  {}
68  ~Bzip2CompressionParameter() {}
69 };
70 /* [Bzip2CompressionParameter source code] */
71 
82 template<> class DAAL_EXPORT Compressor<bzip2> : public data_management::CompressorImpl
83 {
84 public:
88  Compressor();
89  ~Compressor();
96  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
101  void setInputDataBlock( DataBlock &inBlock )
102  {
103  return setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
104  }
111  void run( byte *outBlock, size_t size, size_t offset );
116  void run( DataBlock &outBlock )
117  {
118  run( outBlock.getPtr(), outBlock.getSize(), 0 );
119  }
120 
121  Bzip2CompressionParameter parameter;
123 protected:
124  void initialize();
125 
126 private:
127  void *_strmp;
128  int _flush;
129  int _blockSize100k;
130  size_t _comprLen;
131  size_t _comprLenLeft;
132  size_t _comprBlockThres;
133  byte * _startAddr;
134 
135  void finalizeCompression();
136  void resetCompression();
137  void checkBZipError(int error);
138 };
139 
150 template<> class DAAL_EXPORT Decompressor<bzip2> : public data_management::DecompressorImpl
151 {
152 public:
156  Decompressor();
157  ~Decompressor();
164  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
169  void setInputDataBlock( DataBlock &inBlock )
170  {
171  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
172  }
179  void run( byte *outBlock, size_t size, size_t offset );
184  void run( DataBlock &outBlock )
185  {
186  run( outBlock.getPtr(), outBlock.getSize(), 0 );
187  }
188 
189  Bzip2CompressionParameter parameter;
191 protected:
192  void initialize();
193 
194 private:
195  void *_strmp;
196 
197  void finalizeCompression();
198  void resetCompression();
199  void checkBZipError(int error);
200 
201 };
202 } // namespace interface1
203 using interface1::Bzip2CompressionParameter;
204 using interface1::Compressor;
205 using interface1::Decompressor;
206 
207 } //namespace data_management
209 } //namespace daal
210 #endif //__BZIP2COMPRESSION_H
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::Bzip2CompressionParameter::Bzip2CompressionParameter
Bzip2CompressionParameter(CompressionLevel clevel=defaultLevel)
Definition: bzip2compression.h:65
daal::data_management::interface1::Compressor< bzip2 >::run
void run(DataBlock &outBlock)
Definition: bzip2compression.h:116
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::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::bzip2
Definition: compression.h:69
daal::data_management::defaultLevel
Definition: compression.h:46
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< bzip2 >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: bzip2compression.h:101
daal::data_management::interface1::Compressor< bzip2 >::parameter
Bzip2CompressionParameter parameter
Definition: bzip2compression.h:121
daal::data_management::interface1::Bzip2CompressionParameter
Parameter for bzip2 compression and decompression.
Definition: bzip2compression.h:57

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