with Ada.Strings.Unbounded; use Ada.Strings.Unbounded;
with Zip.Headers; use Zip.Headers;
with Zip.Compress; use Zip.Compress;
with Zip_Streams; use Zip_Streams;
package Zip.Create is
type Zip_Create_info is private;
procedure Create(Info : out Zip_Create_info;
Z_Stream : in Zipstream_Class;
Name : String;
Compress : Zip.Compress.Compression_Method:= Zip.Compress.Shrink);
function Name(Info: Zip_Create_info) return String;
procedure Add_Stream (Info : in out Zip_Create_info;
Stream : Zipstream_Class);
procedure Add_Stream (Info : in out Zip_Create_info;
Stream : Zipstream_Class;
Feedback : in Feedback_proc;
Compressed_Size: out Zip.File_size_type;
Final_Method : out Natural);
procedure Add_File (Info : in out Zip_Create_info;
Name : String;
Name_in_archive : String:= "";
Delete_file_after : Boolean:= False;
Name_UTF_8_encoded: Boolean:= False
);
procedure Add_String (Info : in out Zip_Create_info;
Contents : String;
Name_in_archive : String;
Name_UTF_8_encoded: Boolean:= False
);
procedure Add_String (Info : in out Zip_Create_info;
Contents : Unbounded_String;
Name_in_archive : String;
Name_UTF_8_encoded: Boolean:= False
);
procedure Finish (Info : in out Zip_Create_info);
private
type Dir_entry is record
head : Zip.Headers.Central_File_Header;
name : p_String;
end record;
type Dir_entries is array (Positive range <>) of Dir_entry;
type Pdir_entries is access Dir_entries;
type Zip_Create_info is record
Stream : Zipstream_Class;
Compress : Zip.Compress.Compression_Method;
Contains : Pdir_entries:= null;
Last_entry: Natural:= 0;
end record;
end Zip.Create;