package UnZip.Streams is
type UnZip_Stream_Type is new Ada.Streams.Root_Stream_Type with record state : UZS_state := uninitialized; archive_info : Zip.Zip_info; -- archive info (.zip file, directory) delete_info_on_closing : Boolean; file_name : p_String; -- name of zipped file to unzip from archive Uncompressed : p_Stream_Element_Array; -- whole uncompressed data index : Ada.Streams.Stream_Element_Offset; end record;
subtype Stream_Access is Ada.Streams.Stream_IO.Stream_Access;
type Zipped_File_Type is private;
type UZS_state is ( uninitialized, data_uncompressed, -- In that model, all data is unzipped in one -- time, into memory. If you have a smarter -- idea (small buffer with tasking, write me!) end_of_zip -- We have reached the end, not yet closed );
type p_String is access String;
Use_Error : exception renames Ada.IO_Exceptions.Use_Error;
End_Error : exception renames Ada.IO_Exceptions.End_Error;
procedure Open
( | File | : in out Zipped_File_Type; |
-- File - in - archive handle Archive_Name | : String; | |
-- Name of archive file Name | : String; | |
-- Name of zipped entry Password | : String := ""; | |
-- Decryption password Case_sensitive | : Boolean := False ); |
procedure Open
( | File | : in out Zipped_File_Type; |
-- File - in - archive handle Archive_Stream | : Zip_Streams.Zipstream_Class; | |
-- Archive's stream Name | : String; | |
-- Name of zipped entry Password | : String := ""; | |
-- Decryption password Case_sensitive | : Boolean := False ); |
procedure Open
( | File | : in out Zipped_File_Type; |
-- File - in - archive handle Archive_Info | : Zip.Zip_info; | |
-- Archive's Zip_info Name | : String; | |
-- Name of zipped entry Password | : String := ""; | |
-- Decryption password Case_sensitive | : Boolean := False ); |
procedure Close
( | File | : in out Zipped_File_Type); |
function Is_Open
( | File | : Zipped_File_Type) return Boolean; |
function End_Of_File
( | File | : Zipped_File_Type) return Boolean; |
function Stream
( | File | : Zipped_File_Type) return Stream_Access; |
overriding procedure Read
( | UnZip_Stream | : in out UnZip_Stream_Type; |
Item | : out Ada.Streams.Stream_Element_Array; | |
Last | : out Ada.Streams.Stream_Element_Offset); |
overriding procedure Write
( | UnZip_Stream | : in out UnZip_Stream_Type; |
Item | : Ada.Streams.Stream_Element_Array); |