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