LHA Library for Java

jp.gr.java_conf.dangan.util.lha
インタフェース 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]
     タブ廃止
     ライセンス文の修正

 

バージョン:
$Revision: 1.1 $
作成者:
$Author: dangan $

メソッドの概要
 void put(int position)
          position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
 int putRequires()
          put() または searchAndPut() を使用して データパタンを検索機構に登録する時に 必要とするデータ量を得る。
 int search(int position, int lastPutPos)
          検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索する。
 int searchAndPut(int position)
          検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索し、 同時に position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
 void slide()
          LzssOutputStream が slide() でTextBuffer内のデータを DictionarySize だけ移動させる際に検索機構内のデータを それらと矛盾無く移動させる処理を行う。
 

メソッドの詳細

put

public void put(int position)
position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、 put または searchAndPut を呼び出す。

パラメータ:
position - TextBuffer内のデータパタンの開始位置

searchAndPut

public int searchAndPut(int position)
検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索し、 同時に position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、 put または searchAndPut を呼び出す。

パラメータ:
position - TextBuffer内のデータパタンの開始位置
戻り値:
一致が見つかった場合は LzssOutputStream.createSearchReturn によって生成された一致位置と一致長の情報を持つ値、 一致が見つからなかった場合は LzssOutputStream.NOMATCH。
関連項目:
LzssOutputStream.createSearchReturn(int,int), LzssOutputStream.NOMATCH

search

public int search(int position,
                  int lastPutPos)
検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索する。
このメソッドは LzssOutputStream の flush() を実装するためだけに提供される。
TextBuffer.length < position + MaxMatch となるような position にも対応すること。

パラメータ:
position - TextBuffer内のデータパタンの開始位置
lastPutPos - 最後に登録したデータパタンの開始位置
戻り値:
一致が見つかった場合は LzssOutputStream.createSearchReturn によって生成された一致位置と一致長の情報を持つ値、 一致が見つからなかった場合は LzssOutputStream.NOMATCH。
関連項目:
LzssOutputStream.createSearchReturn(int,int), LzssOutputStream.NOMATCH

slide

public void slide()
LzssOutputStream が slide() でTextBuffer内のデータを DictionarySize だけ移動させる際に検索機構内のデータを それらと矛盾無く移動させる処理を行う。


putRequires

public int putRequires()
put() または searchAndPut() を使用して データパタンを検索機構に登録する時に 必要とするデータ量を得る。

戻り値:
put() または searchAndPut() で 検索機構に登録するデータ量

LHA Library for Java

バグやドキュメントの誤りの報告は作者宛てにお願いします。
ドキュメント内に含まれる社名、製品名については一般に各社の商標または登録商標です。
Copyright © 2001-2002 Michel Ishizuka. All Rights Reserved.