=encoding euc-jp =head1 NAME SWF::BinStream::Codec - SWF::BinStream用のcodecについて =head1 SYNOPSIS use SWF::BinStream; .... $stream->add_codec('Foo'); ---- package SWF::BinStream::Codec::Foo; $VERSION='x.xx'; package SWF::BinStream::Codec::Foo::Read; sub new {} sub decode {} sub close {} package SWF::BinStream::Codec::Foo::Write; sub new {} sub encode {} sub close {} 1; =head1 DESCRIPTION Iパッケージは、Iの読み書きに対してある種のcodecを追加するものです。 全体のパッケージ名は'SWF::BinStream::Codec::I<[name]>'でなければいけません。 Iは、IメソッドがIを引数として呼ばれると、'SWF::BinStream::Codec::I<[name]>'をrequireします。 2つのサブパッケージ、'SWF::BinStream::Codec::I<[name]>::Read'と'SWF::BinStream::Codec::I<[name]>::Write'を、その中に用意します。 =head2 METHODS codecクラスは以下のメソッドを備えてなければいけません。それぞれのメソッドは、 エラー時にはIすべきです。 =head3 SWF::BinStream::I<[name]>::Read =over 4 =item SWF::BinStream::I<[name]>::Read->new; 新しいデコーダを返します。引数は取りません。 =item $codec->decode( $data ); ストリームからデータを読むときに呼ばれます。 ストリームから読まれたデータを引数に取ります。 デコードして返します。 =item $codec->close; ストリームを閉じるときに呼ばれます。 引数は取りません。 =back =head3 SWF::BinStream::I<[name]>::Write =over 4 =item SWF::BinStream::I<[name]>::Write->new; 新しいエンコーダを返します。引数は取りません。 =item $codec->encode( $data ); ストリームにデータを書き込む前に呼ばれます。 書き込まれるデータを引数に取ります。 エンコードして返します。 =item $codec->close( $data ); ストリームを閉じるときに呼ばれます。 バッファに残ったデータがあれば引数に取ります。 エンコードして返します。また、エンコーダ中に残ったデータがあれば それも返します。 =back =head1 COPYRIGHT Copyright 2002 Yasuhiro Sasama (ySas), This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 翻訳者 笹間康弘 (ysas@nmt.ne.jp) =cut