tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

XzEnc.h (1374B)


      1 /* XzEnc.h -- Xz Encode
      2 2017-06-27 : Igor Pavlov : Public domain */
      3 
      4 #ifndef __XZ_ENC_H
      5 #define __XZ_ENC_H
      6 
      7 #include "Lzma2Enc.h"
      8 
      9 #include "Xz.h"
     10 
     11 EXTERN_C_BEGIN
     12 
     13 
     14 #define XZ_PROPS__BLOCK_SIZE__AUTO   LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO
     15 #define XZ_PROPS__BLOCK_SIZE__SOLID  LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID
     16 
     17 
     18 typedef struct
     19 {
     20  UInt32 id;
     21  UInt32 delta;
     22  UInt32 ip;
     23  int ipDefined;
     24 } CXzFilterProps;
     25 
     26 void XzFilterProps_Init(CXzFilterProps *p);
     27 
     28 
     29 typedef struct
     30 {
     31  CLzma2EncProps lzma2Props;
     32  CXzFilterProps filterProps;
     33  unsigned checkId;
     34  UInt64 blockSize;
     35  int numBlockThreads_Reduced;
     36  int numBlockThreads_Max;
     37  int numTotalThreads;
     38  int forceWriteSizesInHeader;
     39  UInt64 reduceSize;
     40 } CXzProps;
     41 
     42 void XzProps_Init(CXzProps *p);
     43 
     44 
     45 typedef void * CXzEncHandle;
     46 
     47 CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
     48 void XzEnc_Destroy(CXzEncHandle p);
     49 SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props);
     50 void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize);
     51 SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
     52 
     53 SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream,
     54    const CXzProps *props, ICompressProgress *progress);
     55 
     56 SRes Xz_EncodeEmpty(ISeqOutStream *outStream);
     57 
     58 EXTERN_C_END
     59 
     60 #endif