1275793eaSopenharmony_ci----------------------------------------------------------------
2275793eaSopenharmony_ci--  ZLib for Ada thick binding.                               --
3275793eaSopenharmony_ci--                                                            --
4275793eaSopenharmony_ci--  Copyright (C) 2002-2003 Dmitriy Anisimkov                 --
5275793eaSopenharmony_ci--                                                            --
6275793eaSopenharmony_ci--  Open source license information is in the zlib.ads file.  --
7275793eaSopenharmony_ci----------------------------------------------------------------
8275793eaSopenharmony_ci
9275793eaSopenharmony_ci--  $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $
10275793eaSopenharmony_ci
11275793eaSopenharmony_cipackage body ZLib.Thin is
12275793eaSopenharmony_ci
13275793eaSopenharmony_ci   ZLIB_VERSION  : constant Chars_Ptr := zlibVersion;
14275793eaSopenharmony_ci
15275793eaSopenharmony_ci   Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit;
16275793eaSopenharmony_ci
17275793eaSopenharmony_ci   --------------
18275793eaSopenharmony_ci   -- Avail_In --
19275793eaSopenharmony_ci   --------------
20275793eaSopenharmony_ci
21275793eaSopenharmony_ci   function Avail_In (Strm : in Z_Stream) return UInt is
22275793eaSopenharmony_ci   begin
23275793eaSopenharmony_ci      return Strm.Avail_In;
24275793eaSopenharmony_ci   end Avail_In;
25275793eaSopenharmony_ci
26275793eaSopenharmony_ci   ---------------
27275793eaSopenharmony_ci   -- Avail_Out --
28275793eaSopenharmony_ci   ---------------
29275793eaSopenharmony_ci
30275793eaSopenharmony_ci   function Avail_Out (Strm : in Z_Stream) return UInt is
31275793eaSopenharmony_ci   begin
32275793eaSopenharmony_ci      return Strm.Avail_Out;
33275793eaSopenharmony_ci   end Avail_Out;
34275793eaSopenharmony_ci
35275793eaSopenharmony_ci   ------------------
36275793eaSopenharmony_ci   -- Deflate_Init --
37275793eaSopenharmony_ci   ------------------
38275793eaSopenharmony_ci
39275793eaSopenharmony_ci   function Deflate_Init
40275793eaSopenharmony_ci     (strm       : Z_Streamp;
41275793eaSopenharmony_ci      level      : Int;
42275793eaSopenharmony_ci      method     : Int;
43275793eaSopenharmony_ci      windowBits : Int;
44275793eaSopenharmony_ci      memLevel   : Int;
45275793eaSopenharmony_ci      strategy   : Int)
46275793eaSopenharmony_ci      return       Int is
47275793eaSopenharmony_ci   begin
48275793eaSopenharmony_ci      return deflateInit2
49275793eaSopenharmony_ci               (strm,
50275793eaSopenharmony_ci                level,
51275793eaSopenharmony_ci                method,
52275793eaSopenharmony_ci                windowBits,
53275793eaSopenharmony_ci                memLevel,
54275793eaSopenharmony_ci                strategy,
55275793eaSopenharmony_ci                ZLIB_VERSION,
56275793eaSopenharmony_ci                Z_Stream_Size);
57275793eaSopenharmony_ci   end Deflate_Init;
58275793eaSopenharmony_ci
59275793eaSopenharmony_ci   ------------------
60275793eaSopenharmony_ci   -- Inflate_Init --
61275793eaSopenharmony_ci   ------------------
62275793eaSopenharmony_ci
63275793eaSopenharmony_ci   function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is
64275793eaSopenharmony_ci   begin
65275793eaSopenharmony_ci      return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size);
66275793eaSopenharmony_ci   end Inflate_Init;
67275793eaSopenharmony_ci
68275793eaSopenharmony_ci   ------------------------
69275793eaSopenharmony_ci   -- Last_Error_Message --
70275793eaSopenharmony_ci   ------------------------
71275793eaSopenharmony_ci
72275793eaSopenharmony_ci   function Last_Error_Message (Strm : in Z_Stream) return String is
73275793eaSopenharmony_ci      use Interfaces.C.Strings;
74275793eaSopenharmony_ci   begin
75275793eaSopenharmony_ci      if Strm.msg = Null_Ptr then
76275793eaSopenharmony_ci         return "";
77275793eaSopenharmony_ci      else
78275793eaSopenharmony_ci         return Value (Strm.msg);
79275793eaSopenharmony_ci      end if;
80275793eaSopenharmony_ci   end Last_Error_Message;
81275793eaSopenharmony_ci
82275793eaSopenharmony_ci   ------------
83275793eaSopenharmony_ci   -- Set_In --
84275793eaSopenharmony_ci   ------------
85275793eaSopenharmony_ci
86275793eaSopenharmony_ci   procedure Set_In
87275793eaSopenharmony_ci     (Strm   : in out Z_Stream;
88275793eaSopenharmony_ci      Buffer : in     Voidp;
89275793eaSopenharmony_ci      Size   : in     UInt) is
90275793eaSopenharmony_ci   begin
91275793eaSopenharmony_ci      Strm.Next_In  := Buffer;
92275793eaSopenharmony_ci      Strm.Avail_In := Size;
93275793eaSopenharmony_ci   end Set_In;
94275793eaSopenharmony_ci
95275793eaSopenharmony_ci   ------------------
96275793eaSopenharmony_ci   -- Set_Mem_Func --
97275793eaSopenharmony_ci   ------------------
98275793eaSopenharmony_ci
99275793eaSopenharmony_ci   procedure Set_Mem_Func
100275793eaSopenharmony_ci     (Strm   : in out Z_Stream;
101275793eaSopenharmony_ci      Opaque : in     Voidp;
102275793eaSopenharmony_ci      Alloc  : in     alloc_func;
103275793eaSopenharmony_ci      Free   : in     free_func) is
104275793eaSopenharmony_ci   begin
105275793eaSopenharmony_ci      Strm.opaque := Opaque;
106275793eaSopenharmony_ci      Strm.zalloc := Alloc;
107275793eaSopenharmony_ci      Strm.zfree  := Free;
108275793eaSopenharmony_ci   end Set_Mem_Func;
109275793eaSopenharmony_ci
110275793eaSopenharmony_ci   -------------
111275793eaSopenharmony_ci   -- Set_Out --
112275793eaSopenharmony_ci   -------------
113275793eaSopenharmony_ci
114275793eaSopenharmony_ci   procedure Set_Out
115275793eaSopenharmony_ci     (Strm   : in out Z_Stream;
116275793eaSopenharmony_ci      Buffer : in     Voidp;
117275793eaSopenharmony_ci      Size   : in     UInt) is
118275793eaSopenharmony_ci   begin
119275793eaSopenharmony_ci      Strm.Next_Out  := Buffer;
120275793eaSopenharmony_ci      Strm.Avail_Out := Size;
121275793eaSopenharmony_ci   end Set_Out;
122275793eaSopenharmony_ci
123275793eaSopenharmony_ci   --------------
124275793eaSopenharmony_ci   -- Total_In --
125275793eaSopenharmony_ci   --------------
126275793eaSopenharmony_ci
127275793eaSopenharmony_ci   function Total_In (Strm : in Z_Stream) return ULong is
128275793eaSopenharmony_ci   begin
129275793eaSopenharmony_ci      return Strm.Total_In;
130275793eaSopenharmony_ci   end Total_In;
131275793eaSopenharmony_ci
132275793eaSopenharmony_ci   ---------------
133275793eaSopenharmony_ci   -- Total_Out --
134275793eaSopenharmony_ci   ---------------
135275793eaSopenharmony_ci
136275793eaSopenharmony_ci   function Total_Out (Strm : in Z_Stream) return ULong is
137275793eaSopenharmony_ci   begin
138275793eaSopenharmony_ci      return Strm.Total_Out;
139275793eaSopenharmony_ci   end Total_Out;
140275793eaSopenharmony_ci
141275793eaSopenharmony_ciend ZLib.Thin;
142