[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

メソッド

前述のように IO::Adapter の基本メソッドは次の通りです。

open()
close()
add(KEY, ARGV) (ARGV はクラス依存のデータ渡しのためにある引数)
delete(KEY)
find(KEY or REGEXP)
get_next_key()

もちろん、オブジェクトを生成するのは new() ですので、 これら以外に new() だけは必要です:) 必要なら適宜、ディストラクタも定義して下さい。

new()

オブジェクトを生成するのは new() です。 たとえば IO::Adapter であれば、

$obj = new IO::Adapter マップ;
もしくは
$obj = new IO::Adapter マップ, パラメータ(ハッシュリファレンス);
などとオブジェクトタイプを引数(マップ)で指定するため、 マップに応じた初期化を行ないます。

呼び出しの基本形は引数の多い方に合わせるので、次のようになります。

my $config = $curproc->config();
my $obj    = new IO::Adapter $map, $config;
HOOK で利用する際にも、つねに、この形で書いておくべきです。

open()

ファイルであれば open(2)、 RDBMS であれば SQL サーバへの接続を確立する、 といった具合です。

close()

すなおに open() の逆の動作をします。

add(KEY, ARGV)

KEY (プライマリキー)もしくは KEY および KEY に付随するデータをオブジェクトに書き込みます。 なお、ARGV はクラス依存のデータ渡しのためにある引数で、 この引数が使われないこともあります。

Unix とは異なり、 オブジェクトの構造に一定の型があります。 型とは RDBMS のようなテーブルの形です。

また、プライマリキーとなるのは通常メールアドレスです。 この前提が多くの場面で正しいため、 メールアドレスをプライマリキーにしたテーブル型が基本的なデータ構造といえます。

delete(KEY)

KEY および KEY に付随するデータ構造を削除します。

find(KEY) / find(REGEXP)

オブジェクト内からプライマリキーに該当するデータを探します。

探す対象を正規表現で指定できるように作る方が便利です。 正規表現検索が使えると、ユーザ検索などで重宝します。

返り値は STR か ARRAY_REF (KEY に対する [ VALUE, VALUE2, VALUE3 ])です。

get_next_key()

プライマリキーの一覧を取り出したい場合が多々あります。 そこで

while ($obj->get_next_key()) { ... }
のような表現を可能とするために、このメソッドが実装されています。

これはハッシュの FIRST_KEY() と NEXT_KEY() にあたるといえます。 しかしながら、 我々の場合は open() などのメソッドが別途用意されているため、 FIRST_KEY() と NEXT_KEY() のように2つに分ける必要はありません。

XXX すなおに、key() もしくは get_key() でも良い気がする?

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >