ZipStream Class
Properties Methods Events Configuration Settings Errors
The ZipStream class is used to perform compression or decompression.
Syntax
class ipworkszip.ZipStream
Remarks
The ZipStream class provides a way to compress and decompress streamed data.
Data may be operated on in multiple ways as discussed below. The stream_format property specifies the algorithm to us. Possible values are:
- Deflate
- Zlib
- Gzip
CompressBlock and DecompressBlock
The compress_block and decompress_block methods operate on blocks (chunks) of data. The methods may be used to compress and decompress data as it becomes available.
Note that when using blocks of data the output_data property is not applicable. Instead data is made available through the on_compressed_data and on_decompressed_data events.
If all data is available ahead of time compress_data and decompress_data may be called instead.
Compress Data
Set input_data to the current block to be compressed. Next call compress_block to compress the current block. Note that compress_block takes a LastBlock parameter. If the block of data is the final block to be compressed set this to True. For all other blocks set this to False.
During compression the on_compressed_data event will fire with the compressed data. Note that this event may not fire for every call to compress_block due to the way the compression algorithm operates. For example:
zipstream.InputDataB = MyDecompressedData; zipstream.CompressBlock();Data is accumulated inside the on_compressed_data event:
private static void Zipstream_OnCompressedData(object sender, ZipstreamCompressedDataEventArgs e) { DoSomethingWith(e.DataB); }
Note that output_data is not applicable when compressing block data.
Decompress Data
Set input_data to the current block to be decompressed. Next call decompress_block to decompress the current block.
During decompression the on_decompressed_data event will fire with the decompressed data. Note that this event may not fire for every call to decompress_block due to the way the decompression algorithm operates. For example:
zipstream.InputDataB = MyCompressedData; zipstream.DecompressBlock();Data is accumulated inside the on_decompressed_data event:
private static void Zipstream_OnDecompressedData(object sender, ZipstreamDecompressedDataEventArgs e) { DoSomethingWith(e.DataB); }
Note that output_data is not applicable when decompressing block data.
CompressData and DecompressData
The compress_data and decompress_data methods operate on the complete blob of data. The entire compressed or decompressed data must be set to input_data before calling either method.
To compress and decompress data in blocks (chunks) see compress_block and decompress_block.
Compress Data
Set input_data to the decompressed data. This should be the entire data to be compressed. Next call compress_data. After compression output_data will hold the compressed data. For example:
zipstream.InputDataB = MyDecompressedData; zipstream.CompressData(); MyCompressedData = zipstream.OutputDataB;
In addition to output_data, the compressed data may also be accumulated within the on_compressed_data event.
Decompress Data
Set input_data to the compressed data. This should be the entire data to be decompressed. Next call decompress_data. After decompression output_data will hold the decompressed data. For example:
zipstream.InputDataB = MyCompressedData; zipstream.DecompressData(); MyDecompressedData = zipstream.OutputDataB;
In addition to output_data, the compressed data may also be accumulated within the on_decompressed_data event.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
compression_level | The compression level to use. |
input_data | Specifies the data to compress or decompress. |
output_data | The output data after compression or decompression. |
stream_format | The stream format to use. |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
compress_block | Compresses a block of data. |
compress_data | Compresses the specified data. |
config | Sets or retrieves a configuration setting. |
decompress_block | Decompresses a block of data. |
decompress_data | Decompresses the specified data. |
reset | Resets the class. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
on_compressed_data | This event fires with compressed data. |
on_decompressed_data | This event fires with decompressed data. |
on_error | Information about errors during data delivery. |
Configuration Settings
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
BuildInfo | Information about the product's build. |
CodePage | The system code page used for Unicode to Multibyte translations. |
LicenseInfo | Information about the current license. |
ProcessIdleEvents | Whether the class uses its internal event loop to process events when the main thread is idle. |
SelectWaitMillis | The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process. |
UseInternalSecurityAPI | Tells the class whether or not to use the system security libraries or an internal implementation. |