#include <genesis/utils/io/gzip_output_target.hpp>
Inherits BaseOutputTarget.
Output target for writing byte data to a gzip-compressed target in blocks of gzip data.
This output target is a wrapper that takes some other output target (FileOutputTarget, StringOutputTarget, StreamOutputTarget, etc), and compresses using the gzip format on the fly while writing to that other target.
Using gzip blocks allows us to compress in parallel using multiple threads. Furthermore, it should allow for downstream indexing and random access into the compressed file, although we currently have not tested this. See the GzipBlockOStream class for details on gzip block compression.
The class can be moved, but not copied, because of the internal state that is kept for compression, and which would mess up the output if copied.
Definition at line 174 of file gzip_output_target.hpp.
Public Member Functions | |
GzipBlockOutputTarget (GzipBlockOutputTarget &&)=default | |
GzipBlockOutputTarget (GzipBlockOutputTarget const &)=delete | |
GzipBlockOutputTarget (std::shared_ptr< BaseOutputTarget > output_target, std::size_t block_size=GzipBlockOStream::GZIP_DEFAULT_BLOCK_SIZE, GzipCompressionLevel compression_level=GzipCompressionLevel::kDefaultCompression, std::size_t num_threads=0) | |
Construct the output target using another output target (FileOutputTarget, StringOutputTarget, StreamOutputTarget, etc), and add gzip/zlib compression on top, using the specified GzipCompressionLevel%. More... | |
~GzipBlockOutputTarget () override=default | |
GzipBlockOutputTarget & | operator= (GzipBlockOutputTarget &&)=default |
GzipBlockOutputTarget & | operator= (GzipBlockOutputTarget const &)=delete |
Public Member Functions inherited from BaseOutputTarget | |
BaseOutputTarget ()=default | |
BaseOutputTarget (BaseOutputTarget &&)=default | |
BaseOutputTarget (BaseOutputTarget const &)=default | |
virtual | ~BaseOutputTarget () |
template<typename T > | |
BaseOutputTarget & | operator<< (T const &content) |
Output stream operator template that simply forwards to the underlying ostream() object. More... | |
BaseOutputTarget & | operator= (BaseOutputTarget &&)=default |
BaseOutputTarget & | operator= (BaseOutputTarget const &)=default |
std::ostream & | ostream () |
Get the underlying output stream that is used for writing. More... | |
std::string | target_name () const |
Get a name of the output target. This is intended for user output. More... | |
std::string | target_string () const |
Get a string representing the output target. This is intended for the writer classes, which for example might want to examine the output file name. More... | |
|
inlineexplicit |
Construct the output target using another output target (FileOutputTarget, StringOutputTarget, StreamOutputTarget, etc), and add gzip/zlib compression on top, using the specified GzipCompressionLevel%.
See GzipBlockOStream for details on the parameters.
Definition at line 189 of file gzip_output_target.hpp.
|
delete |
|
default |
|
overridedefault |
|
default |
|
delete |