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

fml8 チュートリアル (バージョン 7.99.1-20180910)
Prev |  | Next

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

# 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 を実行する際に、 指定する必要があります(後述)。

Prev | Home | Next
モジュール | Up | IO::Adapter のメソッド

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.