tor-browser

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

PpmdEncoder.h (1278B)


      1 // PpmdEncoder.h
      2 
      3 #ifndef __COMPRESS_PPMD_ENCODER_H
      4 #define __COMPRESS_PPMD_ENCODER_H
      5 
      6 #include "../../../C/Ppmd7.h"
      7 
      8 #include "../../Common/MyCom.h"
      9 
     10 #include "../ICoder.h"
     11 
     12 #include "../Common/CWrappers.h"
     13 
     14 namespace NCompress {
     15 namespace NPpmd {
     16 
     17 struct CEncProps
     18 {
     19  UInt32 MemSize;
     20  UInt32 ReduceSize;
     21  int Order;
     22  
     23  CEncProps()
     24  {
     25    MemSize = (UInt32)(Int32)-1;
     26    ReduceSize = (UInt32)(Int32)-1;
     27    Order = -1;
     28  }
     29  void Normalize(int level);
     30 };
     31 
     32 class CEncoder :
     33  public ICompressCoder,
     34  public ICompressSetCoderProperties,
     35  public ICompressWriteCoderProperties,
     36  public CMyUnknownImp
     37 {
     38  Byte *_inBuf;
     39  CByteOutBufWrap _outStream;
     40  CPpmd7z_RangeEnc _rangeEnc;
     41  CPpmd7 _ppmd;
     42  CEncProps _props;
     43 public:
     44  MY_UNKNOWN_IMP3(
     45      ICompressCoder,
     46      ICompressSetCoderProperties,
     47      ICompressWriteCoderProperties)
     48  STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,
     49      const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
     50  STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps);
     51  STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream);
     52  CEncoder();
     53  ~CEncoder();
     54 };
     55 
     56 }}
     57 
     58 #endif