lzma/7zItem.h
changeset 774 916c2e81e77f
equal deleted inserted replaced
773:8215379394b5 774:916c2e81e77f
       
     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