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

lzocompression.h
1 /* file: lzocompression.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 LZO1X_11 compression and decompression interface.
21 //--
22 */
23 
24 #ifndef __LZOCOMPRESSION_H__
25 #define __LZOCOMPRESSION_H__
26 #include "data_management/compression/compression.h"
27 
28 namespace daal
29 {
30 namespace data_management
31 {
32 
33 namespace interface1
34 {
49 /* [LzoCompressionParameter source code] */
50 class DAAL_EXPORT LzoCompressionParameter : public data_management::CompressionParameter
51 {
52 public:
58  LzoCompressionParameter( size_t _preHeadBytes = 0, size_t _postHeadBytes = 0 ) :
59  data_management::CompressionParameter(defaultLevel), preHeadBytes(_preHeadBytes), postHeadBytes(_postHeadBytes)
60  {}
61  ~LzoCompressionParameter() {}
62 
63  size_t preHeadBytes;
64  size_t postHeadBytes;
65 };
66 /* [LzoCompressionParameter source code] */
67 
78 template<> class DAAL_EXPORT Compressor<lzo> : 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  }
101 
108  void run( byte *outBlock, size_t size, size_t offset );
113  void run( DataBlock &outBlock )
114  {
115  run( outBlock.getPtr(), outBlock.getSize(), 0 );
116  }
117 
118  LzoCompressionParameter parameter;
120 protected:
121  void initialize();
122 
123 private:
124  void *_next_in;
125  size_t _avail_in;
126  void *_next_out;
127  size_t _avail_out;
128  void *_p_lzo_state;
129  size_t _preHeadBytes;
130  size_t _postHeadBytes;
131 
132  void finalizeCompression();
133 };
134 
145 template<> class DAAL_EXPORT Decompressor<lzo> : public data_management::DecompressorImpl
146 {
147 public:
151  Decompressor();
152  ~Decompressor();
159  void setInputDataBlock( byte *inBlock, size_t size, size_t offset );
160 
165  void setInputDataBlock( DataBlock &inBlock )
166  {
167  return setInputDataBlock( inBlock.getPtr(), inBlock.getSize(), 0 );
168  }
169 
176  void run( byte *outBlock, size_t size, size_t offset );
177 
182  void run( DataBlock &outBlock )
183  {
184  run( outBlock.getPtr(), outBlock.getSize(), 0 );
185  }
186 
187  LzoCompressionParameter parameter;
189 protected:
190  void initialize();
191 
192 private:
193  void *_next_in;
194  size_t _avail_in;
195  void *_next_out;
196  size_t _avail_out;
197  void *_p_lzo_state;
198  size_t _preHeadBytes;
199  size_t _postHeadBytes;
200 
201  void *_internalBuff;
202  size_t _internalBuffOff;
203  size_t _internalBuffLen;
204 
205  void finalizeCompression();
206 };
208 } // namespace interface1
209 using interface1::LzoCompressionParameter;
210 using interface1::Compressor;
211 using interface1::Decompressor;
212 
213 } //namespace data_management
214 } //namespace daal
215 #endif //__LZOCOMPRESSION_H
daal::data_management::interface1::Compressor< lzo >::run
void run(DataBlock &outBlock)
Definition: lzocompression.h:113
daal::data_management::interface1::Decompressor< lzo >::run
void run(DataBlock &outBlock)
Definition: lzocompression.h:182
daal::data_management::interface1::LzoCompressionParameter
Parameter for LZO compression and decompression. LZO compressed block header consists of four section...
Definition: lzocompression.h:50
daal::data_management::lzo
Definition: compression.h:67
daal::data_management::interface1::Compressor< lzo >::parameter
LzoCompressionParameter parameter
Definition: lzocompression.h:118
daal::data_management::interface1::LzoCompressionParameter::preHeadBytes
size_t preHeadBytes
Definition: lzocompression.h:63
daal::data_management::interface1::Decompressor< lzo >::parameter
LzoCompressionParameter parameter
Definition: lzocompression.h:187
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::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::LzoCompressionParameter::postHeadBytes
size_t postHeadBytes
Definition: lzocompression.h:64
daal::data_management::interface1::LzoCompressionParameter::LzoCompressionParameter
LzoCompressionParameter(size_t _preHeadBytes=0, size_t _postHeadBytes=0)
Definition: lzocompression.h:58
daal::data_management::interface1::Decompressor< lzo >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: lzocompression.h:165
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::Compressor< lzo >::setInputDataBlock
void setInputDataBlock(DataBlock &inBlock)
Definition: lzocompression.h:97
daal::data_management::defaultLevel
Definition: compression.h:46
daal::data_management::interface1::CompressionParameter
Parameters for compression and decompression.
Definition: compression.h:87

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