1 /* 7zItem.h */ |
|
2 |
|
3 #ifndef __7Z_ITEM_H |
|
4 #define __7Z_ITEM_H |
|
5 |
|
6 #include "7zMethodID.h" |
|
7 #include "7zHeader.h" |
|
8 #include "7zBuffer.h" |
|
9 |
|
10 typedef struct _CCoderInfo |
|
11 { |
|
12 UInt32 NumInStreams; |
|
13 UInt32 NumOutStreams; |
|
14 CMethodID MethodID; |
|
15 CSzByteBuffer Properties; |
|
16 }CCoderInfo; |
|
17 |
|
18 void SzCoderInfoInit(CCoderInfo *coder); |
|
19 void SzCoderInfoFree(CCoderInfo *coder, void (*freeFunc)(void *p)); |
|
20 |
|
21 typedef struct _CBindPair |
|
22 { |
|
23 UInt32 InIndex; |
|
24 UInt32 OutIndex; |
|
25 }CBindPair; |
|
26 |
|
27 typedef struct _CFolder |
|
28 { |
|
29 UInt32 NumCoders; |
|
30 CCoderInfo *Coders; |
|
31 UInt32 NumBindPairs; |
|
32 CBindPair *BindPairs; |
|
33 UInt32 NumPackStreams; |
|
34 UInt32 *PackStreams; |
|
35 CFileSize *UnPackSizes; |
|
36 int UnPackCRCDefined; |
|
37 UInt32 UnPackCRC; |
|
38 |
|
39 UInt32 NumUnPackStreams; |
|
40 }CFolder; |
|
41 |
|
42 void SzFolderInit(CFolder *folder); |
|
43 CFileSize SzFolderGetUnPackSize(CFolder *folder); |
|
44 int SzFolderFindBindPairForInStream(CFolder *folder, UInt32 inStreamIndex); |
|
45 UInt32 SzFolderGetNumOutStreams(CFolder *folder); |
|
46 CFileSize SzFolderGetUnPackSize(CFolder *folder); |
|
47 |
|
48 typedef struct _CArchiveFileTime |
|
49 { |
|
50 UInt32 Low; |
|
51 UInt32 High; |
|
52 } CArchiveFileTime; |
|
53 |
|
54 typedef struct _CFileItem |
|
55 { |
|
56 CArchiveFileTime LastWriteTime; |
|
57 /* |
|
58 CFileSize StartPos; |
|
59 UInt32 Attributes; |
|
60 */ |
|
61 CFileSize Size; |
|
62 UInt32 FileCRC; |
|
63 char *Name; |
|
64 |
|
65 Byte IsFileCRCDefined; |
|
66 Byte HasStream; |
|
67 Byte IsDirectory; |
|
68 Byte IsAnti; |
|
69 Byte IsLastWriteTimeDefined; |
|
70 /* |
|
71 int AreAttributesDefined; |
|
72 int IsLastWriteTimeDefined; |
|
73 int IsStartPosDefined; |
|
74 */ |
|
75 }CFileItem; |
|
76 |
|
77 void SzFileInit(CFileItem *fileItem); |
|
78 |
|
79 typedef struct _CArchiveDatabase |
|
80 { |
|
81 UInt32 NumPackStreams; |
|
82 CFileSize *PackSizes; |
|
83 Byte *PackCRCsDefined; |
|
84 UInt32 *PackCRCs; |
|
85 UInt32 NumFolders; |
|
86 CFolder *Folders; |
|
87 UInt32 NumFiles; |
|
88 CFileItem *Files; |
|
89 }CArchiveDatabase; |
|
90 |
|
91 void SzArchiveDatabaseInit(CArchiveDatabase *db); |
|
92 void SzArchiveDatabaseFree(CArchiveDatabase *db, void (*freeFunc)(void *)); |
|
93 |
|
94 |
|
95 #endif |
|