You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
3.3 KiB
141 lines
3.3 KiB
---------------------------------------------------------------- |
|
-- ZLib for Ada thick binding. -- |
|
-- -- |
|
-- Copyright (C) 2002-2003 Dmitriy Anisimkov -- |
|
-- -- |
|
-- Open source license information is in the zlib.ads file. -- |
|
---------------------------------------------------------------- |
|
|
|
-- $Id: zlib-thin.adb,v 1.8 2003/12/14 18:27:31 vagul Exp $ |
|
|
|
package body ZLib.Thin is |
|
|
|
ZLIB_VERSION : constant Chars_Ptr := zlibVersion; |
|
|
|
Z_Stream_Size : constant Int := Z_Stream'Size / System.Storage_Unit; |
|
|
|
-------------- |
|
-- Avail_In -- |
|
-------------- |
|
|
|
function Avail_In (Strm : in Z_Stream) return UInt is |
|
begin |
|
return Strm.Avail_In; |
|
end Avail_In; |
|
|
|
--------------- |
|
-- Avail_Out -- |
|
--------------- |
|
|
|
function Avail_Out (Strm : in Z_Stream) return UInt is |
|
begin |
|
return Strm.Avail_Out; |
|
end Avail_Out; |
|
|
|
------------------ |
|
-- Deflate_Init -- |
|
------------------ |
|
|
|
function Deflate_Init |
|
(strm : Z_Streamp; |
|
level : Int; |
|
method : Int; |
|
windowBits : Int; |
|
memLevel : Int; |
|
strategy : Int) |
|
return Int is |
|
begin |
|
return deflateInit2 |
|
(strm, |
|
level, |
|
method, |
|
windowBits, |
|
memLevel, |
|
strategy, |
|
ZLIB_VERSION, |
|
Z_Stream_Size); |
|
end Deflate_Init; |
|
|
|
------------------ |
|
-- Inflate_Init -- |
|
------------------ |
|
|
|
function Inflate_Init (strm : Z_Streamp; windowBits : Int) return Int is |
|
begin |
|
return inflateInit2 (strm, windowBits, ZLIB_VERSION, Z_Stream_Size); |
|
end Inflate_Init; |
|
|
|
------------------------ |
|
-- Last_Error_Message -- |
|
------------------------ |
|
|
|
function Last_Error_Message (Strm : in Z_Stream) return String is |
|
use Interfaces.C.Strings; |
|
begin |
|
if Strm.msg = Null_Ptr then |
|
return ""; |
|
else |
|
return Value (Strm.msg); |
|
end if; |
|
end Last_Error_Message; |
|
|
|
------------ |
|
-- Set_In -- |
|
------------ |
|
|
|
procedure Set_In |
|
(Strm : in out Z_Stream; |
|
Buffer : in Voidp; |
|
Size : in UInt) is |
|
begin |
|
Strm.Next_In := Buffer; |
|
Strm.Avail_In := Size; |
|
end Set_In; |
|
|
|
------------------ |
|
-- Set_Mem_Func -- |
|
------------------ |
|
|
|
procedure Set_Mem_Func |
|
(Strm : in out Z_Stream; |
|
Opaque : in Voidp; |
|
Alloc : in alloc_func; |
|
Free : in free_func) is |
|
begin |
|
Strm.opaque := Opaque; |
|
Strm.zalloc := Alloc; |
|
Strm.zfree := Free; |
|
end Set_Mem_Func; |
|
|
|
------------- |
|
-- Set_Out -- |
|
------------- |
|
|
|
procedure Set_Out |
|
(Strm : in out Z_Stream; |
|
Buffer : in Voidp; |
|
Size : in UInt) is |
|
begin |
|
Strm.Next_Out := Buffer; |
|
Strm.Avail_Out := Size; |
|
end Set_Out; |
|
|
|
-------------- |
|
-- Total_In -- |
|
-------------- |
|
|
|
function Total_In (Strm : in Z_Stream) return ULong is |
|
begin |
|
return Strm.Total_In; |
|
end Total_In; |
|
|
|
--------------- |
|
-- Total_Out -- |
|
--------------- |
|
|
|
function Total_Out (Strm : in Z_Stream) return ULong is |
|
begin |
|
return Strm.Total_Out; |
|
end Total_Out; |
|
|
|
end ZLib.Thin;
|
|
|