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