C++ API Reference for Intel® Data Analytics Acceleration Library 2018 Update 3

rlecompression.h
1 /* file: rlecompression.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 run-length encoding interface.
19 //--
20 */
21 
22 #ifndef __RLECOMPRESSION_H__
23 #define __RLECOMPRESSION_H__
24 #include "data_management/compression/compression.h"
25 
26 namespace daal
27 {
28 namespace data_management
29 {
30 
31 namespace interface1
32 {
46 /* [RleCompressionParameter source code] */
47 class DAAL_EXPORT RleCompressionParameter : public data_management::CompressionParameter
48 {
49 public:
54  RleCompressionParameter(bool _isBlockHeader = 1) :
55  data_management::CompressionParameter(defaultLevel), isBlockHeader(_isBlockHeader) {}
56 
57  ~RleCompressionParameter() {}
58 
59  bool isBlockHeader;
60 };
61 /* [RleCompressionParameter source code] */
62 
73 template<> class DAAL_EXPORT Compressor<rle> : public data_management::CompressorImpl
74 {
75 public:
79  Compressor();
80  ~Compressor();
87  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
92  void setInputDataBlock( DataBlock &inBlock )
93  {
94  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
95  }
96 
103  void run( byte *outBlock, size_t size, size_t offset );
108  void run( DataBlock &outBlock )
109  {
110  run( outBlock.getPtr(), outBlock.getSize(), 0 );
111  }
112 
113  RleCompressionParameter parameter;
115 protected:
116  void initialize();
117 
118 private:
119  void *_next_in;
120  size_t _avail_in;
121  void *_next_out;
122  size_t _avail_out;
123  size_t _headBytes;
124 
125  void finalizeCompression();
126 };
127 
138 template<> class DAAL_EXPORT Decompressor<rle> : public data_management::DecompressorImpl
139 {
140 public:
144  Decompressor();
145  ~Decompressor();
152  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
157  void setInputDataBlock( DataBlock &inBlock )
158  {
159  setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
160  }
167  void run( byte *outBlock, size_t size, size_t offset );
172  void run( DataBlock &outBlock )
173  {
174  run( outBlock.getPtr(), outBlock.getSize(), 0 );
175  }
176 
177  RleCompressionParameter parameter;
179 protected:
180  void initialize();
181 
182 private:
183  void *_next_in;
184  size_t _avail_in;
185  void *_next_out;
186  size_t _avail_out;
187  size_t _headBytes;
188 
189  void *_internalBuff;
190  size_t _internalBuffOff;
191  size_t _internalBuffLen;
192 
193  void finalizeCompression();
194 };
196 } // namespace interface1
197 using interface1::RleCompressionParameter;
198 using interface1::Compressor;
199 using interface1::Decompressor;
200 
201 } //namespace data_management
202 } //namespace daal
203 #endif //__RLECOMPRESSION_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
Definition: algorithm_base_common.h:31
daal::data_management::interface1::RleCompressionParameter::RleCompressionParameter
RleCompressionParameter(bool _isBlockHeader=1)
Definition: rlecompression.h:54
daal::data_management::interface1::RleCompressionParameter::isBlockHeader
bool isBlockHeader
Definition: rlecompression.h:59
daal::data_management::interface1::Decompressor< rle >::parameter
RleCompressionParameter parameter
Definition: rlecompression.h:177
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::RleCompressionParameter
Parameter for run-length encoding and decoding. A RLE encoded block may contain a header that consist...
Definition: rlecompression.h:47
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:133
daal::data_management::rle
Definition: compression.h:66
daal::data_management::interface1::Compressor< rle >::parameter
RleCompressionParameter parameter
Definition: rlecompression.h:113
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::CompressionParameter
Parameters for compression and decompression.
Definition: compression.h:85
daal::data_management::interface1::Decompressor< rle >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: rlecompression.h:157
daal::algorithms::implicit_als::training::offset
Definition: implicit_als_training_types.h:148
daal::data_management::interface1::Compressor< rle >::run
void run(DataBlock &outBlock)
Definition: rlecompression.h:108
daal::data_management::interface1::Compressor< rle >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: rlecompression.h:92
daal::data_management::interface1::Decompressor< rle >::run
void run(DataBlock &outBlock)
Definition: rlecompression.h:172
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.