tor-browser

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

LzmaEncoder.h (1285B)


      1 // LzmaEncoder.h
      2 
      3 #ifndef __LZMA_ENCODER_H
      4 #define __LZMA_ENCODER_H
      5 
      6 #include "../../../C/LzmaEnc.h"
      7 
      8 #include "../../Common/MyCom.h"
      9 
     10 #include "../ICoder.h"
     11 
     12 namespace NCompress {
     13 namespace NLzma {
     14 
     15 class CEncoder:
     16  public ICompressCoder,
     17  public ICompressSetCoderProperties,
     18  public ICompressWriteCoderProperties,
     19  public ICompressSetCoderPropertiesOpt,
     20  public CMyUnknownImp
     21 {
     22  CLzmaEncHandle _encoder;
     23  UInt64 _inputProcessed;
     24 public:
     25  MY_UNKNOWN_IMP4(
     26      ICompressCoder,
     27      ICompressSetCoderProperties,
     28      ICompressWriteCoderProperties,
     29      ICompressSetCoderPropertiesOpt)
     30    
     31  STDMETHOD(Code)(ISequentialInStream *inStream, ISequentialOutStream *outStream,
     32      const UInt64 *inSize, const UInt64 *outSize, ICompressProgressInfo *progress);
     33  STDMETHOD(SetCoderProperties)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps);
     34  STDMETHOD(WriteCoderProperties)(ISequentialOutStream *outStream);
     35  STDMETHOD(SetCoderPropertiesOpt)(const PROPID *propIDs, const PROPVARIANT *props, UInt32 numProps);
     36 
     37  CEncoder();
     38  virtual ~CEncoder();
     39 
     40  UInt64 GetInputProcessedSize() const { return _inputProcessed; }
     41  bool IsWriteEndMark() const { return LzmaEnc_IsWriteEndMark(_encoder) != 0; }
     42 };
     43 
     44 }}
     45 
     46 #endif