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