Upload 2.0.2
[physicsfs] / lzma / C / Archive / 7z / 7zItem.h
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