Logo Search packages:      
Sourcecode: cabextract version File versions  Download package

int(* msszdd_compressor::compress)(struct msszdd_compressor *self, char *input, char *output, off_t length)

Reads an input file and creates a compressed output file in the SZDD compressed file format. The SZDD compression format is quick but gives poor compression. It is possible for the compressed output file to be larger than the input file.

Conventionally, SZDD compressed files have the final character in their filename replaced with an underscore, to show they are compressed. The missing character is stored in the compressed file itself. This is due to the restricted filename conventions of MS-DOS, most operating systems, such as UNIX, simply append another file extension to the existing filename. As mspack does not deal with filenames, this is left up to you. If you wish to set the missing character stored in the file header, use set_param() with the MSSZDDC_PARAM_MISSINGCHAR parameter.

"Stream" compression (where the length of the input data is not known) is not possible. The length of the input data is stored in the header of the SZDD file and must therefore be known before any data is compressed. Due to technical limitations of the file format, the maximum size of uncompressed file that will be accepted is 2147483647 bytes.

Parameters:
self a self-referential pointer to the msszdd_compressor instance being called
input the name of the file to compressed. This is passed passed directly to mspack_system::open()
output the name of the file to write compressed data to. This is passed directly to mspack_system::open().
length the length of the uncompressed file, or -1 to indicate that this should be determined automatically by using mspack_system::seek() on the input file.
Returns:
an error code, or MSPACK_ERR_OK if successful
See also:
set_param()


Generated by  Doxygen 1.6.0   Back to index