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