142 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ada
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Ada
		
	
	
	
	
	
----------------------------------------------------------------
 | 
						|
--  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;
 |