4bbc14f35adae8ba7987785f02c7cf656196d0ac
[coreboot.git] / payloads / bayou / util / pbuilder / lzma / C / 7zip / Compress / LZ / IMatchFinder.h
1 // MatchFinders/IMatchFinder.h\r
2 \r
3 #ifndef __IMATCHFINDER_H\r
4 #define __IMATCHFINDER_H\r
5 \r
6 struct IInWindowStream: public IUnknown\r
7 {\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
17 };\r
18  \r
19 struct IMatchFinder: public IInWindowStream\r
20 {\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
25 };\r
26 \r
27 struct IMatchFinderSetNumPasses\r
28 {\r
29   //virtual ~IMatchFinderSetNumPasses(){}\r
30   virtual void SetNumPasses(UInt32 numPasses) PURE;\r
31 };\r
32 \r
33 #endif\r