Zip 3 GSF Library Zip Synopsis GsfInfileZip; GsfInfile* gsf_infile_zip_new (GsfInput *source, GError **err); GsfOutfileZip; GsfOutfile* gsf_outfile_zip_new (GsfOutput *sink, GError **err); gboolean gsf_outfile_zip_set_compression_method (GsfOutfileZip *zip, GsfZipCompressionMethod method); GsfZipDirent; GsfZipDirent* gsf_zip_dirent_new (void); void gsf_zip_dirent_free (GsfZipDirent *dirent); GsfZipVDir; void gsf_vdir_free (GsfZipVDir *vdir, gboolean free_dirent); GsfZipVDir* gsf_vdir_new (char const *name, gboolean is_directory, GsfZipDirent *dirent); void gsf_vdir_add_child (GsfZipVDir *vdir, GsfZipVDir *child); #define ZIP_DIRENT_USIZE #define ZIP_DIRENT_OFFSET enum GsfZipCompressionMethod; #define ZIP_FILE_HEADER_NAME_SIZE #define ZZIP_IS_STREAMED (p) #define ZIP_FILE_HEADER_EXTRACT #define ZIP_TRAILER_SIZE #define ZIP_HEADER_TIME #define ZIP_FILE_HEADER_SIZE #define ZZIP_IS_ENCRYPTED (p) #define ZIP_HEADER_VERSION #define ZIP_BUF_SIZE #define ZIP_DIRENT_CRC32 #define ZIP_HEADER_COMP_SIZE #define ZIP_DIRENT_COMPR_METHOD #define ZIP_DIRENT_FILE_TYPE #define ZIP_FILE_HEADER_EXTRAS_SIZE #define ZIP_DIRENT_EXTRACT #define ZIP_DIRENT_FILE_MODE #define ZIP_DIRENT_FLAGS #define ZIP_FILE_HEADER_CSIZE #define ZIP_TRAILER_DIR_SIZE #define ZIP_TRAILER_COMMENT_SIZE #define ZIP_TRAILER_ENTRIES #define ZIP_NAME_SEPARATOR #define ZIP_HEADER_SIZE #define ZIP_HEADER_CRC #define ZIP_FILE_HEADER_FLAGS #define ZIP_DIRENT_EXTRAS_SIZE #define ZIP_HEADER_COMP_METHOD #define ZZIP_IS_COMPRLEVEL (p) #define ZIP_DIRENT_DOSTIME #define ZIP_DIRENT_ENCODER #define ZIP_HEADER_OS #define ZIP_DIRENT_COMMENT_SIZE #define ZIP_FILE_HEADER_CRC32 #define ZIP_HEADER_FLAGS #define ZIP_TRAILER_DISK #define ZIP_FILE_HEADER_USIZE #define ZIP_TRAILER_TOTAL_ENTRIES #define ZIP_HEADER_NAME_LEN #define ZIP_HEADER_UNCOMP_SIZE #define ZIP_TRAILER_DIR_DISK #define ZIP_DIRENT_CSIZE #define ZIP_TRAILER_DIR_POS #define ZIP_BLOCK_SIZE #define ZIP_DIRENT_NAME_SIZE #define ZIP_DIRENT_SIZE #define ZIP_DIRENT_DISKSTART #define ZIP_HEADER_EXTRA_LEN #define ZIP_FILE_HEADER_COMPR_METHOD #define ZIP_FILE_HEADER_DOSTIME Object Hierarchy GObject +----GsfInput +----GsfInfile +----GsfInfileZip GObject +----GsfOutput +----GsfOutfile +----GsfOutfileZip Properties "compression-level" gint : Read "internal-parent" GsfInfileZip : Write / Construct Only "source" GsfInput : Read / Write / Construct Only "compression-level" gint : Read / Write / Construct Only "entry-name" gchararray : Read / Write / Construct Only "sink" GsfOutput : Read / Write / Construct Only Description Details <anchor id="GsfInfileZip-struct"/>GsfInfileZip GsfInfileZiptypedef struct _GsfInfileZip GsfInfileZip; <anchor id="gsf-infile-zip-new"/>gsf_infile_zip_new () gsf_infile_zip_newGsfInfile* gsf_infile_zip_new (GsfInput *source, GError **err); Opens the root directory of a Zip file. NOTE : adds a reference to source source : A base GsfInput err : A GError, optionally null Returns :: the new zip file handler <anchor id="GsfOutfileZip-struct"/>GsfOutfileZip GsfOutfileZiptypedef struct _GsfOutfileZip GsfOutfileZip; <anchor id="gsf-outfile-zip-new"/>gsf_outfile_zip_new () gsf_outfile_zip_newGsfOutfile* gsf_outfile_zip_new (GsfOutput *sink, GError **err); Creates the root directory of a Zip file and manages the addition of children. NOTE : adds a reference to sink sink : err : Returns :: the new zip file handler <anchor id="gsf-outfile-zip-set-compression-method"/>gsf_outfile_zip_set_compression_method () gsf_outfile_zip_set_compression_methodgboolean gsf_outfile_zip_set_compression_method (GsfOutfileZip *zip, GsfZipCompressionMethod method); zip : method : Returns : <anchor id="GsfZipDirent"/>GsfZipDirent GsfZipDirenttypedef struct { char *name; GsfZipCompressionMethod compr_method; guint32 crc32; size_t csize; size_t usize; gsf_off_t offset; gsf_off_t data_offset; guint32 dostime; } GsfZipDirent; <anchor id="gsf-zip-dirent-new"/>gsf_zip_dirent_new () gsf_zip_dirent_newGsfZipDirent* gsf_zip_dirent_new (void); Returns : <anchor id="gsf-zip-dirent-free"/>gsf_zip_dirent_free () gsf_zip_dirent_freevoid gsf_zip_dirent_free (GsfZipDirent *dirent); dirent : <anchor id="GsfZipVDir"/>GsfZipVDir GsfZipVDirtypedef struct { char *name; gboolean is_directory; GsfZipDirent *dirent; GSList *children, *last_child; } GsfZipVDir; <anchor id="gsf-vdir-free"/>gsf_vdir_free () gsf_vdir_freevoid gsf_vdir_free (GsfZipVDir *vdir, gboolean free_dirent); vdir : free_dirent : <anchor id="gsf-vdir-new"/>gsf_vdir_new () gsf_vdir_newGsfZipVDir* gsf_vdir_new (char const *name, gboolean is_directory, GsfZipDirent *dirent); name : is_directory : dirent : Returns : <anchor id="gsf-vdir-add-child"/>gsf_vdir_add_child () gsf_vdir_add_childvoid gsf_vdir_add_child (GsfZipVDir *vdir, GsfZipVDir *child); vdir : child : <anchor id="ZIP-DIRENT-USIZE:CAPS"/>ZIP_DIRENT_USIZE ZIP_DIRENT_USIZE#define ZIP_DIRENT_USIZE 24 <anchor id="ZIP-DIRENT-OFFSET:CAPS"/>ZIP_DIRENT_OFFSET ZIP_DIRENT_OFFSET#define ZIP_DIRENT_OFFSET 42 <anchor id="GsfZipCompressionMethod"/>enum GsfZipCompressionMethod GsfZipCompressionMethodtypedef enum { GSF_ZIP_STORED = 0, /* supported for export */ GSF_ZIP_SHRUNK = 1, GSF_ZIP_REDUCEDx1 = 2, GSF_ZIP_REDUCEDx2 = 3, GSF_ZIP_REDUCEDx3 = 4, GSF_ZIP_REDUCEDx4 = 5, GSF_ZIP_IMPLODED = 6, GSF_ZIP_TOKENIZED = 7, GSF_ZIP_DEFLATED = 8, /* supported for export */ GSF_ZIP_DEFLATED_BETTER = 9, GSF_ZIP_IMPLODED_BETTER = 10 } GsfZipCompressionMethod; <anchor id="ZIP-FILE-HEADER-NAME-SIZE:CAPS"/>ZIP_FILE_HEADER_NAME_SIZE ZIP_FILE_HEADER_NAME_SIZE#define ZIP_FILE_HEADER_NAME_SIZE 26 <anchor id="ZZIP-IS-STREAMED:CAPS"/>ZZIP_IS_STREAMED() ZZIP_IS_STREAMED#define ZZIP_IS_STREAMED(p) (((*(unsigned char*)p)>>3)&1) p : <anchor id="ZIP-FILE-HEADER-EXTRACT:CAPS"/>ZIP_FILE_HEADER_EXTRACT ZIP_FILE_HEADER_EXTRACT#define ZIP_FILE_HEADER_EXTRACT 4 <anchor id="ZIP-TRAILER-SIZE:CAPS"/>ZIP_TRAILER_SIZE ZIP_TRAILER_SIZE#define ZIP_TRAILER_SIZE 22 <anchor id="ZIP-HEADER-TIME:CAPS"/>ZIP_HEADER_TIME ZIP_HEADER_TIME#define ZIP_HEADER_TIME 10 <anchor id="ZIP-FILE-HEADER-SIZE:CAPS"/>ZIP_FILE_HEADER_SIZE ZIP_FILE_HEADER_SIZE#define ZIP_FILE_HEADER_SIZE 30 <anchor id="ZZIP-IS-ENCRYPTED:CAPS"/>ZZIP_IS_ENCRYPTED() ZZIP_IS_ENCRYPTED#define ZZIP_IS_ENCRYPTED(p) ((*(unsigned char*)p)&1) p : <anchor id="ZIP-HEADER-VERSION:CAPS"/>ZIP_HEADER_VERSION ZIP_HEADER_VERSION#define ZIP_HEADER_VERSION 4 <anchor id="ZIP-BUF-SIZE:CAPS"/>ZIP_BUF_SIZE ZIP_BUF_SIZE#define ZIP_BUF_SIZE 512 <anchor id="ZIP-DIRENT-CRC32:CAPS"/>ZIP_DIRENT_CRC32 ZIP_DIRENT_CRC32#define ZIP_DIRENT_CRC32 16 <anchor id="ZIP-HEADER-COMP-SIZE:CAPS"/>ZIP_HEADER_COMP_SIZE ZIP_HEADER_COMP_SIZE#define ZIP_HEADER_COMP_SIZE 18 <anchor id="ZIP-DIRENT-COMPR-METHOD:CAPS"/>ZIP_DIRENT_COMPR_METHOD ZIP_DIRENT_COMPR_METHOD#define ZIP_DIRENT_COMPR_METHOD 10 <anchor id="ZIP-DIRENT-FILE-TYPE:CAPS"/>ZIP_DIRENT_FILE_TYPE ZIP_DIRENT_FILE_TYPE#define ZIP_DIRENT_FILE_TYPE 36 <anchor id="ZIP-FILE-HEADER-EXTRAS-SIZE:CAPS"/>ZIP_FILE_HEADER_EXTRAS_SIZE ZIP_FILE_HEADER_EXTRAS_SIZE#define ZIP_FILE_HEADER_EXTRAS_SIZE 28 <anchor id="ZIP-DIRENT-EXTRACT:CAPS"/>ZIP_DIRENT_EXTRACT ZIP_DIRENT_EXTRACT#define ZIP_DIRENT_EXTRACT 6 <anchor id="ZIP-DIRENT-FILE-MODE:CAPS"/>ZIP_DIRENT_FILE_MODE ZIP_DIRENT_FILE_MODE#define ZIP_DIRENT_FILE_MODE 38 <anchor id="ZIP-DIRENT-FLAGS:CAPS"/>ZIP_DIRENT_FLAGS ZIP_DIRENT_FLAGS#define ZIP_DIRENT_FLAGS 8 <anchor id="ZIP-FILE-HEADER-CSIZE:CAPS"/>ZIP_FILE_HEADER_CSIZE ZIP_FILE_HEADER_CSIZE#define ZIP_FILE_HEADER_CSIZE 18 <anchor id="ZIP-TRAILER-DIR-SIZE:CAPS"/>ZIP_TRAILER_DIR_SIZE ZIP_TRAILER_DIR_SIZE#define ZIP_TRAILER_DIR_SIZE 12 <anchor id="ZIP-TRAILER-COMMENT-SIZE:CAPS"/>ZIP_TRAILER_COMMENT_SIZE ZIP_TRAILER_COMMENT_SIZE#define ZIP_TRAILER_COMMENT_SIZE 20 <anchor id="ZIP-TRAILER-ENTRIES:CAPS"/>ZIP_TRAILER_ENTRIES ZIP_TRAILER_ENTRIES#define ZIP_TRAILER_ENTRIES 8 <anchor id="ZIP-NAME-SEPARATOR:CAPS"/>ZIP_NAME_SEPARATOR ZIP_NAME_SEPARATOR#define ZIP_NAME_SEPARATOR '/' <anchor id="ZIP-HEADER-SIZE:CAPS"/>ZIP_HEADER_SIZE ZIP_HEADER_SIZE#define ZIP_HEADER_SIZE 30 <anchor id="ZIP-HEADER-CRC:CAPS"/>ZIP_HEADER_CRC ZIP_HEADER_CRC#define ZIP_HEADER_CRC 14 <anchor id="ZIP-FILE-HEADER-FLAGS:CAPS"/>ZIP_FILE_HEADER_FLAGS ZIP_FILE_HEADER_FLAGS#define ZIP_FILE_HEADER_FLAGS 6 <anchor id="ZIP-DIRENT-EXTRAS-SIZE:CAPS"/>ZIP_DIRENT_EXTRAS_SIZE ZIP_DIRENT_EXTRAS_SIZE#define ZIP_DIRENT_EXTRAS_SIZE 30 <anchor id="ZIP-HEADER-COMP-METHOD:CAPS"/>ZIP_HEADER_COMP_METHOD ZIP_HEADER_COMP_METHOD#define ZIP_HEADER_COMP_METHOD 8 <anchor id="ZZIP-IS-COMPRLEVEL:CAPS"/>ZZIP_IS_COMPRLEVEL() ZZIP_IS_COMPRLEVEL#define ZZIP_IS_COMPRLEVEL(p) (((*(unsigned char*)p)>>1)&3) p : <anchor id="ZIP-DIRENT-DOSTIME:CAPS"/>ZIP_DIRENT_DOSTIME ZIP_DIRENT_DOSTIME#define ZIP_DIRENT_DOSTIME 12 <anchor id="ZIP-DIRENT-ENCODER:CAPS"/>ZIP_DIRENT_ENCODER ZIP_DIRENT_ENCODER#define ZIP_DIRENT_ENCODER 4 <anchor id="ZIP-HEADER-OS:CAPS"/>ZIP_HEADER_OS ZIP_HEADER_OS#define ZIP_HEADER_OS 5 <anchor id="ZIP-DIRENT-COMMENT-SIZE:CAPS"/>ZIP_DIRENT_COMMENT_SIZE ZIP_DIRENT_COMMENT_SIZE#define ZIP_DIRENT_COMMENT_SIZE 32 <anchor id="ZIP-FILE-HEADER-CRC32:CAPS"/>ZIP_FILE_HEADER_CRC32 ZIP_FILE_HEADER_CRC32#define ZIP_FILE_HEADER_CRC32 14 <anchor id="ZIP-HEADER-FLAGS:CAPS"/>ZIP_HEADER_FLAGS ZIP_HEADER_FLAGS#define ZIP_HEADER_FLAGS 6 <anchor id="ZIP-TRAILER-DISK:CAPS"/>ZIP_TRAILER_DISK ZIP_TRAILER_DISK#define ZIP_TRAILER_DISK 4 <anchor id="ZIP-FILE-HEADER-USIZE:CAPS"/>ZIP_FILE_HEADER_USIZE ZIP_FILE_HEADER_USIZE#define ZIP_FILE_HEADER_USIZE 22 <anchor id="ZIP-TRAILER-TOTAL-ENTRIES:CAPS"/>ZIP_TRAILER_TOTAL_ENTRIES ZIP_TRAILER_TOTAL_ENTRIES#define ZIP_TRAILER_TOTAL_ENTRIES 10 <anchor id="ZIP-HEADER-NAME-LEN:CAPS"/>ZIP_HEADER_NAME_LEN ZIP_HEADER_NAME_LEN#define ZIP_HEADER_NAME_LEN 26 <anchor id="ZIP-HEADER-UNCOMP-SIZE:CAPS"/>ZIP_HEADER_UNCOMP_SIZE ZIP_HEADER_UNCOMP_SIZE#define ZIP_HEADER_UNCOMP_SIZE 22 <anchor id="ZIP-TRAILER-DIR-DISK:CAPS"/>ZIP_TRAILER_DIR_DISK ZIP_TRAILER_DIR_DISK#define ZIP_TRAILER_DIR_DISK 6 <anchor id="ZIP-DIRENT-CSIZE:CAPS"/>ZIP_DIRENT_CSIZE ZIP_DIRENT_CSIZE#define ZIP_DIRENT_CSIZE 20 <anchor id="ZIP-TRAILER-DIR-POS:CAPS"/>ZIP_TRAILER_DIR_POS ZIP_TRAILER_DIR_POS#define ZIP_TRAILER_DIR_POS 16 <anchor id="ZIP-BLOCK-SIZE:CAPS"/>ZIP_BLOCK_SIZE ZIP_BLOCK_SIZE#define ZIP_BLOCK_SIZE 32768 <anchor id="ZIP-DIRENT-NAME-SIZE:CAPS"/>ZIP_DIRENT_NAME_SIZE ZIP_DIRENT_NAME_SIZE#define ZIP_DIRENT_NAME_SIZE 28 <anchor id="ZIP-DIRENT-SIZE:CAPS"/>ZIP_DIRENT_SIZE ZIP_DIRENT_SIZE#define ZIP_DIRENT_SIZE 46 <anchor id="ZIP-DIRENT-DISKSTART:CAPS"/>ZIP_DIRENT_DISKSTART ZIP_DIRENT_DISKSTART#define ZIP_DIRENT_DISKSTART 34 <anchor id="ZIP-HEADER-EXTRA-LEN:CAPS"/>ZIP_HEADER_EXTRA_LEN ZIP_HEADER_EXTRA_LEN#define ZIP_HEADER_EXTRA_LEN 28 <anchor id="ZIP-FILE-HEADER-COMPR-METHOD:CAPS"/>ZIP_FILE_HEADER_COMPR_METHOD ZIP_FILE_HEADER_COMPR_METHOD#define ZIP_FILE_HEADER_COMPR_METHOD 8 <anchor id="ZIP-FILE-HEADER-DOSTIME:CAPS"/>ZIP_FILE_HEADER_DOSTIME ZIP_FILE_HEADER_DOSTIME#define ZIP_FILE_HEADER_DOSTIME 10 Properties <anchor id="GsfInfileZip--compression-level"/>The "<literal>compression-level</literal>" property "compression-level" gint : Read The level of compression used, zero meaning none.Allowed values: [0,10] Default value: 0 <anchor id="GsfInfileZip--internal-parent"/>The "<literal>internal-parent</literal>" property "internal-parent" GsfInfileZip : Write / Construct Only Internal use only. <anchor id="GsfInfileZip--source"/>The "<literal>source</literal>" property "source" GsfInput : Read / Write / Construct Only The archive being interpreted. <anchor id="GsfOutfileZip--compression-level"/>The "<literal>compression-level</literal>" property "compression-level" gint : Read / Write / Construct Only The level of compression used, zero meaning none.Allowed values: [0,10] Default value: 8 <anchor id="GsfOutfileZip--entry-name"/>The "<literal>entry-name</literal>" property "entry-name" gchararray : Read / Write / Construct Only The filename of this member in the archive without path.Default value: NULL <anchor id="GsfOutfileZip--sink"/>The "<literal>sink</literal>" property "sink" GsfOutput : Read / Write / Construct Only Where the archive is written.