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