argh, clean out copy
[supertux.git] / src / unison / physfs-1.1.1 / lzma / 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 /* #define CArchiveFileTime UInt64 */
49
50 typedef struct _CFileItem
51 {
52   /*
53   CArchiveFileTime LastWriteTime;
54   CFileSize StartPos;
55   UInt32 Attributes; 
56   */
57   CFileSize Size;
58   UInt32 FileCRC;
59   char *Name;
60
61   Byte IsFileCRCDefined;
62   Byte HasStream;
63   Byte IsDirectory;
64   Byte IsAnti;
65   /*
66   int AreAttributesDefined;
67   int IsLastWriteTimeDefined;
68   int IsStartPosDefined;
69   */
70 }CFileItem;
71
72 void SzFileInit(CFileItem *fileItem);
73
74 typedef struct _CArchiveDatabase
75 {
76   UInt32 NumPackStreams;
77   CFileSize *PackSizes;
78   Byte *PackCRCsDefined;
79   UInt32 *PackCRCs;
80   UInt32 NumFolders;
81   CFolder *Folders;
82   UInt32 NumFiles;
83   CFileItem *Files;
84 }CArchiveDatabase;
85
86 void SzArchiveDatabaseInit(CArchiveDatabase *db);
87 void SzArchiveDatabaseFree(CArchiveDatabase *db, void (*freeFunc)(void *));
88
89
90 #endif