IO::Adapter
IO へのアダプター層 (IO::Adapter)
fml 5.0 でのメンバーリストの読み書きは
IO::Adapter という抽象クラスを通じて、
アドレスの登録/削除を行なうようになっています。
例えば次のように使っています。
use IO::Adapter;
$obj = new IO::Adapter ($map, $map_params);
$obj->open || croak("cannot open $map");
while ($x = $obj->getline) { ... }
$obj->close;
ここで $map は次のようなものが使えます。
file:/var/spool/ml/elena/actives
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 へのアクセスです。
mysql:id で指定されたパラメータを用います。
このパラメータは new() を実行する際に別途与える必要があります。
my $map = 'mysql:toymodel';
my $map_params = {
$map => {
sql_server => 'localhost',
user => 'fukachan',
user_password => 'uja',
database => 'fml',
table => 'ml',
params => {
ml_name => 'elena',
file => 'members',
},
},
};
my $obj = new IO::Adapter ($map, $map_params);
$obj->open();
$obj->add( 'rudo@nuinui.net' );
$obj->close();