## 1 asynchat - 補助クラスと関数

クラス `simple_producer`( | data[, buffer_size=512])

  `simple_producer`には、一連のデータと、オプションとしてバッファ サイズを指定する事ができます。`more()`が呼び出されると、その都 度buffer_size以下の長さのデータを返します。

`more`( | )

  プロデューサから取得した次のデータか、空文字列を返します。

クラス `fifo`( | [list=None])

  各チャネルは、アプリケーションからプッシュされ、まだチャネルに書き出さ れていないデータを`fifo`に保管しています。`fifo`では、必 要なデータとプロデューサのリストを管理しています。引数listには、 プロデューサかチャネルに出力するデータを指定する事ができます。

`is_empty`( | )

  fifoが空のとき`True`を返します。

`first`( | )

  fifoに`push()`されたアイテムのうち、最も古いアイテムを返します。

`push`( | data)

  データ(文字列またはプロデューサオブジェクト)をプロデューサfifoに追加します。

`pop`( | )

  fifoが空でなければ、`(True, first())`を返し、ポップされたアイテム を削除します。fifoが空であれば`(False, None)`を返します。

`asynchat`は、ネットワークとテキスト分析操作で使えるユーティリテ ィ関数を提供しています。

`find_prefix_at_end`( | haystack, needle)

  文字列haystackの末尾がneedleの先頭と一致するかを調べ、一致 した文字数を返します。ex)`find_prefix_at_end("abc12
  r", "
  r")` は1を返します。