Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
Lzma2DecMt.h
Go to the documentation of this file.
1/* Lzma2DecMt.h -- LZMA2 Decoder Multi-thread
22023-04-13 : Igor Pavlov : Public domain */
3
4#ifndef ZIP7_INC_LZMA2_DEC_MT_H
5#define ZIP7_INC_LZMA2_DEC_MT_H
6
7#include "7zTypes.h"
8
10
11typedef struct
12{
14 size_t outStep_ST;
15
16 #ifndef Z7_ST
17 unsigned numThreads;
20 size_t inBlockMax;
21 #endif
23
24/* init to single-thread mode */
26
27
28/* ---------- CLzma2DecMtHandle Interface ---------- */
29
30/* Lzma2DecMt_ * functions can return the following exit codes:
31SRes:
32 SZ_OK - OK
33 SZ_ERROR_MEM - Memory allocation error
34 SZ_ERROR_PARAM - Incorrect paramater in props
35 SZ_ERROR_WRITE - ISeqOutStream write callback error
36 // SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output
37 SZ_ERROR_PROGRESS - some break from progress callback
38 SZ_ERROR_THREAD - error in multithreading functions (only for Mt version)
39*/
40
41typedef struct CLzma2DecMt CLzma2DecMt;
43// Z7_DECLARE_HANDLE(CLzma2DecMtHandle)
44
47
49 Byte prop,
51 ISeqOutStreamPtr outStream,
52 const UInt64 *outDataSize, // NULL means undefined
53 int finishMode, // 0 - partial unpacking is allowed, 1 - if lzma2 stream must be finished
54 // Byte *outBuf, size_t *outBufSize,
55 ISeqInStreamPtr inStream,
56 // const Byte *inData, size_t inDataSize,
57
58 // out variables:
60 int *isMT, /* out: (*isMT == 0), if single thread decoding was used */
61
62 // UInt64 *outProcessed,
63 ICompressProgressPtr progress);
64
65
66/* ---------- Read from CLzma2DecMtHandle Interface ---------- */
67
69 Byte prop,
71 const UInt64 *outDataSize, int finishMode,
72 ISeqInStreamPtr inStream);
73
75 Byte *data, size_t *outSize,
76 UInt64 *inStreamProcessed);
77
78
80
81#endif
#define EXTERN_C_BEGIN
Definition 7zTypes.h:20
unsigned long long int UInt64
Definition 7zTypes.h:234
int SRes
Definition 7zTypes.h:45
#define EXTERN_C_END
Definition 7zTypes.h:21
CLzma2DecMtHandle Lzma2DecMt_Create(ISzAllocPtr alloc, ISzAllocPtr allocMid)
Definition Lzma2DecMt.c:124
SRes Lzma2DecMt_Decode(CLzma2DecMtHandle p, Byte prop, const CLzma2DecMtProps *props, ISeqOutStreamPtr outStream, const UInt64 *outDataSize, int finishMode, ISeqInStreamPtr inStream, UInt64 *inProcessed, int *isMT, ICompressProgressPtr progress)
Definition Lzma2DecMt.c:802
SRes Lzma2DecMt_Init(CLzma2DecMtHandle pp, Byte prop, const CLzma2DecMtProps *props, const UInt64 *outDataSize, int finishMode, ISeqInStreamPtr inStream)
Definition Lzma2DecMt.c:984
CLzma2DecMt * CLzma2DecMtHandle
Definition Lzma2DecMt.h:42
void Lzma2DecMt_Destroy(CLzma2DecMtHandle p)
Definition Lzma2DecMt.c:200
void Lzma2DecMtProps_Init(CLzma2DecMtProps *p)
Definition Lzma2DecMt.c:36
SRes Lzma2DecMt_Read(CLzma2DecMtHandle pp, Byte *data, size_t *outSize, UInt64 *inStreamProcessed)
Definition Lzma2DecMt.c:1019
Definition Lzma2DecMt.c:85
UInt64 outSize
Definition Lzma2DecMt.c:99
UInt64 inProcessed
Definition Lzma2DecMt.c:102
BoolInt finishMode
Definition Lzma2DecMt.c:97
ICompressProgressPtr progress
Definition Lzma2DecMt.c:95
Byte prop
Definition Lzma2DecMt.c:91
ISeqOutStreamPtr outStream
Definition Lzma2DecMt.c:94
ISzAllocPtr allocMid
Definition Lzma2DecMt.c:87
ISeqInStreamPtr inStream
Definition Lzma2DecMt.c:93
Definition Lzma2DecMt.h:12
size_t inBlockMax
Definition Lzma2DecMt.h:20
size_t outStep_ST
Definition Lzma2DecMt.h:14
unsigned numThreads
Definition Lzma2DecMt.h:17
size_t outBlockMax
Definition Lzma2DecMt.h:19
size_t inBufSize_MT
Definition Lzma2DecMt.h:18
size_t inBufSize_ST
Definition Lzma2DecMt.h:13
Definition 7zTypes.h:460
Definition poolTests.c:28
unsigned char Byte
Definition zconf.h:391
const lzma_allocator const uint8_t * props
Definition filter.h:362