LHA Library for Java

jp.gr.java_conf.dangan.util.lha
Interface LzssSearchMethod

All Known Implementing Classes:
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]
     タブ廃止
     ライセンス文の修正

 

Version:
$Revision: 1.1 $
Author:
$Author: dangan $

Method Summary
 void put(int position)
          position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、 put または searchAndPut を呼び出す。
 int putRequires()
          put() または searchAndPut() を使用して データパタンを検索機構に登録する時に 必要とするデータ量を得る。
 int search(int position, int lastPutPos)
          検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索する。
このメソッドは LzssOutputStream の flush() を実装するためだけに提供される。
TextBuffer.length < position + MaxMatch となるような position にも対応すること。
 int searchAndPut(int position)
          検索機構に登録されたデータパタンから position から始まるデータパタンと 最長の一致を持つものを検索し、 同時に position から始まるデータパタンを LzssSearchMethod の持つ検索機構に登録する。
LzssOutputStream は 線形に、重複無く、 put または searchAndPut を呼び出す。
 void slide()
          LzssOutputStream が slide() でTextBuffer内のデータを DictionarySize だけ移動させる際に検索機構内のデータを それらと矛盾無く移動させる処理を行う。
 

Method Detail

put

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

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

searchAndPut

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

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

search

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

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

slide

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


putRequires

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

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

LHA Library for Java

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.