| ---------------------------------------------------------------- | |
| -- ZLib for Ada thick binding. -- | |
| -- -- | |
| -- Copyright (C) 2002-2003 Dmitriy Anisimkov -- | |
| -- -- | |
| -- Open source license information is in the zlib.ads file. -- | |
| ---------------------------------------------------------------- | |
| -- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $ | |
| package body ZLib.Thin is | |
| ZLIB_VERSION : constant Chars_Ptr := zlibVersion; | |
| Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit; | |
| -------------- | |
| -- Avail_In -- | |
| -------------- | |
| function Avail_In (Strm : in Z_Stream) return UInt is | |
| begin | |
| return Strm.Avail_In; | |
| end Avail_In; | |
| --------------- | |
| -- Avail_Out -- | |
| --------------- | |
| function Avail_Out (Strm : in Z_Stream) return UInt is | |
| begin | |
| return Strm.Avail_Out; | |
| end Avail_Out; | |
| ------------------ | |
| -- Deflate_Init -- | |
| ------------------ | |
| function Deflate_Init | |
| (strm : Z_Streamp; | |
| level : Int; | |
| method : Int; | |
| windowBits : Int; | |
| memLevel : Int; | |
| strategy : Int) | |
| return Int is | |
| begin | |
| return deflateInit2 | |
| (strm, | |
| level, | |
| method, | |
| windowBits, | |
| memLevel, | |
| strategy, | |
| ZLIB_VERSION, | |
| Z_Stream_Size); | |
| end Deflate_Init; | |
| ------------------ | |
| -- Inflate_Init -- | |
| ------------------ | |
| function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is | |
| begin | |
| return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size); | |
| end Inflate_Init; | |
| ------------------------ | |
| -- Last_Error_Message -- | |
| ------------------------ | |
| function Last_Error_Message (Strm : in Z_Stream) return String is | |
| use Interfaces.C.Strings; | |
| begin | |
| if Strm.msg = Null_Ptr then | |
| return ""; | |
| else | |
| return Value (Strm.msg); | |
| end if; | |
| end Last_Error_Message; | |
| ------------ | |
| -- Set_In -- | |
| ------------ | |
| procedure Set_In | |
| (Strm : in out Z_Stream; | |
| Buffer : in Voidp; | |
| Size : in UInt) is | |
| begin | |
| Strm.Next_In := Buffer; | |
| Strm.Avail_In := Size; | |
| end Set_In; | |
| ------------------ | |
| -- Set_Mem_Func -- | |
| ------------------ | |
| procedure Set_Mem_Func | |
| (Strm : in out Z_Stream; | |
| Opaque : in Voidp; | |
| Alloc : in alloc_func; | |
| Free : in free_func) is | |
| begin | |
| Strm.opaque := Opaque; | |
| Strm.zalloc := Alloc; | |
| Strm.zfree := Free; | |
| end Set_Mem_Func; | |
| ------------- | |
| -- Set_Out -- | |
| ------------- | |
| procedure Set_Out | |
| (Strm : in out Z_Stream; | |
| Buffer : in Voidp; | |
| Size : in UInt) is | |
| begin | |
| Strm.Next_Out := Buffer; | |
| Strm.Avail_Out := Size; | |
| end Set_Out; | |
| -------------- | |
| -- Total_In -- | |
| -------------- | |
| function Total_In (Strm : in Z_Stream) return ULong is | |
| begin | |
| return Strm.Total_In; | |
| end Total_In; | |
| --------------- | |
| -- Total_Out -- | |
| --------------- | |
| function Total_Out (Strm : in Z_Stream) return ULong is | |
| begin | |
| return Strm.Total_Out; | |
| end Total_Out; | |
| end ZLib.Thin; |