84 lines
1.5 KiB
C
84 lines
1.5 KiB
C
|
/* 7zItem.h -- 7z Items
|
||
|
2008-10-04 : Igor Pavlov : Public domain */
|
||
|
|
||
|
#ifndef __7Z_ITEM_H
|
||
|
#define __7Z_ITEM_H
|
||
|
|
||
|
#include "7zBuf.h"
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
UInt32 NumInStreams;
|
||
|
UInt32 NumOutStreams;
|
||
|
UInt64 MethodID;
|
||
|
CBuf Props;
|
||
|
} CSzCoderInfo;
|
||
|
|
||
|
void SzCoderInfo_Init(CSzCoderInfo *p);
|
||
|
void SzCoderInfo_Free(CSzCoderInfo *p, ISzAlloc *alloc);
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
UInt32 InIndex;
|
||
|
UInt32 OutIndex;
|
||
|
} CBindPair;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
CSzCoderInfo *Coders;
|
||
|
CBindPair *BindPairs;
|
||
|
UInt32 *PackStreams;
|
||
|
UInt64 *UnpackSizes;
|
||
|
UInt32 NumCoders;
|
||
|
UInt32 NumBindPairs;
|
||
|
UInt32 NumPackStreams;
|
||
|
int UnpackCRCDefined;
|
||
|
UInt32 UnpackCRC;
|
||
|
|
||
|
UInt32 NumUnpackStreams;
|
||
|
} CSzFolder;
|
||
|
|
||
|
void SzFolder_Init(CSzFolder *p);
|
||
|
UInt64 SzFolder_GetUnpackSize(CSzFolder *p);
|
||
|
int SzFolder_FindBindPairForInStream(CSzFolder *p, UInt32 inStreamIndex);
|
||
|
UInt32 SzFolder_GetNumOutStreams(CSzFolder *p);
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
UInt32 Low;
|
||
|
UInt32 High;
|
||
|
} CNtfsFileTime;
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
CNtfsFileTime MTime;
|
||
|
UInt64 Size;
|
||
|
char *Name;
|
||
|
UInt32 FileCRC;
|
||
|
|
||
|
Byte HasStream;
|
||
|
Byte IsDir;
|
||
|
Byte IsAnti;
|
||
|
Byte FileCRCDefined;
|
||
|
Byte MTimeDefined;
|
||
|
} CSzFileItem;
|
||
|
|
||
|
void SzFile_Init(CSzFileItem *p);
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
UInt64 *PackSizes;
|
||
|
Byte *PackCRCsDefined;
|
||
|
UInt32 *PackCRCs;
|
||
|
CSzFolder *Folders;
|
||
|
CSzFileItem *Files;
|
||
|
UInt32 NumPackStreams;
|
||
|
UInt32 NumFolders;
|
||
|
UInt32 NumFiles;
|
||
|
} CSzAr;
|
||
|
|
||
|
void SzAr_Init(CSzAr *p);
|
||
|
void SzAr_Free(CSzAr *p, ISzAlloc *alloc);
|
||
|
|
||
|
#endif
|