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

IO へのアダプター層 (IO::Adapter クラス)

Table of Contents
IO::Adapter の概要
IO::Adapter のメソッド
fml8 で必要なメソッドの型
file マップ
unixgroup マップ
NIS マップ
MySQL マップ

IO::Adapter の概要

fml8 のメンバーリストはファイル、 Unix のグループ、 RDBMS (リレーショナルデータベースシステム)、 LDAP など、さまざまな形式で管理できます。 もちろん、デフォルトはファイルです。

fml8 でのメンバーリストの読み書き、 たとえばメールアドレスの登録/削除は IO::Adapter という抽象クラスを通じて行ないます。 ようは Unix における vfs/vnode インターフェイスの導入です。 使い方は次のようになります。

use IO::Adapter;
$io = new IO::Adapter $map, $map_params;
$io->open || croak("cannot open $map");
while ($x = $io->get_next_key()) { ... }
$io->close;

$map は「map:識別子」形式です。 現在のところ $map は次のようなものが指定可能です。 なお file: は省略可能です。

file:/var/spool/ml/elena/recipients
unix.group:root
nis.group:root
mysql:id
postgresql:id
ldap:id

file: は通常のファイルです。 unix.group:root は /etc/group の root のエントリにあるユーザのリスト、 nis.group:root は NIS の root のエントリにあるユーザのリストです。 mysql:id は MySQL、 postgresql:id は PostgreSQL へのアクセスです。 ldap:id は LDAP へのアクセスです。

設定ファイル中では、(なにかとまぎらわしいので)、 RDBMS と LDAP を別の名前空間で定義する仕様です。 たとえば MySQL は config.cf の mysql:id で指定されたパラメータを用います。

[mysql:id]

sql_database                                      = fml

sql_password                                      = uja

... 略 ...
このパラメータは new IO::Adapter を実行する際に、 指定する必要があります(後述)。

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