Hippo2000 (2000/7/28)
LWP::Protocolモジュールなのです。
作者はGisle Aasさんです。メールで許可をいただきました。
LWP::Protocol - LWPプロトコルの基本クラス
package LWP::Protocol::foo; require LWP::Protocol; @ISA=qw(LWP::Protocol);
このクラスはLWPライブラリによりサポートされるすべてのプロトコル実装のための基本クラスとして使われます。
LWP::Protocol::create($url)を使ってこのクラスのインスタンスを作成すると、そのアクセス方法にて記述した、初期化されたサブクラスを取得します。いいかえれば、LWP::Protocol::create() はそのサブクラスの1つのためのコンストラクタを呼び出します。
LPW::Protocolから派生したすべてのクラスは、リクエストをサービスするために使われるrequest()メソッドをオーバーライドする必要があります。オーバーライドされたメソッドは、それが受信したときにデータのチャンクをまとめるためにcollect関数を使うことが出来ます。
以下の関数が提供されます:
$response = $protocol->request($request, $proxy, undef); $response = $protocol->request($request, $proxy, '/tmp/sss'); $response = $protocol->request($request, $proxy, \&callback, 1024);
プロトコルにリクエストを発行し、レスポンス・オブジェクトを返します。このメソッドはサブクラスでオーバーライドされる必要があります。引数の説明についてはLWP::UserAgentを参照してください。
$collectoerは呼ばれるルーチンです。そしてそれは処理する内容のカケラを(スカラへのリファレンスとして)返すことに責任を持ちます。$collectorは空文字列へのリファレンスを返すことでEOFを知らせます。
collect()からの戻り値は$responseオブジェクト・リファレンスです。
注意:$response->is_success()であったときだけ、コールバックやファイル引数を使います。これによりリダイレクトのためのコンテント・データと混乱をまねくであろうコールバックへの認証レスポンスを送信することを避けています。
使用例として LWP/Protocol/file.pm と LWP/Protocol/http.pm ファイルをご覧下さい。
Copyright 1995-2000 Gisle Aas.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。