11 #ifndef UT_SCCOMPRESSIONFILTER_H_
12 #define UT_SCCOMPRESSIONFILTER_H_
34 bool do_shuffer =
true,
35 int compression_level = 9);
38 template<
typename Sink>
39 std::streamsize
write(Sink& dest,
const char* source_buffer,
40 std::streamsize source_buffer_size);
42 template<
typename Sink>
43 void close(Sink& dest);
49 int myCompressionLevel;
53 bios::filtering_ostream* myOutputStream;
54 std::ostream* myOutputAdapter;
63 int compression_level)
64 : myTypeSize(type_size)
65 , myBlockSize(block_size)
66 , myCompressionLevel(compression_level)
67 , myDoShuffle(do_shuffle)
68 , myOutputWriter(nullptr)
69 , myOutputStream(nullptr)
76 delete myOutputWriter;
79 template<
typename Sink>
80 inline std::streamsize
82 std::streamsize source_buffer_size)
86 myOutputWriter =
new UT_SCFWriter(myDoShuffle, myTypeSize, myBlockSize,
89 myOutputAdapter =
new std::ostream(&dest);
93 if(!myOutputStream->write((
const char*)source_buffer, source_buffer_size))
98 return source_buffer_size;
101 template<
typename Sink>
108 myOutputWriter->
close();
109 delete myOutputWriter;
110 delete myOutputAdapter;
112 myOutputWriter =
nullptr;
115 #endif // UT_SCCOMPRESSIONFILTER_H_
std::streamsize write(Sink &dest, const char *source_buffer, std::streamsize source_buffer_size)
UT_SCCompressionFilter(size_t typesize, size_t blocksize, bool do_shuffer=true, int compression_level=9)
SC Compression Filter.
Interface for writing Seekable Compressed Format (SCF) files.
bios::filtering_ostream * getOutputStream(const char *filename)
static const size_t theDefaultBlockSize
static const size_t theDefaultTypeSize
void close()
Closes the file.
virtual ~UT_SCCompressionFilter()