C++ API Reference for Intel® Data Analytics Acceleration Library 2019

bzip2compression.h
1 /* file: bzip2compression.h */
2 /*******************************************************************************
3 * Copyright 2014-2018 Intel Corporation.
4 *
5 * This software and the related documents are Intel copyrighted materials, and
6 * your use of them is governed by the express license under which they were
7 * provided to you (License). Unless the License provides otherwise, you may not
8 * use, modify, copy, publish, distribute, disclose or transmit this software or
9 * the related documents without Intel's prior written permission.
10 *
11 * This software and the related documents are provided as is, with no express
12 * or implied warranties, other than those that are expressly stated in the
13 * License.
14 *******************************************************************************/
15 
16 /*
17 //++
18 // Implementation of the bzip2 compression and decompression interface.
19 //--
20 */
21 
22 #ifndef __BZIP2COMPRESSION_H__
23 #define __BZIP2COMPRESSION_H__
24 #include "data_management/compression/compression.h"
25 
26 namespace daal
27 {
33 namespace data_management
34 {
35 
36 namespace interface1
37 {
54 /* [Bzip2CompressionParameter source code] */
55 class DAAL_EXPORT Bzip2CompressionParameter : public data_management::CompressionParameter
56 {
57 public:
63  Bzip2CompressionParameter( CompressionLevel clevel = defaultLevel ) :
64  data_management::CompressionParameter(clevel)
65  {}
66  ~Bzip2CompressionParameter() {}
67 };
68 /* [Bzip2CompressionParameter source code] */
69 
80 template<> class DAAL_EXPORT Compressor<bzip2> : public data_management::CompressorImpl
81 {
82 public:
86  Compressor();
87  ~Compressor();
94  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
99  void setInputDataBlock( DataBlock &inBlock )
100  {
101  return setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
102  }
109  void run( byte *outBlock, size_t size, size_t offset );
114  void run( DataBlock &outBlock )
115  {
116  run( outBlock.getPtr(), outBlock.getSize(), 0 );
117  }
118 
119  Bzip2CompressionParameter parameter;
121 protected:
122  void initialize();
123 
124 private:
125  void *_strmp;
126  int _flush;
127  int _blockSize100k;
128  size_t _comprLen;
129  size_t _comprLenLeft;
130  size_t _comprBlockThres;
131  byte * _startAddr;
132 
133  void finalizeCompression();
134  void resetCompression();
135  void checkBZipError(int error);
136 };
137 
148 template<> class DAAL_EXPORT Decompressor<bzip2> : public data_management::DecompressorImpl
149 {
150 public:
154  Decompressor();
155  ~Decompressor();
162  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
167  void setInputDataBlock( DataBlock &inBlock )
168  {
169  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
170  }
177  void run( byte *outBlock, size_t size, size_t offset );
182  void run( DataBlock &outBlock )
183  {
184  run( outBlock.getPtr(), outBlock.getSize(), 0 );
185  }
186 
187  Bzip2CompressionParameter parameter;
189 protected:
190  void initialize();
191 
192 private:
193  void *_strmp;
194 
195  void finalizeCompression();
196  void resetCompression();
197  void checkBZipError(int error);
198 
199 };
200 } // namespace interface1
201 using interface1::Bzip2CompressionParameter;
202 using interface1::Compressor;
203 using interface1::Decompressor;
204 
205 } //namespace data_management
207 } //namespace daal
208 #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:281
daal::data_management::interface1::Bzip2CompressionParameter
Parameter for bzip2 compression and decompression.
Definition: bzip2compression.h:55
daal
Definition: algorithm_base_common.h:31
daal::data_management::interface1::Bzip2CompressionParameter::Bzip2CompressionParameter
Bzip2CompressionParameter(CompressionLevel clevel=defaultLevel)
Definition: bzip2compression.h:63
daal::data_management::CompressionLevel
CompressionLevel
Compression levels
Definition: compression.h:42
daal::data_management::defaultLevel
Definition: compression.h:44
daal::data_management::interface1::DataBlock::getPtr
virtual byte * getPtr() const DAAL_C11_OVERRIDE
Definition: data_block.h:123
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:133
daal::data_management::interface1::Decompressor
Decompressor class decompresses an input data block and writes results into an output data block...
Definition: compression.h:303
daal::data_management::interface1::Compressor< bzip2 >::run
void run(DataBlock &outBlock)
Definition: bzip2compression.h:114
daal::data_management::interface1::CompressionParameter
Parameters for compression and decompression.
Definition: compression.h:85
daal::data_management::bzip2
Definition: compression.h:67
daal::data_management::interface1::Compressor< bzip2 >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: bzip2compression.h:99
daal::algorithms::implicit_als::training::offset
Definition: implicit_als_training_types.h:148
daal::data_management::interface1::Compressor< bzip2 >::parameter
Bzip2CompressionParameter parameter
Definition: bzip2compression.h:119
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:83

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