22 #ifndef __COMPRESSION_H__
23 #define __COMPRESSION_H__
25 #include "services/base.h"
26 #include "data_management/data/data_block.h"
27 #include "services/daal_defines.h"
28 #include "services/error_handling.h"
32 namespace data_management
55 lastCompressionLevel = level9
62 enum CompressionMethod
85 struct DAAL_EXPORT CompressionParameter
87 CompressionLevel level;
93 CompressionParameter( CompressionLevel clevel = defaultLevel ) : level(clevel) {}
102 class DAAL_EXPORT CompressionIface
111 virtual void setInputDataBlock( byte *inBlock,
size_t size,
size_t offset ) = 0;
116 virtual void setInputDataBlock( DataBlock &inBlock ) = 0;
121 virtual bool isOutputDataBlockFull() = 0;
126 virtual size_t getUsedOutputDataBlockSize() = 0;
133 virtual void run( byte *outBlock,
size_t size,
size_t offset ) = 0;
138 virtual void run( DataBlock &outBlock ) = 0;
140 virtual ~CompressionIface() {}
152 class DAAL_EXPORT Compression :
public CompressionIface
158 Compression(): _errors(new services::ErrorCollection())
160 this->_errors->setCanThrow(
false);
161 _isOutBlockFull =
false;
162 _usedOutBlockSize = 0;
164 virtual void setInputDataBlock( byte *inBlock,
size_t size,
size_t offset ) = 0;
165 virtual void setInputDataBlock( DataBlock &inBlock ) = 0;
166 bool isOutputDataBlockFull() {
return _isOutBlockFull; }
167 size_t getUsedOutputDataBlockSize() {
return _usedOutBlockSize; }
168 virtual void run( byte *outBlock,
size_t size,
size_t offset ) = 0;
169 virtual void run( DataBlock &outBlock ) = 0;
170 virtual ~Compression() {}
176 virtual void checkInputParams( byte *inBlock,
size_t size )
178 if ( inBlock == NULL )
180 this->_errors->add(services::ErrorCompressionNullInputStream);
184 this->_errors->add(services::ErrorCompressionEmptyInputStream);
192 virtual void checkOutputParams( byte *outBlock,
size_t size )
194 if ( outBlock == NULL )
196 this->_errors->add(services::ErrorCompressionNullOutputStream);
200 this->_errors->add(services::ErrorCompressionEmptyOutputStream);
204 services::SharedPtr<services::ErrorCollection> getErrors()
210 bool _isOutBlockFull;
211 size_t _usedOutBlockSize;
213 services::SharedPtr<services::ErrorCollection> _errors;
225 class DAAL_EXPORT CompressorImpl :
public Compression
231 CompressorImpl() : Compression()
233 _isInitialized =
false;
235 virtual ~CompressorImpl() {}
238 virtual void initialize() { _isInitialized =
true; }
251 class DAAL_EXPORT DecompressorImpl :
public Compression
257 DecompressorImpl() : Compression()
259 _isInitialized =
false;
261 virtual ~DecompressorImpl() {}
264 virtual void initialize() { _isInitialized =
true; }
280 template<CompressionMethod dcmethod>
281 class DAAL_EXPORT Compressor :
public CompressorImpl
287 Compressor() : CompressorImpl() {}
288 virtual ~Compressor() {}
302 template<CompressionMethod dcmethod>
303 class DAAL_EXPORT Decompressor :
public DecompressorImpl
309 Decompressor() : DecompressorImpl() {}
310 virtual ~Decompressor() {}
313 using interface1::CompressionParameter;
314 using interface1::CompressionIface;
315 using interface1::Compression;
316 using interface1::CompressorImpl;
317 using interface1::DecompressorImpl;
318 using interface1::Compressor;
319 using interface1::Decompressor;
324 #endif // __COMPRESSION_H
daal::data_management::level8
Definition: compression.h:53
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::CompressorImpl::CompressorImpl
CompressorImpl()
Compressor constructor
Definition: compression.h:231
daal::services::ErrorCompressionEmptyInputStream
Definition: error_indexes.h:288
daal::data_management::interface1::Compression::checkOutputParams
virtual void checkOutputParams(byte *outBlock, size_t size)
Definition: compression.h:192
daal::data_management::level2
Definition: compression.h:47
daal::data_management::level7
Definition: compression.h:52
daal::data_management::interface1::Compression::checkInputParams
virtual void checkInputParams(byte *inBlock, size_t size)
Definition: compression.h:176
daal::data_management::interface1::Decompressor::Decompressor
Decompressor()
Decompressor constructor
Definition: compression.h:309
daal::data_management::CompressionLevel
CompressionLevel
Compression levels
Definition: compression.h:42
daal::data_management::defaultLevel
Definition: compression.h:44
daal::data_management::level4
Definition: compression.h:49
daal::data_management::interface1::CompressorImpl
Base class for the Compressor.
Definition: compression.h:225
daal::data_management::level0
Definition: compression.h:45
daal::data_management::interface1::CompressionParameter::CompressionParameter
CompressionParameter(CompressionLevel clevel=defaultLevel)
Definition: compression.h:93
daal::data_management::interface1::Compression
Base class for compression and decompression
Definition: compression.h:152
daal::data_management::rle
Definition: compression.h:66
daal::data_management::interface1::CompressionIface
Abstract interface class for compression and decompression.
Definition: compression.h:102
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::CompressionMethod
CompressionMethod
Compression methods
Definition: compression.h:62
daal::data_management::interface1::Compression::getUsedOutputDataBlockSize
size_t getUsedOutputDataBlockSize()
Definition: compression.h:167
daal::data_management::level1
Definition: compression.h:46
daal::services::ErrorCompressionEmptyOutputStream
Definition: error_indexes.h:289
daal::data_management::lzo
Definition: compression.h:65
daal::data_management::interface1::CompressionParameter::level
CompressionLevel level
Definition: compression.h:87
daal::data_management::interface1::CompressionParameter
Parameters for compression and decompression.
Definition: compression.h:85
daal::data_management::level6
Definition: compression.h:51
daal::data_management::bzip2
Definition: compression.h:67
daal::algorithms::implicit_als::training::offset
Definition: implicit_als_training_types.h:148
daal::data_management::interface1::Compressor::Compressor
Compressor()
Compressor constructor
Definition: compression.h:287
daal::data_management::level3
Definition: compression.h:48
daal::data_management::interface1::DecompressorImpl
Base class for the Decompressor.
Definition: compression.h:251
daal::data_management::zlib
Definition: compression.h:64
daal::data_management::level9
Definition: compression.h:54
daal::data_management::interface1::Compression::isOutputDataBlockFull
bool isOutputDataBlockFull()
Definition: compression.h:166
daal::services::ErrorCompressionNullInputStream
Definition: error_indexes.h:285
daal::data_management::interface1::DecompressorImpl::DecompressorImpl
DecompressorImpl()
Decompressor constructor
Definition: compression.h:257
daal::data_management::interface1::Compression::Compression
Compression()
Compression constructor.
Definition: compression.h:158
daal::services::ErrorCompressionNullOutputStream
Definition: error_indexes.h:286
daal::data_management::level5
Definition: compression.h:50
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