Logo Search packages:      
Sourcecode: yaskkserv version File versions  Download package

SkkUtility::Hash< T > Class Template Reference

#include <skk_utility.hpp>

List of all members.


Detailed Description

template<HashType T>
class SkkUtility::Hash< T >

candidate or 「見出し」専用ハッシュです。キー文字列の終端は HashType に応じて '/' または ' ' となります。念のため '\0' でも終端しますが、こちらはデバッグビルドではアサートします。

キーとなる文字列は add() 以降破壊してはなりません。このため書き換え が発生するテンポラリバッファなどへの使用はできないことに注意が必要で す。

Definition at line 1218 of file skk_utility.hpp.


Public Types

enum  {
  PRIME_2 = 2, PRIME_4 = 5, PRIME_8 = 11, PRIME_16 = 17,
  PRIME_32 = 37, PRIME_64 = 67, PRIME_128 = 131, PRIME_256 = 257,
  PRIME_512 = 547, PRIME_1024 = 1031, PRIME_2048 = 2053, PRIME_4096 = 4099,
  PRIME_8192 = 8209, PRIME_16384 = 16411, PRIME_32768 = 32771, PRIME_65536 = 65539
}

Public Member Functions

bool add (const char *key, int size)
 candidate 文字列 key をハッシュに登録します。登録に成功すれば真を、バッファが一杯で登録に失敗するか、既に登録されていれば偽を返します。
bool contain (const char *key, int size) const
 size バイトの candidate 文字列 key がハッシュに登録されていれば真を返します。
void getDebugBuildInformation (int &counter, int &offset_max, double &average)
 デバッグビルドで取得できるデバッグ情報を取得します。リリースビルドでは取得する情報は全て 0 になります。
int getEmptyHashTableLength () const
int getHashTableLength ()
 Hash (int hash_table_length)
 hash_table_length のハッシュテーブル長を持つオブジェクトをコストラクトします。 hash_table_length は getPrimeHashTableLength() で生成したものを使用すると性能が向上します。

Static Public Member Functions

static int getPrimeHashTableLength (int hash_table_length)
 引数の hash_table_length からハッシュテーブルサイズに最適な値 (大き目の素数) を返します。取得に失敗した場合は 0 を返します。

Private Member Functions

bool compare (const char *key_0, const char *key_1, int size) const
int get_hash_root (const char *key, int size) const
 Hash (Hash &source)
Hashoperator= (Hash &source)

Private Attributes

int add_counter_
Unit * hash_table_
int hash_table_length_

Classes

struct  Unit

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index