Home | History | Annotate | Line # | Download | only in ada
      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.1.3  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