]> gitweb.factorcode.org Git - factor.git/commitdiff
compression.zlib.ffi: Add some structures and functions for streaming unzipping.
authorDoug Coleman <doug.coleman@gmail.com>
Tue, 19 May 2015 17:55:47 +0000 (10:55 -0700)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 19 May 2015 17:55:47 +0000 (10:55 -0700)
basis/compression/zlib/ffi/ffi.factor

index 5325b588cfd08f730208af37c0e4c89740839f28..77781dea8903bbcc3e45142806fbc6ac74b0c4d8 100644 (file)
@@ -1,7 +1,7 @@
 ! Copyright (C) 2009 Doug Coleman.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: alien alien.c-types alien.libraries alien.syntax
-combinators system ;
+classes.struct combinators system ;
 IN: compression.zlib.ffi
 
 << "zlib" {
@@ -29,3 +29,60 @@ TYPEDEF: ulong uLong
 FUNCTION: int compress ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen ) ;
 FUNCTION: int compress2 ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen, int level ) ;
 FUNCTION: int uncompress ( Bytef* dest, uLongf* destLen, Bytef* source, uLong sourceLen ) ;
+
+STRUCT: z_stream
+    { next_in uchar* }
+    { avail_in uint }
+    { total_in ulong }
+
+    { next_out uchar* }
+    { avail_out uint }
+    { total_out ulong }
+
+    { msg char* }
+    { state void* }
+
+    { zalloc void* }
+    { zfree void* }
+    { opaque void* }
+
+    { data_type int }
+    { adler ulong }
+    { reserved ulong } ;
+
+TYPEDEF: z_stream* z_streamp
+
+STRUCT: gz_header
+    { text int }
+    { time ulong }
+    { xflags int }
+    { os int }
+    { extra uchar* }
+    { extra_len uint }
+    { extra_max uint }
+    { name uchar* }
+    { name_max uint }
+    { comment uchar* }
+    { comm_max uint }
+    { hcrc int }
+    { done int } ;
+
+TYPEDEF: gz_header* gz_headerp
+
+CONSTANT: ZLIB_VERSION "1.2.5"
+
+FUNCTION: int inflateInit_ ( z_streamp strm, c-string version, int stream_size ) ;
+FUNCTION: int inflateInit2_ ( z_streamp strm, int windowBits, c-string version, int stream_size ) ;
+FUNCTION: int inflateReset ( z_streamp strm ) ;
+FUNCTION: int inflateEnd ( z_streamp strm ) ;
+
+CONSTANT: Z_NO_FLUSH      0
+CONSTANT: Z_PARTIAL_FLUSH 1
+CONSTANT: Z_SYNC_FLUSH    2
+CONSTANT: Z_FULL_FLUSH    3
+CONSTANT: Z_FINISH        4
+CONSTANT: Z_BLOCK         5
+CONSTANT: Z_TREES         6
+
+FUNCTION: int inflate ( z_streamp strm, int flush ) ;
+FUNCTION: int inflateGetHeader ( z_streamp strm, gz_headerp head ) ;