1 #ifndef GENESIS_UTILS_IO_GZIP_OUTPUT_TARGET_H_ 2 #define GENESIS_UTILS_IO_GZIP_OUTPUT_TARGET_H_ 73 std::shared_ptr<BaseOutputTarget> output_target,
76 : output_target_( output_target )
97 std::ostream& out_stream_()
override 101 if( !stream_ || !stream_->good() ) {
102 stream_ = make_unique<GzipOStream>( output_target_->ostream(), level_ );
105 assert( stream_->good() );
117 std::string target_name_()
const override 120 return output_target_->target_name();
122 return "gzip-compressed " + output_target_->target_name();
128 std::string target_string_()
const override 130 return output_target_->target_name();
139 std::shared_ptr<BaseOutputTarget> output_target_;
142 std::unique_ptr<GzipOStream> stream_;
149 #endif // include guard
GzipCompressionLevel
List of possible compression levels used for GzipOStream.
Abstract base class for writing data to an output target.
Container namespace for all symbols of genesis in order to keep them separate when used as a library...
Provides some valuable additions to STD.
GzipOutputTarget & operator=(GzipOutputTarget const &)=delete
Output target for writing byte data to a gzip/zlib-compressed target.
~GzipOutputTarget() override=default
GzipOutputTarget(std::shared_ptr< BaseOutputTarget > output_target, GzipCompressionLevel level=GzipCompressionLevel::kDefaultCompression)
Construct the output target using another output target (FileOutputTarget, StringOutputTarget, StreamOutputTarget, etc), and add gzip/zlib compression on top, using the specified GzipCompressionLevel%.