jp.gr.java_conf.dangan.util.lha
Interface LzssSearchMethod
- BinaryTreeSearch, HashAndBinaryTreeSearch, HashAndChainedListSearch, PatriciaTrieSearch, SimpleSearch, TwoLevelHashSearch
public interface LzssSearchMethod
LzssOutputStream で使用される
最長一致検索を提供するインターフェイス。
コンストラクタの形式は
LzssSearchMethod( int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer )
パラメータ:
DictionarySize - LZSSの辞書サイズ
MaxMatch - LZSSの最大一致長
Threshold - LZSSの圧縮/非圧縮の閾値
TextBuffer - LZSS圧縮を施すデータの入ったバッファ
のような形式に則ること。
また、追加の引数をとりたい場合は
LzssSearchMethod( int DictionarySize,
int MaxMatch,
int Threshold,
byte[] TextBuffer,
Object ExtraArgument1,
Object ExtraArgument2 )
のような形式を用いる。
なお、コンストラクタの引数チェックは追加の引数がある場合について行えばよい。
-- revision history --
$Log: LzssSearchMethod.java,v $
Revision 1.1 2002/12/04 00:00:00 dangan
[maintenance]
ソース整備
Revision 1.0 2002/07/24 00:00:00 dangan
add to version control
[change]
slide() で引数を取らずに
スライド幅を常に DictionarySize とするように変更。
putLength を putRequires に変更
[maintenance]
タブ廃止
ライセンス文の修正
abstract void | put(int position) - position から始まるデータパタンを
LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、
put または searchAndPut を呼び出す。
|
abstract int | putRequires() - put() または searchAndPut() を使用して
データパタンを検索機構に登録する時に
必要とするデータ量を得る。
|
abstract int | search(int position, int lastPutPos) - 検索機構に登録されたデータパタンから
position から始まるデータパタンと
最長の一致を持つものを検索する。
このメソッドは LzssOutputStream の
flush() を実装するためだけに提供される。
TextBuffer.length < position + MaxMatch となるような
position にも対応すること。
|
abstract int | searchAndPut(int position) - 検索機構に登録されたデータパタンから
position から始まるデータパタンと
最長の一致を持つものを検索し、
同時に position から始まるデータパタンを
LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、
put または searchAndPut を呼び出す。
|
abstract void | slide() - LzssOutputStream が slide() でTextBuffer内のデータを
DictionarySize だけ移動させる際に検索機構内のデータを
それらと矛盾無く移動させる処理を行う。
|
put
public abstract void put(int position)
position から始まるデータパタンを
LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、
put または searchAndPut を呼び出す。
position
- TextBuffer内のデータパタンの開始位置
putRequires
public abstract int putRequires()
put() または searchAndPut() を使用して
データパタンを検索機構に登録する時に
必要とするデータ量を得る。
- put() または searchAndPut() で
検索機構に登録するデータ量
search
public abstract int search(int position,
int lastPutPos)
検索機構に登録されたデータパタンから
position から始まるデータパタンと
最長の一致を持つものを検索する。
このメソッドは LzssOutputStream の
flush() を実装するためだけに提供される。
TextBuffer.length < position + MaxMatch となるような
position にも対応すること。
position
- TextBuffer内のデータパタンの開始位置lastPutPos
- 最後に登録したデータパタンの開始位置
- 一致が見つかった場合は
LzssOutputStream.createSearchReturn
によって生成された一致位置と一致長の情報を持つ値、
一致が見つからなかった場合は
LzssOutputStream.NOMATCH。
searchAndPut
public abstract int searchAndPut(int position)
検索機構に登録されたデータパタンから
position から始まるデータパタンと
最長の一致を持つものを検索し、
同時に position から始まるデータパタンを
LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、
put または searchAndPut を呼び出す。
position
- TextBuffer内のデータパタンの開始位置
- 一致が見つかった場合は
LzssOutputStream.createSearchReturn
によって生成された一致位置と一致長の情報を持つ値、
一致が見つからなかった場合は
LzssOutputStream.NOMATCH。
slide
public abstract void slide()
LzssOutputStream が slide() でTextBuffer内のデータを
DictionarySize だけ移動させる際に検索機構内のデータを
それらと矛盾無く移動させる処理を行う。
When you found typographical errors or omissions, Please mail to cqw10305@nifty.com
The company name and product name which are used in this document, it is the trademark or registered trademark of each company generally.
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.