package Zip is
type PKZip_method is ( store, -- C,D shrink, -- C,D reduce_1, -- C,D reduce_2, -- C,D reduce_3, -- C,D reduce_4, -- C,D implode, -- D tokenize, deflate, -- D deflate_e, -- D - Enhanced deflate bzip2, -- D lzma, ppmd, unknown );
type Feedback_proc is access procedure ( percents_done: in Natural; -- %'s completed entry_skipped: in Boolean; -- indicates one can show "skipped", no %'s user_abort : out Boolean -- e.g. transmit a "click on Cancel" here );
type Byte_Buffer is array(Integer range <>) of aliased Byte;
type p_Byte_Buffer is access Byte_Buffer;
Form_For_IO_Open_N_Create : Ada.Strings.Unbounded.Unbounded_String
:= Ada.Strings.Unbounded.Null_Unbounded_String;
web : constant String:= "http://unzip-ada.sf.net/";
procedure Load
( | info | : out Zip_info; |
from | : in String; | |
case_sensitive | : in Boolean:= False ); |
procedure Load
( | info | : out Zip_info; |
from | : in Zip_Streams.Zipstream_Class; | |
case_sensitive | : in Boolean:= False ); |
function Is_loaded
( | info | : in Zip_info ) return Boolean; |
function Zip_name
( | info | : in Zip_info ) return String; |
function Zip_comment
( | info | : in Zip_info ) return String; |
function Zip_stream
( | info | : in Zip_info ) return Zip_Streams.Zipstream_Class; |
function Entries
( | info | : in Zip_info ) return Natural; |
procedure Delete
( | info | : in out Zip_info ); |
function Method_from_code
( | x | : Interfaces.Unsigned_16) return PKZip_method; |
function Method_from_code
( | x | : Natural) return PKZip_method; |
function Convert
( | date | : in Ada.Calendar.Time) return Time renames Zip_Streams.Calendar.Convert; |
function Convert
( | date | : in Time) return Ada.Calendar.Time renames Zip_Streams.Calendar.Convert; |
generic with procedure Action
( | name | : String ); |
-- 'name' is compressed entry's name procedure Traverse( z | : Zip_info ); |
generic with procedure Action
( | name | : String; |
-- 'name' is compressed entry's name file_index | : Positive; | |
comp_size | : File_size_type; | |
uncomp_size | : File_size_type; | |
crc_32 | : Interfaces.Unsigned_32; | |
date_time | : Time; | |
method | : PKZip_method ); | |
procedure Traverse_verbose( z | : Zip_info ); |
procedure Tree_stat
( | z | : in Zip_info; |
total | : out Natural; | |
max_depth | : out Natural; | |
avg_depth | : out Float ); |
procedure Find_first_offset
( | file | : in Zip_Streams.Zipstream_Class; |
file_index | : out Positive ); |
procedure Find_offset
( | file | : in Zip_Streams.Zipstream_Class; |
name | : in String; | |
case_sensitive | : in Boolean; | |
file_index | : out Positive; | |
comp_size | : out File_size_type; | |
uncomp_size | : out File_size_type ); |
procedure Find_offset
( | info | : in Zip_info; |
name | : in String; | |
case_sensitive | : in Boolean; | |
file_index | : out Ada.Streams.Stream_IO.Positive_Count; | |
comp_size | : out File_size_type; | |
uncomp_size | : out File_size_type ); |
procedure Get_sizes
( | info | : in Zip_info; |
name | : in String; | |
case_sensitive | : in Boolean; | |
comp_size | : out File_size_type; | |
uncomp_size | : out File_size_type ); |
procedure BlockRead
( | file | : in Ada.Streams.Stream_IO.File_Type; |
buffer | : out Byte_Buffer; | |
actually_read | : out Natural -- = buffer'Length if no end of file before last buffer element ); |
procedure BlockRead
( | stream | : in Zip_Streams.Zipstream_Class; |
buffer | : out Byte_Buffer; | |
actually_read | : out Natural -- = buffer'Length if no end of stream before last buffer element ); |
procedure BlockRead
( | stream | : in Zip_Streams.Zipstream_Class; |
buffer | : out Byte_Buffer ); |
procedure BlockWrite
( | stream | : in out Ada.Streams.Root_Stream_Type'Class; |
buffer | : in Byte_Buffer ); |
procedure Write_as_text
( | out_file | : Ada.Text_IO.File_Type; |
buffer | : Byte_Buffer; | |
last_char | : in out Character -- track line-ending characters between writes ); |