A stream which uses zlib to compress the data written into it. More...
#include <juce_GZIPCompressorOutputStream.h>
Public Types | |
enum | WindowBitsValues { windowBitsRaw = -15, windowBitsGZIP = 15 + 16 } |
These are preset values that can be used for the constructor's windowBits parameter. More... | |
Public Member Functions | |
GZIPCompressorOutputStream (OutputStream *destStream, int compressionLevel=-1, bool deleteDestStreamWhenDestroyed=false, int windowBits=0) | |
Creates a compression stream. More... | |
~GZIPCompressorOutputStream () | |
Destructor. More... | |
void | flush () override |
Flushes and closes the stream. More... | |
const String & | getNewLineString () const noexcept |
Returns the current new-line string that was set by setNewLineString(). More... | |
int64 | getPosition () override |
Returns the stream's current position. More... | |
void | setNewLineString (const String &newLineString) |
Sets the string to write to the stream when a new line is written. More... | |
bool | setPosition (int64) override |
Tries to move the stream's output position. More... | |
bool | write (const void *, size_t) override |
Writes a block of data to the stream. More... | |
virtual bool | writeBool (bool boolValue) |
Writes a boolean to the stream as a single byte. More... | |
virtual bool | writeByte (char byte) |
Writes a single byte to the stream. More... | |
virtual bool | writeCompressedInt (int value) |
Writes a condensed binary encoding of a 32-bit integer. More... | |
virtual bool | writeDouble (double value) |
Writes a 64-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeDoubleBigEndian (double value) |
Writes a 64-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeFloat (float value) |
Writes a 32-bit floating point value to the stream in a binary format. More... | |
virtual bool | writeFloatBigEndian (float value) |
Writes a 32-bit floating point value to the stream in a binary format. More... | |
virtual int64 | writeFromInputStream (InputStream &source, int64 maxNumBytesToWrite) |
Reads data from an input stream and writes it to this stream. More... | |
virtual bool | writeInt (int value) |
Writes a 32-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeInt64 (int64 value) |
Writes a 64-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeInt64BigEndian (int64 value) |
Writes a 64-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeIntBigEndian (int value) |
Writes a 32-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeRepeatedByte (uint8 byte, size_t numTimesToRepeat) |
Writes a byte to the output stream a given number of times. More... | |
virtual bool | writeShort (short value) |
Writes a 16-bit integer to the stream in a little-endian byte order. More... | |
virtual bool | writeShortBigEndian (short value) |
Writes a 16-bit integer to the stream in a big-endian byte order. More... | |
virtual bool | writeString (const String &text) |
Stores a string in the stream in a binary format. More... | |
virtual bool | writeText (const String &text, bool asUTF16, bool writeUTF16ByteOrderMark) |
Writes a string of text to the stream. More... | |
Private Attributes | |
OptionalScopedPointer< OutputStream > | destStream |
ScopedPointer< GZIPCompressorHelper > | helper |
Friends | |
struct | ContainerDeletePolicy< GZIPCompressorHelper > |
A stream which uses zlib to compress the data written into it.
Important note: When you call flush() on a GZIPCompressorOutputStream, the gzip data is closed - this means that no more data can be written to it, and any subsequent attempts to call write() will cause an assertion.
GZIPCompressorOutputStream::GZIPCompressorOutputStream | ( | OutputStream * | destStream, |
int | compressionLevel = -1 , |
||
bool | deleteDestStreamWhenDestroyed = false , |
||
int | windowBits = 0 |
||
) |
Creates a compression stream.
destStream | the stream into which the compressed data should be written |
compressionLevel | how much to compress the data, between 0 and 9, where 0 is non-compressed storage, 1 is the fastest/lowest compression, and 9 is the slowest/highest compression. Any value outside this range indicates that a default compression level should be used. |
deleteDestStreamWhenDestroyed | whether or not to delete the destStream object when this stream is destroyed |
windowBits | this is used internally to change the window size used by zlib - leave it as 0 unless you specifically need to set its value for some reason |
GZIPCompressorOutputStream::~GZIPCompressorOutputStream | ( | ) |
Destructor.
|
overridevirtual |
Flushes and closes the stream.
Note that unlike most streams, when you call flush() on a GZIPCompressorOutputStream, the stream is closed - this means that no more data can be written to it, and any subsequent attempts to call write() will cause an assertion.
Implements OutputStream.
|
inlinenoexceptinherited |
Returns the current new-line string that was set by setNewLineString().
|
overridevirtual |
|
inherited |
Sets the string to write to the stream when a new line is written.
By default this will be set the value of NewLine::getDefault().
|
overridevirtual |
Tries to move the stream's output position.
Not all streams will be able to seek to a new position - this will return false if it fails to work.
Implements OutputStream.
|
overridevirtual |
Writes a block of data to the stream.
When creating a subclass of OutputStream, this is the only write method that needs to be overloaded - the base class has methods for writing other types of data which use this to do the work.
dataToWrite | the target buffer to receive the data. This must not be null. |
numberOfBytes | the number of bytes to write. |
Implements OutputStream.
|
virtualinherited |
Writes a boolean to the stream as a single byte.
This is encoded as a binary byte (not as text) with a value of 1 or 0.
|
virtualinherited |
Writes a single byte to the stream.
|
virtualinherited |
Writes a condensed binary encoding of a 32-bit integer.
If you're storing a lot of integers which are unlikely to have very large values, this can save a lot of space, because values under 0xff will only take up 2 bytes, under 0xffff only 3 bytes, etc.
The format used is: number of significant bytes + up to 4 bytes in little-endian order.
|
virtualinherited |
Writes a 64-bit floating point value to the stream in a binary format.
The eight raw bytes of the double value are written out as a little-endian 64-bit int.
|
virtualinherited |
Writes a 64-bit floating point value to the stream in a binary format.
The eight raw bytes of the double value are written out as a big-endian 64-bit int.
|
virtualinherited |
Writes a 32-bit floating point value to the stream in a binary format.
The binary 32-bit encoding of the float is written as a little-endian int.
|
virtualinherited |
Writes a 32-bit floating point value to the stream in a binary format.
The binary 32-bit encoding of the float is written as a big-endian int.
|
virtualinherited |
Reads data from an input stream and writes it to this stream.
source | the stream to read from |
maxNumBytesToWrite | the number of bytes to read from the stream (if this is less than zero, it will keep reading until the input is exhausted) |
Reimplemented in MemoryOutputStream.
Referenced by MemoryOutputStream::getPosition().
|
virtualinherited |
Writes a 32-bit integer to the stream in a little-endian byte order.
|
virtualinherited |
Writes a 64-bit integer to the stream in a little-endian byte order.
|
virtualinherited |
Writes a 64-bit integer to the stream in a big-endian byte order.
|
virtualinherited |
Writes a 32-bit integer to the stream in a big-endian byte order.
|
virtualinherited |
Writes a byte to the output stream a given number of times.
Reimplemented in MemoryOutputStream, and FileOutputStream.
Referenced by MemoryOutputStream::getPosition(), and FileOutputStream::openedOk().
|
virtualinherited |
Writes a 16-bit integer to the stream in a little-endian byte order.
This will write two bytes to the stream: (value & 0xff), then (value >> 8).
|
virtualinherited |
Writes a 16-bit integer to the stream in a big-endian byte order.
This will write two bytes to the stream: (value >> 8), then (value & 0xff).
|
virtualinherited |
Stores a string in the stream in a binary format.
This isn't the method to use if you're trying to append text to the end of a text-file! It's intended for storing a string so that it can be retrieved later by InputStream::readString().
It writes the string to the stream as UTF8, including the null termination character.
For appending text to a file, instead use writeText, or operator<<
|
virtualinherited |
Writes a string of text to the stream.
It can either write the text as UTF-8 or UTF-16, and can also add the UTF-16 byte-order-mark bytes (0xff, 0xfe) to indicate the endianness (these should only be used at the start of a file).
The method also replaces '\n' characters in the text with '\r\n'.
|
friend |
|
private |
|
private |