SWF-File-0.20 > SWF::BinStream::Codec

名前

SWF::BinStream::Codec - SWF::BinStream用のcodecについて

概要

  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;

説明

SWF::BinStream:Codec::*パッケージは、SWF::BinStreamの読み書きに対してある種のcodecを追加するものです。 全体のパッケージ名は'SWF::BinStream::Codec::[name]'でなければいけません。 SWF::BinStreamは、add_codecメソッドがnameを引数として呼ばれると、'SWF::BinStream::Codec::[name]'をrequireします。 2つのサブパッケージ、'SWF::BinStream::Codec::[name]::Read'と'SWF::BinStream::Codec::[name]::Write'を、その中に用意します。

メソッド

codecクラスは以下のメソッドを備えてなければいけません。それぞれのメソッドは、 エラー時にはdieすべきです。

SWF::BinStream::[name]::Read

SWF::BinStream::[name]::Read->new;

新しいデコーダを返します。引数は取りません。

$codec->decode( $data );

ストリームからデータを読むときに呼ばれます。 ストリームから読まれたデータを引数に取ります。 デコードして返します。

$codec->close;

ストリームを閉じるときに呼ばれます。 引数は取りません。

SWF::BinStream::[name]::Write

SWF::BinStream::[name]::Write->new;

新しいエンコーダを返します。引数は取りません。

$codec->encode( $data );

ストリームにデータを書き込む前に呼ばれます。 書き込まれるデータを引数に取ります。 エンコードして返します。

$codec->close( $data );

ストリームを閉じるときに呼ばれます。 バッファに残ったデータがあれば引数に取ります。 エンコードして返します。また、エンコーダ中に残ったデータがあれば それも返します。

コピーライト

Copyright 2002 Yasuhiro Sasama (ySas), <ysas@nmt.ne.jp>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

翻訳者

笹間康弘 (ysas@nmt.ne.jp)