misc/libphysfs/lzma/C/Archive/7z/7zExtract.h
branchui-scaling
changeset 15283 c4fd2813b127
parent 13390 0135e64c6c66
parent 15279 7ab5cf405686
child 15663 d92eeb468dad
equal deleted inserted replaced
13390:0135e64c6c66 15283:c4fd2813b127
     1 /* 7zExtract.h */
       
     2 
       
     3 #ifndef __7Z_EXTRACT_H
       
     4 #define __7Z_EXTRACT_H
       
     5 
       
     6 #include "7zIn.h"
       
     7 
       
     8 /*
       
     9   SzExtract extracts file from archive
       
    10 
       
    11   *outBuffer must be 0 before first call for each new archive. 
       
    12 
       
    13   Extracting cache:
       
    14     If you need to decompress more than one file, you can send 
       
    15     these values from previous call:
       
    16       *blockIndex, 
       
    17       *outBuffer, 
       
    18       *outBufferSize
       
    19     You can consider "*outBuffer" as cache of solid block. If your archive is solid, 
       
    20     it will increase decompression speed.
       
    21   
       
    22     If you use external function, you can declare these 3 cache variables 
       
    23     (blockIndex, outBuffer, outBufferSize) as static in that external function.
       
    24     
       
    25     Free *outBuffer and set *outBuffer to 0, if you want to flush cache.
       
    26 */
       
    27 
       
    28 SZ_RESULT SzExtract(
       
    29     ISzInStream *inStream, 
       
    30     CArchiveDatabaseEx *db,
       
    31     UInt32 fileIndex,         /* index of file */
       
    32     UInt32 *blockIndex,       /* index of solid block */
       
    33     Byte **outBuffer,         /* pointer to pointer to output buffer (allocated with allocMain) */
       
    34     size_t *outBufferSize,    /* buffer size for output buffer */
       
    35     size_t *offset,           /* offset of stream for required file in *outBuffer */
       
    36     size_t *outSizeProcessed, /* size of file in *outBuffer */
       
    37     ISzAlloc *allocMain,
       
    38     ISzAlloc *allocTemp);
       
    39 
       
    40 #endif