Index

Package: UnZip.Streams

Description

package UnZip.Streams is
UnZip.Streams -------------- Extracts, as a stream, a file which is has been compressed into a Zip archive. The Zip archive itself (the input) can be a file or a more general stream. This package is resembling Ada.Streams.Stream_IO, to facilitate transition.

Classes

Unzip_Stream_Type (private)

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;

Ancestors:

Ada.Streams.Root_Stream_Type

Primitive operations:

Read (overriding Ada.Streams.Read)
Write (overriding Ada.Streams.Write)

Types

Stream_Access

subtype Stream_Access is Ada.Streams.Stream_IO.Stream_Access;

References:

unzip-streams.ads:19:12 (declaration)
unzip-streams.adb:326:52 (reference)
unzip-streams.adb:328:12 (reference)
unzip-streams.ads:64:53 (reference)

Zipped_File_Type

type Zipped_File_Type is private;

UZS_state (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
     );

References:

unzip-streams.ads:71:9 (declaration)
unzip-streams.ads:82:22 (reference)

p_String (private)

type p_String is access String;

References:

unzip-streams.ads:79:9 (declaration)
unzip-streams.adb:10:42 (reference)
unzip-streams.ads:85:22 (reference)

Constants & Global variables

Use_Error

Use_Error    : exception renames Ada.IO_Exceptions.Use_Error;

References:

unzip-streams.ads:66:4 (declaration)
unzip-streams.adb:162:14 (reference)
unzip-streams.adb:181:14 (reference)
unzip-streams.adb:201:13 (reference)
unzip-streams.adb:286:13 (reference)

End_Error

End_Error    : exception renames Ada.IO_Exceptions.End_Error;

References:

unzip-streams.ads:67:4 (declaration)

Subprograms & Entries

Open

procedure Open     
(File: in out Zipped_File_Type;
-- File-in-archive handle Archive_Name: in String;
-- Name of archive file Name: in String;
-- Name of zipped entry Password: in String := "";
-- Decryption password Case_sensitive: in Boolean:= False );

Calls:

Open defined at unzip-streams.ads:51:14
Zip.Load defined at zip.ads:63:13
Version: Zip as a file

Open

procedure Open     
(File: in out Zipped_File_Type;
-- File-in-archive handle Archive_Stream: in Zip_Streams.Zipstream_Class;
-- Archive's stream Name: in String;
-- Name of zipped entry Password: in String := "";
-- Decryption password Case_sensitive: in Boolean:= False );

Calls:

Open defined at unzip-streams.ads:51:14
Zip.Load defined at zip.ads:71:13
Version: Zip as a stream

Open

procedure Open     
(File: in out Zipped_File_Type;
-- File-in-archive handle Archive_Info: in Zip.Zip_info;
-- Archive's Zip_info Name: in String;
-- Name of zipped entry Password: in String := "";
-- Decryption password Case_sensitive: in Boolean:= False );

Calls:

Close defined at zip_streams.ads:101:14
Open defined at zip_streams.ads:94:14
SetName defined at zip_streams.ads:50:14
UnZip.Streams.S_Extract defined at unzip-streams.adb:128:13
Zip.Zip_name defined at zip.ads:90:12
Zip.Zip_stream defined at zip.ads:94:12

Is_Open

function Is_Open     
(File: in Zipped_File_Type)
return Boolean;

End_Of_File

function End_Of_File 
(File: in Zipped_File_Type)
return Boolean;

Read (private)

procedure Read     
(Stream: in out Unzip_Stream_Type;
Item: out Ada.Streams.Stream_Element_Array;
Last: out Ada.Streams.Stream_Element_Offset);

Write (private)

procedure Write     
(Stream: in out Unzip_Stream_Type;
Item: in Ada.Streams.Stream_Element_Array);