#include <wx/zipstrm.h>
Output stream for writing zip files.
wxZipOutputStream::PutNextEntry() is used to create a new entry in the output zip, then the entry's data is written to the wxZipOutputStream. Another call to wxZipOutputStream::PutNextEntry() closes the current entry and begins the next.
Public Member Functions | |
virtual | ~wxZipOutputStream () |
The destructor calls Close() to finish writing the zip if it has not been called already. | |
bool | Close () |
Finishes writing the zip, returning true if successful. | |
bool | CloseEntry () |
Close the current entry. | |
bool | CopyArchiveMetaData (wxZipInputStream &inputStream) |
Transfers the zip comment from the wxZipInputStream to this output stream. | |
bool | CopyEntry (wxZipEntry *entry, wxZipInputStream &inputStream) |
Takes ownership of entry and uses it to create a new entry in the zip. | |
bool | PutNextDirEntry (const wxString &name, const wxDateTime &dt=wxDateTime::Now()) |
Create a new directory entry (see wxArchiveEntry::IsDir) with the given name and timestamp. | |
void | SetComment (const wxString &comment) |
Sets a comment for the zip as a whole. | |
wxZipOutputStream (wxOutputStream &stream, int level=-1, wxMBConv &conv=wxConvLocal) | |
Constructor. | |
wxZipOutputStream (wxOutputStream *stream, int level=-1, wxMBConv &conv=wxConvLocal) | |
Constructor. | |
int | GetLevel () const |
Set the compression level that will be used the next time an entry is created. | |
void | SetLevel (int level) |
Set the compression level that will be used the next time an entry is created. | |
bool | PutNextEntry (wxZipEntry *entry) |
Takes ownership of entry and uses it to create a new entry in the zip. | |
bool | PutNextEntry (const wxString &name, const wxDateTime &dt=wxDateTime::Now(), wxFileOffset size=wxInvalidOffset) |
Create a new entry with the given name, timestamp and size. | |
Public Member Functions inherited from wxArchiveOutputStream | |
virtual | ~wxArchiveOutputStream () |
Calls Close() if it has not already been called. | |
virtual bool | CopyArchiveMetaData (wxArchiveInputStream &stream)=0 |
Some archive formats have additional meta-data that applies to the archive as a whole. | |
virtual bool | CopyEntry (wxArchiveEntry *entry, wxArchiveInputStream &stream)=0 |
Takes ownership of entry and uses it to create a new entry in the archive. | |
virtual bool | PutNextEntry (wxArchiveEntry *entry)=0 |
Takes ownership of entry and uses it to create a new entry in the archive. | |
Public Member Functions inherited from wxFilterOutputStream | |
wxFilterOutputStream (wxOutputStream &stream) | |
Initializes a "filter" stream. | |
wxFilterOutputStream (wxOutputStream *stream) | |
Initializes a "filter" stream. | |
Public Member Functions inherited from wxOutputStream | |
wxOutputStream () | |
Creates a dummy wxOutputStream object. | |
virtual | ~wxOutputStream () |
Destructor. | |
virtual size_t | LastWrite () const |
Returns the number of bytes written during the last Write(). | |
void | PutC (char c) |
Puts the specified character in the output queue and increments the stream position. | |
virtual wxFileOffset | SeekO (wxFileOffset pos, wxSeekMode mode=wxFromStart) |
Changes the stream current position. | |
virtual wxFileOffset | TellO () const |
Returns the current stream position. | |
virtual wxOutputStream & | Write (const void *buffer, size_t size) |
Writes up to the specified amount of bytes using the data of buffer. | |
wxOutputStream & | Write (wxInputStream &stream_in) |
Reads data from the specified input stream and stores them in the current stream. | |
bool | WriteAll (const void *buffer, size_t size) |
Writes exactly the specified number of bytes from the buffer. | |
Public Member Functions inherited from wxStreamBase | |
wxStreamBase () | |
Creates a dummy stream object. | |
virtual | ~wxStreamBase () |
Destructor. | |
wxStreamError | GetLastError () const |
This function returns the last error. | |
virtual wxFileOffset | GetLength () const |
Returns the length of the stream in bytes. | |
virtual size_t | GetSize () const |
This function returns the size of the stream. | |
virtual bool | IsOk () const |
Returns true if no error occurred on the stream. | |
virtual bool | IsSeekable () const |
Returns true if the stream supports seeking to arbitrary offsets. | |
void | Reset (wxStreamError error=wxSTREAM_NO_ERROR) |
Resets the stream state. | |
bool | operator! () const |
Returns the opposite of IsOk(). | |
Additional Inherited Members | |
Protected Member Functions inherited from wxOutputStream | |
size_t | OnSysWrite (const void *buffer, size_t bufsize) |
Internal function. | |
wxZipOutputStream::wxZipOutputStream | ( | wxOutputStream & | stream, |
int | level = -1 , |
||
wxMBConv & | conv = wxConvLocal |
||
) |
Constructor.
level is the compression level to use. It can be a value between 0 and 9 or -1 to use the default value which currently is equivalent to 6.
If the parent stream is passed as a pointer then the new filter stream takes ownership of it. If it is passed by reference then it does not. In a Unicode build the third parameter conv is used to translate the filename and comment fields to an 8-bit encoding. It has no effect on the stream's data.
wxZipOutputStream::wxZipOutputStream | ( | wxOutputStream * | stream, |
int | level = -1 , |
||
wxMBConv & | conv = wxConvLocal |
||
) |
Constructor.
level is the compression level to use. It can be a value between 0 and 9 or -1 to use the default value which currently is equivalent to 6.
If the parent stream is passed as a pointer then the new filter stream takes ownership of it. If it is passed by reference then it does not. In a Unicode build the third parameter conv is used to translate the filename and comment fields to an 8-bit encoding. It has no effect on the stream's data.
|
virtual |
The destructor calls Close() to finish writing the zip if it has not been called already.
|
virtual |
Finishes writing the zip, returning true if successful.
Called by the destructor if not called explicitly.
Reimplemented from wxArchiveOutputStream.
|
virtual |
Close the current entry.
It is called implicitly whenever another new entry is created with CopyEntry() or PutNextEntry(), or when the zip is closed.
Implements wxArchiveOutputStream.
bool wxZipOutputStream::CopyArchiveMetaData | ( | wxZipInputStream & | inputStream | ) |
Transfers the zip comment from the wxZipInputStream to this output stream.
bool wxZipOutputStream::CopyEntry | ( | wxZipEntry * | entry, |
wxZipInputStream & | inputStream | ||
) |
Takes ownership of entry and uses it to create a new entry in the zip.
entry is then opened in inputStream and its contents copied to this stream.
CopyEntry() is much more efficient than transferring the data using Read() and Write() since it will copy them without decompressing and recompressing them.
For zips on seekable streams, entry must be from the same zip file as inputStream. For non-seekable streams, entry must also be the last thing read from inputStream.
int wxZipOutputStream::GetLevel | ( | ) | const |
Set the compression level that will be used the next time an entry is created.
It can be a value between 0 and 9 or -1 to use the default value which currently is equivalent to 6.
|
virtual |
Create a new directory entry (see wxArchiveEntry::IsDir) with the given name and timestamp.
PutNextEntry() can also be used to create directory entries, by supplying a name with a trailing path separator.
Implements wxArchiveOutputStream.
bool wxZipOutputStream::PutNextEntry | ( | wxZipEntry * | entry | ) |
Takes ownership of entry and uses it to create a new entry in the zip.
|
virtual |
Create a new entry with the given name, timestamp and size.
Implements wxArchiveOutputStream.
void wxZipOutputStream::SetComment | ( | const wxString & | comment | ) |
Sets a comment for the zip as a whole.
It is written at the end of the zip.
void wxZipOutputStream::SetLevel | ( | int | level | ) |
Set the compression level that will be used the next time an entry is created.
It can be a value between 0 and 9 or -1 to use the default value which currently is equivalent to 6.