117 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			117 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/lzmastream.h
 | |
| // Purpose:     LZMA [de]compression classes documentation
 | |
| // Author:      Vadim Zeitlin
 | |
| // Created:     2018-03-29
 | |
| // Copyright:   (c) 2018 Vadim Zeitlin <vadim@wxwidgets.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| /**
 | |
|     @class wxLZMAInputStream
 | |
| 
 | |
|     This filter stream decompresses data in XZ format.
 | |
| 
 | |
|     XZ format uses LZMA2 algorithm for compression used for .xz files and is
 | |
|     similar to GZip or BZip2 format. Notice that it is different from, and
 | |
|     incompatible with, 7z archive format even although it uses the same
 | |
|     compression algorithm.
 | |
| 
 | |
|     To decompress contents of standard input to standard output, the following
 | |
|     (not optimally efficient) code could be used:
 | |
|     @code
 | |
|     wxFFileInputStream fin(stdin);
 | |
|     wxLZMAInputStream zin(fin);
 | |
|     wxFFileOutputStream fout(stdout);
 | |
|     zin.Read(fout);
 | |
| 
 | |
|     if ( zin.GetLastError() != wxSTREAM_EOF ) {
 | |
|         ... handle error ...
 | |
|     }
 | |
|     @endcode
 | |
| 
 | |
|     See @ref page_build_liblzma for information about liblzma, required in
 | |
|     order to use this class.
 | |
| 
 | |
|     @library{wxbase}
 | |
|     @category{archive,streams}
 | |
| 
 | |
|     @see wxInputStream, wxZlibInputStream, wxLZMAOutputStream.
 | |
| 
 | |
|     @since 3.1.2
 | |
| */
 | |
| class wxLZMAInputStream : public wxFilterInputStream
 | |
| {
 | |
| public:
 | |
|     /**
 | |
|         Create decompressing stream associated with the given underlying
 | |
|         stream.
 | |
| 
 | |
|         This overload does not take ownership of the @a stream.
 | |
|     */
 | |
|     wxLZMAInputStream(wxInputStream& stream);
 | |
| 
 | |
|     /**
 | |
|         Create decompressing stream associated with the given underlying
 | |
|         stream and takes ownership of it.
 | |
| 
 | |
|         As with the base wxFilterInputStream class, passing @a stream by
 | |
|         pointer indicates that this object takes ownership of it and will
 | |
|         delete it when it is itself destroyed.
 | |
|      */
 | |
|     wxLZMAInputStream(wxInputStream* stream);
 | |
| };
 | |
| 
 | |
| /**
 | |
|     @class wxLZMAOutputStream
 | |
| 
 | |
|     This filter stream compresses data using XZ format.
 | |
| 
 | |
|     XZ format uses LZMA compression, making it (significantly) more efficient
 | |
|     than Gzip format used by wxZlibOutputStream. Output generated by this class
 | |
|     is compatible with xz utilities working with .xz files and also supported
 | |
|     by 7-Zip program, even though it is different from its native .7z format.
 | |
| 
 | |
|     See @ref page_build_liblzma for information about liblzma, required in
 | |
|     order to use this class.
 | |
| 
 | |
|     @library{wxbase}
 | |
|     @category{archive,streams}
 | |
| 
 | |
|     @see wxOutputStream, wxZlibOutputStream, wxLZMAInputStream
 | |
| 
 | |
|     @since 3.1.2
 | |
| */
 | |
| class wxLZMAOutputStream : public wxFilterOutputStream
 | |
| {
 | |
|     /**
 | |
|         Create compressing stream associated with the given underlying
 | |
|         stream.
 | |
| 
 | |
|         This overload does not take ownership of the @a stream.
 | |
|     */
 | |
|     wxLZMAOutputStream(wxOutputStream& stream);
 | |
| 
 | |
|     /**
 | |
|         Create compressing stream associated with the given underlying
 | |
|         stream and takes ownership of it.
 | |
| 
 | |
|         As with the base wxFilterOutputStream class, passing @a stream by
 | |
|         pointer indicates that this object takes ownership of it and will
 | |
|         delete it when it is itself destroyed.
 | |
|      */
 | |
|     wxLZMAOutputStream(wxOutputStream* stream);
 | |
| };
 | |
| 
 | |
| /**
 | |
|     Return the version of liblzma library used by LZMA stream classes.
 | |
| 
 | |
|     @see wxVersionInfo
 | |
| 
 | |
|     @header{wx/lzmastream.h}
 | |
|     @library{wxbase}
 | |
| 
 | |
|     @since 3.1.2
 | |
| */
 | |
| wxVersionInfo wxGetLibLZMAVersionInfo();
 |