24 #ifndef __COMPRESSION_STREAM_H__
25 #define __COMPRESSION_STREAM_H__
27 #include "services/base.h"
28 #include "data_management/compression/compression.h"
29 #include "data_management/data/data_block.h"
30 #include "services/collection.h"
34 namespace data_management
43 typedef services::Collection<services::SharedPtr<DataBlock> > DataBlockCollection;
44 typedef services::SharedPtr<DataBlockCollection> DataBlockCollectionPtr;
57 class DAAL_EXPORT CompressionStream :
public Base
65 CompressionStream(CompressorImpl *compr,
size_t minSize = 1024 * 64);
66 virtual ~CompressionStream();
72 virtual void push_back(DataBlock *inBlock);
78 virtual void operator << (DataBlock *inBlock)
86 virtual void operator << (DataBlock inBlock)
94 virtual DataBlockCollectionPtr getCompressedBlocksCollection();
99 virtual size_t getCompressedDataSize();
106 virtual size_t copyCompressedArray(byte *outPtr,
size_t outSize);
112 virtual size_t copyCompressedArray(DataBlock &outBlock)
114 return copyCompressedArray(outBlock.getPtr(), outBlock.getSize());
117 services::SharedPtr<services::ErrorCollection> getErrors()
125 CompressorImpl *_compressor;
126 size_t _compressedDataSize;
127 size_t _minBlockSize;
132 void compressBlock(
size_t pos);
134 services::SharedPtr<services::ErrorCollection> _errors;
146 class DAAL_EXPORT DecompressionStream :
public Base
154 DecompressionStream(DecompressorImpl *decompr,
size_t minSize = 1024 * 64);
155 virtual ~DecompressionStream();
160 virtual void push_back(DataBlock *inBlock);
165 virtual void operator << (DataBlock *inBlock)
173 virtual void operator << (DataBlock inBlock)
181 virtual DataBlockCollectionPtr getDecompressedBlocksCollection();
186 virtual size_t getDecompressedDataSize();
193 virtual size_t copyDecompressedArray(byte *outPtr,
size_t outSize);
199 virtual size_t copyDecompressedArray(DataBlock &outBlock)
201 return copyDecompressedArray(outBlock.getPtr(), outBlock.getSize());
204 services::SharedPtr<services::ErrorCollection> getErrors()
212 DecompressorImpl *_decompressor;
213 size_t _decompressedDataSize;
214 size_t _minBlockSize;
219 void decompressBlock(
size_t pos);
221 services::SharedPtr<services::ErrorCollection> _errors;
224 using interface1::CompressionStream;
225 using interface1::DecompressionStream;
231 #endif // __COMPRESSION_STREAM_H
daal::Base
Base class for Intel(R) Data Analytics Acceleration Library objects
Definition: base.h:41
daal::data_management::interface1::DataBlock::getSize
virtual size_t getSize() const DAAL_C11_OVERRIDE
Definition: data_block.h:135
daal::data_management::interface1::DecompressionStream::copyDecompressedArray
virtual size_t copyDecompressedArray(DataBlock &outBlock)
Definition: compression_stream.h:199
daal::data_management::interface1::CompressorImpl
Base class for the Compressor.
Definition: compression.h:227
daal::data_management::interface1::CompressionStream::copyCompressedArray
virtual size_t copyCompressedArray(DataBlock &outBlock)
Definition: compression_stream.h:112
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::DataBlockCollection
services::Collection< services::SharedPtr< DataBlock > > DataBlockCollection
Collection of DataBlock-type elements.
Definition: compression_stream.h:43
daal::data_management::interface1::DecompressorImpl
Base class for the Decompressor.
Definition: compression.h:253
daal::data_management::interface1::DecompressionStream
DecompressionStream class decompresses compressed input data by blocks.
Definition: compression_stream.h:146
daal::data_management::interface1::CompressionStream
CompressionStream class compresses input raw data by blocks.
Definition: compression_stream.h:57