StreamBuffer – レガシーなプロセス間非同期通信バッファ

きっとよくある車輪をまたまた再発明してしまったかも。あるプロセスが連続的に出力するデータをバッファリングして、別のプロセスがそのデータを連続的に取得するためのモジュール。

StreamBuffer-0.01 [Download] [Browse]

説明

  • レガシーなファイルベースI/Oで、Windowsでも使用可能
  • バッファリング用ファイルは一定サイズ(デフォルトは1MiB)
  • 最大約86EiB(ポインタが10進数20桁なだけで、実際には使用するPerlが扱える最大整数値が限界)のストリームデータをファイルに上書きしながら記録(そのため、ファイルサイズを超えるデータを1度に書き込んだ場合、複数回の書き込みにより更新データがファイルサイズを超えてから読み込む場合は、エラーが発生)
  • データの取得はブロッキング(と言っても、定期的な更新確認による疑似ブロッキング)とノンブロッキングに対応していて、ブロッキング中は1秒毎のコールバックも可能
StreamBuffer::Writer->write
↓
バッファリング用ファイル
↓
StreamBuffer::Reader->read もしくは ->read_nb ※ノンブロッキング

メソッド

StreamBuffer::Writer

new
write

StreamBuffer::Reader

new
read
read_nb

共通

path
pos
close