Annotation of elwix/tools/oldlzma/SRC/7zip/Compress/LZ/HashChain/HC.h, revision 1.1

1.1     ! misho       1: // HC.h
        !             2: 
        !             3: #include "../LZInWindow.h"
        !             4: #include "../IMatchFinder.h"
        !             5:  
        !             6: namespace HC_NAMESPACE {
        !             7: 
        !             8: typedef UInt32 CIndex;
        !             9: const UInt32 kMaxValForNormalize = (UInt32(1) << 31) - 1;
        !            10: 
        !            11: class CMatchFinderHC: 
        !            12:   public IMatchFinder,
        !            13:   public IMatchFinderSetCallback,
        !            14:   public CLZInWindow,
        !            15:   public CMyUnknownImp
        !            16: {
        !            17:   UInt32 _cyclicBufferPos;
        !            18:   UInt32 _cyclicBufferSize; // it must be historySize + 1
        !            19:   UInt32 _matchMaxLen;
        !            20:   CIndex *_hash;
        !            21:   UInt32 _cutValue;
        !            22: 
        !            23:   CMyComPtr<IMatchFinderCallback> m_Callback;
        !            24: 
        !            25:   void Normalize();
        !            26:   void FreeThisClassMemory();
        !            27:   void FreeMemory();
        !            28: 
        !            29:   MY_UNKNOWN_IMP1(IMatchFinderSetCallback)
        !            30: 
        !            31:   STDMETHOD(Init)(ISequentialInStream *inStream);
        !            32:   STDMETHOD_(void, ReleaseStream)();
        !            33:   STDMETHOD(MovePos)();
        !            34:   STDMETHOD_(Byte, GetIndexByte)(Int32 index);
        !            35:   STDMETHOD_(UInt32, GetMatchLen)(Int32 index, UInt32 back, UInt32 limit);
        !            36:   STDMETHOD_(UInt32, GetNumAvailableBytes)();
        !            37:   STDMETHOD_(const Byte *, GetPointerToCurrentPos)();
        !            38:   STDMETHOD(Create)(UInt32 historySize, UInt32 keepAddBufferBefore, 
        !            39:       UInt32 matchMaxLen, UInt32 keepAddBufferAfter);
        !            40:   STDMETHOD_(UInt32, GetLongestMatch)(UInt32 *distances);
        !            41:   STDMETHOD_(void, DummyLongestMatch)();
        !            42: 
        !            43:   // IMatchFinderSetCallback
        !            44:   STDMETHOD(SetCallback)(IMatchFinderCallback *callback);
        !            45: 
        !            46:   virtual void BeforeMoveBlock();
        !            47:   virtual void AfterMoveBlock();
        !            48: 
        !            49: public:
        !            50:   CMatchFinderHC();
        !            51:   virtual ~CMatchFinderHC();
        !            52:   void SetCutValue(UInt32 cutValue) { _cutValue = cutValue; }
        !            53: };
        !            54: 
        !            55: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>