1baa3858d3f5d128a5c8466b700098109edcad5f2repo sync// IMatchFinder.cs
2baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
3baa3858d3f5d128a5c8466b700098109edcad5f2repo syncusing System;
4baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
5baa3858d3f5d128a5c8466b700098109edcad5f2repo syncnamespace SevenZip.Compression.LZ
6baa3858d3f5d128a5c8466b700098109edcad5f2repo sync{
7baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	interface IInWindowStream
8baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	{
9baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		void SetStream(System.IO.Stream inStream);
10baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		void Init();
11baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		void ReleaseStream();
12baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		Byte GetIndexByte(Int32 index);
13baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		UInt32 GetMatchLen(Int32 index, UInt32 distance, UInt32 limit);
14baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		UInt32 GetNumAvailableBytes();
15baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	}
16baa3858d3f5d128a5c8466b700098109edcad5f2repo sync
17baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	interface IMatchFinder : IInWindowStream
18baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	{
19baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		void Create(UInt32 historySize, UInt32 keepAddBufferBefore,
20baa3858d3f5d128a5c8466b700098109edcad5f2repo sync				UInt32 matchMaxLen, UInt32 keepAddBufferAfter);
21baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		UInt32 GetMatches(UInt32[] distances);
22baa3858d3f5d128a5c8466b700098109edcad5f2repo sync		void Skip(UInt32 num);
23baa3858d3f5d128a5c8466b700098109edcad5f2repo sync	}
24baa3858d3f5d128a5c8466b700098109edcad5f2repo sync}
25