1*44bedb31SLionel Sambuc---------------------------------------------------------------- 2*44bedb31SLionel Sambuc-- ZLib for Ada thick binding. -- 3*44bedb31SLionel Sambuc-- -- 4*44bedb31SLionel Sambuc-- Copyright (C) 2002-2003 Dmitriy Anisimkov -- 5*44bedb31SLionel Sambuc-- -- 6*44bedb31SLionel Sambuc-- Open source license information is in the zlib.ads file. -- 7*44bedb31SLionel Sambuc---------------------------------------------------------------- 8*44bedb31SLionel Sambuc 9*44bedb31SLionel Sambuc-- Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp 10*44bedb31SLionel Sambuc 11*44bedb31SLionel Sambucpackage body ZLib.Thin is 12*44bedb31SLionel Sambuc 13*44bedb31SLionel Sambuc ZLIB_VERSION : constant Chars_Ptr := zlibVersion; 14*44bedb31SLionel Sambuc 15*44bedb31SLionel Sambuc Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit; 16*44bedb31SLionel Sambuc 17*44bedb31SLionel Sambuc -------------- 18*44bedb31SLionel Sambuc -- Avail_In -- 19*44bedb31SLionel Sambuc -------------- 20*44bedb31SLionel Sambuc 21*44bedb31SLionel Sambuc function Avail_In (Strm : in Z_Stream) return UInt is 22*44bedb31SLionel Sambuc begin 23*44bedb31SLionel Sambuc return Strm.Avail_In; 24*44bedb31SLionel Sambuc end Avail_In; 25*44bedb31SLionel Sambuc 26*44bedb31SLionel Sambuc --------------- 27*44bedb31SLionel Sambuc -- Avail_Out -- 28*44bedb31SLionel Sambuc --------------- 29*44bedb31SLionel Sambuc 30*44bedb31SLionel Sambuc function Avail_Out (Strm : in Z_Stream) return UInt is 31*44bedb31SLionel Sambuc begin 32*44bedb31SLionel Sambuc return Strm.Avail_Out; 33*44bedb31SLionel Sambuc end Avail_Out; 34*44bedb31SLionel Sambuc 35*44bedb31SLionel Sambuc ------------------ 36*44bedb31SLionel Sambuc -- Deflate_Init -- 37*44bedb31SLionel Sambuc ------------------ 38*44bedb31SLionel Sambuc 39*44bedb31SLionel Sambuc function Deflate_Init 40*44bedb31SLionel Sambuc (strm : Z_Streamp; 41*44bedb31SLionel Sambuc level : Int; 42*44bedb31SLionel Sambuc method : Int; 43*44bedb31SLionel Sambuc windowBits : Int; 44*44bedb31SLionel Sambuc memLevel : Int; 45*44bedb31SLionel Sambuc strategy : Int) 46*44bedb31SLionel Sambuc return Int is 47*44bedb31SLionel Sambuc begin 48*44bedb31SLionel Sambuc return deflateInit2 49*44bedb31SLionel Sambuc (strm, 50*44bedb31SLionel Sambuc level, 51*44bedb31SLionel Sambuc method, 52*44bedb31SLionel Sambuc windowBits, 53*44bedb31SLionel Sambuc memLevel, 54*44bedb31SLionel Sambuc strategy, 55*44bedb31SLionel Sambuc ZLIB_VERSION, 56*44bedb31SLionel Sambuc Z_Stream_Size); 57*44bedb31SLionel Sambuc end Deflate_Init; 58*44bedb31SLionel Sambuc 59*44bedb31SLionel Sambuc ------------------ 60*44bedb31SLionel Sambuc -- Inflate_Init -- 61*44bedb31SLionel Sambuc ------------------ 62*44bedb31SLionel Sambuc 63*44bedb31SLionel Sambuc function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is 64*44bedb31SLionel Sambuc begin 65*44bedb31SLionel Sambuc return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size); 66*44bedb31SLionel Sambuc end Inflate_Init; 67*44bedb31SLionel Sambuc 68*44bedb31SLionel Sambuc ------------------------ 69*44bedb31SLionel Sambuc -- Last_Error_Message -- 70*44bedb31SLionel Sambuc ------------------------ 71*44bedb31SLionel Sambuc 72*44bedb31SLionel Sambuc function Last_Error_Message (Strm : in Z_Stream) return String is 73*44bedb31SLionel Sambuc use Interfaces.C.Strings; 74*44bedb31SLionel Sambuc begin 75*44bedb31SLionel Sambuc if Strm.msg = Null_Ptr then 76*44bedb31SLionel Sambuc return ""; 77*44bedb31SLionel Sambuc else 78*44bedb31SLionel Sambuc return Value (Strm.msg); 79*44bedb31SLionel Sambuc end if; 80*44bedb31SLionel Sambuc end Last_Error_Message; 81*44bedb31SLionel Sambuc 82*44bedb31SLionel Sambuc ------------ 83*44bedb31SLionel Sambuc -- Set_In -- 84*44bedb31SLionel Sambuc ------------ 85*44bedb31SLionel Sambuc 86*44bedb31SLionel Sambuc procedure Set_In 87*44bedb31SLionel Sambuc (Strm : in out Z_Stream; 88*44bedb31SLionel Sambuc Buffer : in Voidp; 89*44bedb31SLionel Sambuc Size : in UInt) is 90*44bedb31SLionel Sambuc begin 91*44bedb31SLionel Sambuc Strm.Next_In := Buffer; 92*44bedb31SLionel Sambuc Strm.Avail_In := Size; 93*44bedb31SLionel Sambuc end Set_In; 94*44bedb31SLionel Sambuc 95*44bedb31SLionel Sambuc ------------------ 96*44bedb31SLionel Sambuc -- Set_Mem_Func -- 97*44bedb31SLionel Sambuc ------------------ 98*44bedb31SLionel Sambuc 99*44bedb31SLionel Sambuc procedure Set_Mem_Func 100*44bedb31SLionel Sambuc (Strm : in out Z_Stream; 101*44bedb31SLionel Sambuc Opaque : in Voidp; 102*44bedb31SLionel Sambuc Alloc : in alloc_func; 103*44bedb31SLionel Sambuc Free : in free_func) is 104*44bedb31SLionel Sambuc begin 105*44bedb31SLionel Sambuc Strm.opaque := Opaque; 106*44bedb31SLionel Sambuc Strm.zalloc := Alloc; 107*44bedb31SLionel Sambuc Strm.zfree := Free; 108*44bedb31SLionel Sambuc end Set_Mem_Func; 109*44bedb31SLionel Sambuc 110*44bedb31SLionel Sambuc ------------- 111*44bedb31SLionel Sambuc -- Set_Out -- 112*44bedb31SLionel Sambuc ------------- 113*44bedb31SLionel Sambuc 114*44bedb31SLionel Sambuc procedure Set_Out 115*44bedb31SLionel Sambuc (Strm : in out Z_Stream; 116*44bedb31SLionel Sambuc Buffer : in Voidp; 117*44bedb31SLionel Sambuc Size : in UInt) is 118*44bedb31SLionel Sambuc begin 119*44bedb31SLionel Sambuc Strm.Next_Out := Buffer; 120*44bedb31SLionel Sambuc Strm.Avail_Out := Size; 121*44bedb31SLionel Sambuc end Set_Out; 122*44bedb31SLionel Sambuc 123*44bedb31SLionel Sambuc -------------- 124*44bedb31SLionel Sambuc -- Total_In -- 125*44bedb31SLionel Sambuc -------------- 126*44bedb31SLionel Sambuc 127*44bedb31SLionel Sambuc function Total_In (Strm : in Z_Stream) return ULong is 128*44bedb31SLionel Sambuc begin 129*44bedb31SLionel Sambuc return Strm.Total_In; 130*44bedb31SLionel Sambuc end Total_In; 131*44bedb31SLionel Sambuc 132*44bedb31SLionel Sambuc --------------- 133*44bedb31SLionel Sambuc -- Total_Out -- 134*44bedb31SLionel Sambuc --------------- 135*44bedb31SLionel Sambuc 136*44bedb31SLionel Sambuc function Total_Out (Strm : in Z_Stream) return ULong is 137*44bedb31SLionel Sambuc begin 138*44bedb31SLionel Sambuc return Strm.Total_Out; 139*44bedb31SLionel Sambuc end Total_Out; 140*44bedb31SLionel Sambuc 141*44bedb31SLionel Sambucend ZLib.Thin; 142