POE-0.26 > POE::Pipe::OneWay


POE::Pipe::OneWay - portable one-way pipe creation (works without POE)

POE::Pipe::OneWay - 移植可能な片方向パイプの生成(POE無しに動作)


  my ($read, $write) = POE::Pipe::OneWay->new();
  die "couldn't create a pipe: $!" unless defined $read;


POE::Pipe::OneWay makes unbuffered one-way pipes or it dies trying.


Pipes are troublesome beasts because the different pipe creation methods have spotty support from one system to another. Some systems have pipe(), others have socketfactory(), and still others have neither.

異なったパイプ生成メソッドはシステムごとにむらの多いサポートを持ってい るのでパイプはやっかいな獣です。pipe()を持っているシステムがあり、他 はsocketfactory()を持っており、いまだにどちらも持たないものもありま す。

POE::Pipe::OneWay tries different ways to make a pipe in the hope that one of them will succeed on any given platform. It tries them in pipe() -> socketpair() -> IO::Socket::INET order.

POE::Pipe::OneWayはパイプを作るためにどんな与えられたプラットフォーム上 でもどれか一つが動くことを期待して様々な方法を試します。それらはpipe() -> socketpair() -> IO::Socket::INETの順番で試されます。

So anyway, the syntax is pretty easy:


  my ($read, $write) = POE::Pipe::OneWay->new();
  die "couldn't create a pipe: $!" unless defined $read;

And now you have a pipe with a read side and a write side.



It's possible to force POE::Pipe::OneWay to use one of its underlying pipe methods. This was implemented for exercising each method in tests, but it's possibly useful for others.

POE::Pipe::OneWayが内在するパイプメソッドの一つを使うように強制すること は可能です。それはテストで各メソッドを用いるために実装されましたが、も しかすると他のことにも役立つかもしれません。

However, forcing OneWay's pipe method isn't documented because it's cheezy and likely to change. Use it at your own risk.

しかし、OneWayのパイプメソッドの強制は粗末で変更されそうなのでドキュメ ント化されていません。自己責任で使用してください。


The INET domain socket method may block for up to 1s if it fails.

INETドメインソケットメソッドは失敗したとき最大1秒間ブロックするかもしれ ません。


POE::Pipe::OneWay is copyright 2000 by Rocco Caputo. All rights reserved. POE::Pipe::OneWay is free software; you may redistribute it and/or modify it under the same terms as Perl itself.


井上 謙次 <deq@oct.zaq.ne.jp>