Annotation of elwix/tools/oldlzma/SRC/7zip/Archive/7z_C/7zIn.h, revision 1.1.1.1
1.1 misho 1: /* 7zIn.h */
2:
3: #ifndef __7Z_IN_H
4: #define __7Z_IN_H
5:
6: #include "7zHeader.h"
7: #include "7zItem.h"
8: #include "7zAlloc.h"
9:
10: typedef struct _CInArchiveInfo
11: {
12: CFileSize StartPositionAfterHeader;
13: CFileSize DataStartPosition;
14: }CInArchiveInfo;
15:
16: typedef struct _CArchiveDatabaseEx
17: {
18: CArchiveDatabase Database;
19: CInArchiveInfo ArchiveInfo;
20: UInt32 *FolderStartPackStreamIndex;
21: CFileSize *PackStreamStartPositions;
22: UInt32 *FolderStartFileIndex;
23: UInt32 *FileIndexToFolderIndexMap;
24: }CArchiveDatabaseEx;
25:
26: void SzArDbExInit(CArchiveDatabaseEx *db);
27: void SzArDbExFree(CArchiveDatabaseEx *db, void (*freeFunc)(void *));
28: CFileSize SzArDbGetFolderStreamPos(CArchiveDatabaseEx *db, UInt32 folderIndex, UInt32 indexInFolder);
29: CFileSize SzArDbGetFolderFullPackSize(CArchiveDatabaseEx *db, UInt32 folderIndex);
30:
31: typedef struct _ISzInStream
32: {
33: #ifdef _LZMA_IN_CB
34: SZ_RESULT (*Read)(
35: void *object, /* pointer to ISzInStream itself */
36: void **buffer, /* out: pointer to buffer with data */
37: size_t maxRequiredSize, /* max required size to read */
38: size_t *processedSize); /* real processed size.
39: processedSize can be less than maxRequiredSize.
40: If processedSize == 0, then there are no more
41: bytes in stream. */
42: #else
43: SZ_RESULT (*Read)(void *object, void *buffer, size_t size, size_t *processedSize);
44: #endif
45: SZ_RESULT (*Seek)(void *object, CFileSize pos);
46: } ISzInStream;
47:
48:
49: int SzArchiveOpen(
50: ISzInStream *inStream,
51: CArchiveDatabaseEx *db,
52: ISzAlloc *allocMain,
53: ISzAlloc *allocTemp);
54:
55: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>