1 ----------------------------------------------------------------
2 -- ZLib for Ada thick binding. --
4 -- Copyright (C) 2002-2003 Dmitriy Anisimkov --
6 -- Open source license information is in the zlib.ads file. --
7 ----------------------------------------------------------------
9 -- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
11 package body ZLib.Thin is
13 ZLIB_VERSION : constant Chars_Ptr := zlibVersion;
15 Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
21 function Avail_In (Strm : in Z_Stream) return UInt is
30 function Avail_Out (Strm : in Z_Stream) return UInt is
32 return Strm.Avail_Out;
63 function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is
65 return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size);
68 ------------------------
69 -- Last_Error_Message --
70 ------------------------
72 function Last_Error_Message (Strm : in Z_Stream) return String is
73 use Interfaces.C.Strings;
75 if Strm.msg = Null_Ptr then
78 return Value (Strm.msg);
80 end Last_Error_Message;
87 (Strm : in out Z_Stream;
91 Strm.Next_In := Buffer;
92 Strm.Avail_In := Size;
99 procedure Set_Mem_Func
100 (Strm : in out Z_Stream;
102 Alloc : in alloc_func;
103 Free : in free_func) is
105 Strm.opaque := Opaque;
106 Strm.zalloc := Alloc;
115 (Strm : in out Z_Stream;
119 Strm.Next_Out := Buffer;
120 Strm.Avail_Out := Size;
127 function Total_In (Strm : in Z_Stream) return ULong is
129 return Strm.Total_In;
136 function Total_Out (Strm : in Z_Stream) return ULong is
138 return Strm.Total_Out;