Index

Package: Zip_Streams

Description

package Zip_Streams is
Contributed by ITEC - NXP Semiconductors June 2008 The Zip_Streams package defines an abstract stream type with name, time and an index for random access. In addition, this package provides two ready-to-use derivations: - Unbounded_Stream, for using in-memory streaming - ZipFile_Stream, for accessing files Change log: ========== 25-Nov-2009: GdM: Added an own time type -> it is possible to bypass Ada.Calendar 18-Jan-2009: GdM: Fixed Zip_Streams.Read which did read only Item's first element

Packages

Calendar

Classes

Root_Zipstream_Type (abstract)

type Root_Zipstream_Type is abstract new Ada.Streams.Root_Stream_Type with null record;

Ancestors:

Ada.Streams.Root_Stream_Type

Immediate Children:

Primitive operations:

Ada.Streams.Read (Inherited)
Ada.Streams.Write (Inherited)
End_Of_Stream

Unbounded_Stream

type Unbounded_Stream is new Root_Zipstream_Type with private;

Ancestors:

Ada.Streams.Root_Stream_Type

Primitive operations:

End_Of_Stream (overriding End_Of_Stream)
GetName (overriding GetName)
GetTime (overriding GetTime)
Index (overriding Index)
Read (overriding Ada.Streams.Read)
Set_Index (overriding Set_Index)
SetName (overriding SetName)
SetTime (overriding SetTime)
Size (overriding Size)
Write (overriding Ada.Streams.Write)

References:

zip_streams.ads:78:9 (declaration)
zip-create.adb:181:36 (reference)
zip_streams.adb:27:25 (reference)
zip_streams.adb:32:32 (reference)
zip_streams.adb:40:23 (reference)
zip_streams.adb:67:23 (reference)
zip_streams.adb:102:36 (reference)
zip_streams.adb:117:30 (reference)
zip_streams.adb:122:31 (reference)
zip_streams.adb:127:33 (reference)
zip_streams.adb:132:32 (reference)
zip_streams.adb:137:33 (reference)
zip_streams.adb:142:32 (reference)
zip_streams.adb:147:39 (reference)
zip_streams.ads:81:25 (reference)
zip_streams.ads:85:32 (reference)
zip_streams.ads:142:9 (full declaration)
zip_streams.ads:151:23 (reference)
zip_streams.ads:158:23 (reference)
zip_streams.ads:162:36 (reference)
zip_streams.ads:165:31 (reference)
zip_streams.ads:168:30 (reference)
zip_streams.ads:171:34 (reference)
zip_streams.ads:174:32 (reference)
zip_streams.ads:177:33 (reference)
zip_streams.ads:181:32 (reference)
zip_streams.ads:184:39 (reference)
------------------------------------------------------------------- Unbounded_Stream: stream based on an in-memory Unbounded_String -- -------------------------------------------------------------------

ZipFile_Stream

type ZipFile_Stream is new Root_Zipstream_Type with private;

Ancestors:

Ada.Streams.Root_Stream_Type

Primitive operations:

End_Of_Stream (overriding End_Of_Stream)
GetName (overriding GetName)
GetTime (overriding GetTime)
Index (overriding Index)
Read (overriding Ada.Streams.Read)
Set_Index (overriding Set_Index)
SetName (overriding SetName)
SetTime (overriding SetTime)
Size (overriding Size)
Write (overriding Ada.Streams.Write)

References:

zip_streams.ads:90:9 (declaration)
unzip-streams.adb:194:28 (reference)
unzip.adb:444:28 (reference)
unzip.adb:492:28 (reference)
unzip.adb:538:28 (reference)
unzip.adb:626:28 (reference)
unzip.adb:681:28 (reference)
zip-create.adb:21:26 (reference)
zip-create.adb:22:29 (reference)
zip-create.adb:146:37 (reference)
zip-create.adb:224:29 (reference)
zip-create.adb:225:28 (reference)
zip.adb:258:26 (reference)
zip_streams.adb:160:33 (reference)
zip_streams.adb:166:35 (reference)
zip_streams.adb:172:34 (reference)
zip_streams.adb:178:23 (reference)
zip_streams.adb:187:23 (reference)
zip_streams.adb:193:36 (reference)
zip_streams.adb:198:30 (reference)
zip_streams.adb:203:31 (reference)
zip_streams.adb:208:33 (reference)
zip_streams.adb:213:32 (reference)
zip_streams.adb:218:33 (reference)
zip_streams.adb:223:32 (reference)
zip_streams.adb:228:39 (reference)
zip_streams.ads:94:33 (reference)
zip_streams.ads:98:35 (reference)
zip_streams.ads:101:34 (reference)
zip_streams.ads:188:9 (full declaration)
zip_streams.ads:196:23 (reference)
zip_streams.ads:203:23 (reference)
zip_streams.ads:207:36 (reference)
zip_streams.ads:210:31 (reference)
zip_streams.ads:213:30 (reference)
zip_streams.ads:216:34 (reference)
zip_streams.ads:219:32 (reference)
zip_streams.ads:222:33 (reference)
zip_streams.ads:226:32 (reference)
zip_streams.ads:229:39 (reference)
------------------------------------------ ZipFile_Stream: stream based on a file -- ------------------------------------------

Types

Time

type Time is private;

References:

zip_streams.ads:27:9 (declaration)
zip.ads:130:31 (reference)
zip_streams-array_streams.adb:151:67 (reference)
zip_streams-array_streams.adb:158:56 (reference)
zip_streams-array_streams.ads:37:32 (reference)
zip_streams-array_streams.ads:67:43 (reference)
zip_streams-array_streams.ads:70:56 (reference)
zip_streams.adb:137:69 (reference)
zip_streams.adb:142:57 (reference)
zip_streams.adb:218:67 (reference)
zip_streams.adb:223:55 (reference)
zip_streams.adb:240:20 (reference)
zip_streams.adb:266:48 (reference)
zip_streams.adb:289:17 (reference)
zip_streams.adb:292:60 (reference)
zip_streams.adb:302:34 (reference)
zip_streams.adb:312:51 (reference)
zip_streams.adb:314:17 (reference)
zip_streams.adb:317:34 (reference)
zip_streams.ads:59:41 (reference)
zip_streams.ads:66:28 (reference)
zip_streams.ads:109:60 (reference)
zip_streams.ads:110:34 (reference)
zip_streams.ads:113:51 (reference)
zip_streams.ads:114:34 (reference)
zip_streams.ads:119:20 (reference)
zip_streams.ads:129:48 (reference)
zip_streams.ads:135:9 (full declaration)
zip_streams.ads:139:24 (reference)
zip_streams.ads:147:29 (reference)
zip_streams.ads:178:41 (reference)
zip_streams.ads:181:57 (reference)
zip_streams.ads:192:29 (reference)
zip_streams.ads:223:41 (reference)
zip_streams.ads:226:55 (reference)
^ we define an own Time (Ada.Calendar's body can be very time-consuming!) See subpackage Calendar below for own Split, Time_Of and Convert from/to Ada.Calendar.Time.

Zipstream_Class

type Zipstream_Class is access all Root_Zipstream_Type'Class;

References:

zip_streams.ads:37:9 (declaration)
archives-zip_archives.adb:67:33 (reference)
archives-zip_archives.adb:103:33 (reference)
unzip-decompress.adb:8:39 (reference)
unzip-decompress.ads:21:39 (reference)
unzip-streams.adb:26:42 (reference)
unzip-streams.adb:44:35 (reference)
unzip-streams.adb:129:50 (reference)
unzip-streams.adb:195:20 (reference)
unzip-streams.adb:260:39 (reference)
unzip-streams.ads:39:39 (reference)
unzip.adb:16:44 (reference)
unzip.adb:191:35 (reference)
unzip.adb:446:29 (reference)
unzip.adb:494:29 (reference)
unzip.adb:540:29 (reference)
unzip.adb:627:20 (reference)
unzip.adb:682:20 (reference)
zip-compress-reduce.adb:13:33 (reference)
zip-compress-reduce.ads:19:33 (reference)
zip-compress-shrink.adb:8:33 (reference)
zip-compress-shrink.ads:18:33 (reference)
zip-compress.adb:36:35 (reference)
zip-compress.ads:45:35 (reference)
zip-create.adb:9:38 (reference)
zip-create.adb:46:43 (reference)
zip-create.adb:55:43 (reference)
zip-create.adb:147:38 (reference)
zip-create.adb:182:37 (reference)
zip-create.ads:26:38 (reference)
zip-create.ads:34:35 (reference)
zip-create.ads:37:43 (reference)
zip-create.ads:81:19 (reference)
zip-headers.adb:66:18 (reference)
zip-headers.adb:98:21 (reference)
zip-headers.adb:131:21 (reference)
zip-headers.adb:158:35 (reference)
zip-headers.adb:203:22 (reference)
zip-headers.adb:223:21 (reference)
zip-headers.adb:269:22 (reference)
zip-headers.adb:308:28 (reference)
zip-headers.adb:319:24 (reference)
zip-headers.ads:47:28 (reference)
zip-headers.ads:54:28 (reference)
zip-headers.ads:76:18 (reference)
zip-headers.ads:83:17 (reference)
zip-headers.ads:115:21 (reference)
zip-headers.ads:122:21 (reference)
zip-headers.ads:151:22 (reference)
zip-headers.ads:160:21 (reference)
zip-headers.ads:165:22 (reference)
zip.adb:146:38 (reference)
zip.adb:259:27 (reference)
zip.adb:302:63 (reference)
zip.adb:427:41 (reference)
zip.adb:446:47 (reference)
zip.adb:471:41 (reference)
zip.adb:488:32 (reference)
zip.adb:609:39 (reference)
zip.adb:638:33 (reference)
zip.ads:69:38 (reference)
zip.ads:90:63 (reference)
zip.ads:174:41 (reference)
zip.ads:181:41 (reference)
zip.ads:245:39 (reference)
zip.ads:256:33 (reference)
zip.ads:330:35 (reference)
zip_streams.adb:12:26 (reference)
zip_streams.adb:18:25 (reference)
zip_streams.ads:61:26 (reference)
zip_streams.ads:68:25 (reference)

Subprograms & Entries

Set_Index (abstract)

procedure Set_Index 
(S: access Root_Zipstream_Type;
To: Positive)
is abstract;

References:

zip_streams.ads:40:14 (declaration)
unzip-decompress.adb:1902:23 (dispatching call)
unzip-streams.adb:42:21 (dispatching call)
unzip-streams.adb:86:19 (dispatching call)
unzip.adb:189:10 (dispatching call)
unzip.adb:286:9 (dispatching call)
zip-compress-reduce.adb:585:3 (dispatching call)
zip-compress.adb:134:7 (dispatching call)
zip-compress.adb:135:7 (dispatching call)
zip-create.adb:127:7 (dispatching call)
zip-create.adb:130:7 (dispatching call)
zip-headers.adb:245:19 (dispatching call)
zip.adb:200:17 (dispatching call)
zip.adb:210:21 (dispatching call)
zip.adb:437:5 (dispatching call)
zip.adb:451:7 (dispatching call)
zip.adb:484:5 (dispatching call)
zip.adb:496:9 (dispatching call)

Called by:

UnZip.Decompress.Decompress_data defined at unzip-decompress.ads:20:14
UnZip.Streams.UnZipFile defined at unzip-streams.adb:25:13
UnZip.Streams.UnZipFile defined at unzip-streams.adb:25:13
UnZip.UnZipFile defined at unzip.adb:15:13
UnZip.UnZipFile defined at unzip.adb:15:13
Zip.Compress.Compress_data defined at zip-compress.ads:43:13
Zip.Compress.Compress_data defined at zip-compress.ads:43:13
Zip.Compress.Reduce defined at zip-compress-reduce.ads:17:32
Zip.Create.Add_Stream defined at zip-create.ads:36:14
Zip.Create.Add_Stream defined at zip-create.ads:36:14
Zip.Find_first_offset defined at zip.ads:173:13
Zip.Find_first_offset defined at zip.ads:173:13
Zip.Find_offset defined at zip.ads:180:13
Zip.Find_offset defined at zip.ads:180:13
Zip.Headers.Load defined at zip-headers.ads:159:13
Zip.Load defined at zip.ads:67:13
Zip.Load defined at zip.ads:67:13
Set the index on the stream

Index (abstract)

function Index 
(S: access Root_Zipstream_Type)
return Integer is abstract;

References:

zip_streams.ads:44:13 (declaration)
unzip-decompress.adb:1886:71 (dispatching call)
zip-compress-reduce.adb:582:9 (dispatching call)
zip-compress.adb:49:34 (dispatching call)
zip-compress.adb:50:34 (dispatching call)
zip-create.adb:104:15 (dispatching call)
zip-create.adb:124:15 (dispatching call)
zip-create.adb:195:45 (dispatching call)
zip.adb:212:51 (dispatching call)
zip.adb:451:24 (dispatching call)
zip.adb:496:26 (dispatching call)
zip.adb:628:62 (dispatching call)
returns the index of the stream

Size (abstract)

function Size 
(S: access Root_Zipstream_Type)
return Integer is abstract;

References:

zip_streams.ads:47:13 (declaration)
zip-create.adb:98:22 (dispatching call)
zip-headers.adb:235:8 (dispatching call)
zip-headers.adb:238:51 (dispatching call)
zip-headers.adb:244:67 (dispatching call)
zip.adb:628:47 (dispatching call)
returns the Size of the stream

SetName (abstract)

procedure SetName
(S: access Root_Zipstream_Type;
Name: String)
is abstract;

References:

zip_streams.ads:50:14 (declaration)
unzip-streams.adb:205:7 (dispatching call)
unzip.adb:455:5 (dispatching call)
unzip.adb:503:5 (dispatching call)
unzip.adb:547:5 (dispatching call)
unzip.adb:632:7 (dispatching call)
unzip.adb:687:7 (dispatching call)
zip-create.adb:16:10 (dispatching call)
zip-create.adb:152:6 (dispatching call)
zip-create.adb:156:9 (dispatching call)
zip-create.adb:185:6 (dispatching call)
zip.adb:261:5 (dispatching call)
this procedure sets the name of the stream

GetName (abstract)

function GetName
(S: access Root_Zipstream_Type)
return String is abstract;

References:

zip_streams.ads:54:13 (declaration)
zip-create.adb:61:29 (dispatching call)
this procedure returns the name of the stream

SetTime (abstract)

procedure SetTime
(S: access Root_Zipstream_Type;
ModificationTime: Time)
is abstract;

References:

zip_streams.ads:58:14 (declaration)
zip_streams.adb:15:6 (dispatching call)

Called by:

SetTime defined at zip_streams.ads:61:14
this procedure sets the ModificationTime of the stream

SetTime

procedure SetTime
(S: Zipstream_Class;
ModificationTime: Ada.Calendar.Time);

References:

zip_streams.ads:61:14 (declaration)
zip_streams.adb:12:14 (body)
zip_streams.adb:16:8 (label)
same, with the standard Time type

GetTime (abstract)

function GetTime
(S: access Root_Zipstream_Type)
return Time is abstract;

References:

zip_streams.ads:65:13 (declaration)
zip-create.adb:96:9 (dispatching call)
zip_streams.adb:21:30 (dispatching call)
this procedure returns the ModificationTime of the stream

GetTime

function GetTime
(S: Zipstream_Class)
return Ada.Calendar.Time;

References:

zip_streams.ads:68:13 (declaration)
zip_streams.adb:18:13 (body)
zip_streams.adb:22:8 (label)
same, with the standard Time type

End_Of_Stream (abstract)

function End_Of_Stream 
(S: access Root_Zipstream_Type)
return Boolean is abstract;

References:

zip_streams.ads:72:13 (declaration)
zip-compress.adb:61:19 (dispatching call)
zip.adb:624:10 (dispatching call)
returns true if the index is at the end of the stream, else false

Get

procedure Get 
(Str: Unbounded_Stream;
Unb: out Unbounded_String);

References:

zip_streams.ads:81:14 (declaration)
zip_streams.adb:27:14 (body)
zip_streams.adb:30:8 (label)
Get the complete value of the stream

Set

procedure Set 
(Str: in out Unbounded_Stream;
Unb: Unbounded_String);

References:

zip_streams.ads:85:14 (declaration)
zip-create.adb:184:6 (reference)
zip_streams.adb:32:14 (body)
zip_streams.adb:37:8 (label)
Set a value in the stream, the index will be set to null and old data in the stream will be lost.

Open

procedure Open 
(Str: in out ZipFile_Stream;
Mode: File_Mode);

References:

zip_streams.ads:94:14 (declaration)
unzip-streams.adb:206:7 (reference)
unzip.adb:456:5 (reference)
unzip.adb:504:5 (reference)
unzip.adb:548:5 (reference)
unzip.adb:633:7 (reference)
unzip.adb:688:7 (reference)
zip-create.adb:153:6 (reference)
zip.adb:263:7 (reference)
zip_streams.adb:160:14 (body)
zip_streams.adb:164:8 (label)

Calls:

Open defined at a-ststio.ads:74:14
To_String defined at a-strunb.ads:65:13
Open the ZipFile_Stream PRE: Str.Name must be set

Create

procedure Create 
(Str: in out ZipFile_Stream;
Mode: File_Mode);

References:

zip_streams.ads:98:14 (declaration)
zip-create.adb:22:21 (reference)
zip_streams.adb:166:14 (body)
zip_streams.adb:170:8 (label)

Called by:

Zip.Create.Create defined at zip-create.ads:25:14

Calls:

Create defined at a-ststio.ads:68:14
To_String defined at a-strunb.ads:65:13
Creates a file on the disk PRE: Str.Name must be set

Close

procedure Close 
(Str: in out ZipFile_Stream);

References:

zip_streams.ads:101:14 (declaration)
unzip-streams.adb:223:9 (reference)
unzip-streams.adb:228:11 (reference)
unzip.adb:474:5 (reference)
unzip.adb:522:5 (reference)
unzip.adb:566:7 (reference)
unzip.adb:570:7 (reference)
unzip.adb:657:7 (reference)
unzip.adb:713:7 (reference)
zip-create.adb:160:6 (reference)
zip-create.adb:225:21 (reference)
zip.adb:275:5 (reference)
zip_streams.adb:172:14 (body)
zip_streams.adb:175:8 (label)

Calls:

Close defined at a-ststio.ads:80:14
Close the ZipFile_Stream