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