1 // MatchFinders/IMatchFinder.h
\r
3 #ifndef __IMATCHFINDER_H
\r
4 #define __IMATCHFINDER_H
\r
6 struct IInWindowStream: public IUnknown
\r
8 STDMETHOD(SetStream)(ISequentialInStream *inStream) PURE;
\r
9 STDMETHOD_(void, ReleaseStream)() PURE;
\r
10 STDMETHOD(Init)() PURE;
\r
11 STDMETHOD_(Byte, GetIndexByte)(Int32 index) PURE;
\r
12 STDMETHOD_(UInt32, GetMatchLen)(Int32 index, UInt32 distance, UInt32 limit) PURE;
\r
13 STDMETHOD_(UInt32, GetNumAvailableBytes)() PURE;
\r
14 STDMETHOD_(const Byte *, GetPointerToCurrentPos)() PURE;
\r
15 STDMETHOD_(Int32, NeedChangeBufferPos)(UInt32 numCheckBytes) PURE;
\r
16 STDMETHOD_(void, ChangeBufferPos)() PURE;
\r
19 struct IMatchFinder: public IInWindowStream
\r
21 STDMETHOD(Create)(UInt32 historySize, UInt32 keepAddBufferBefore,
\r
22 UInt32 matchMaxLen, UInt32 keepAddBufferAfter) PURE;
\r
23 STDMETHOD(GetMatches)(UInt32 *distances) PURE;
\r
24 STDMETHOD(Skip)(UInt32 num) PURE;
\r
27 struct IMatchFinderSetNumPasses
\r
29 //virtual ~IMatchFinderSetNumPasses(){}
\r
30 virtual void SetNumPasses(UInt32 numPasses) PURE;
\r