Next: , Previous: , Up: プロセス   [Contents][Index]


39.13 トランザクションキュー

トランザクションを用いてサブプロセスと対話するためにトランザクションキュー(transaction queue)を使用できます。まずtq-createを使用して指定したプロセスと対話するためのトランザクションキューを作成します。それからトランザクションを送信するためにtq-enqueueを呼び出すことができます。

Function: tq-create process

この関数はprocessと対話するトランザクションキューを作成してリターンする。引数processはバイトストリームを送受信する能力をもつサブプロセスであること。これは子プロセス、または(おそらく別のマシン上の)サーバーへのTCP接続かもしれない。

Function: tq-enqueue queue question regexp closure fn &optional delay-question

この関数はキューqueueにトランザクションを送信する。キューの指定は対話するサブプロセスを指定する効果をもつ。

引数questionはトランザクションを開始するために発信するメッセージ。引数fnは、それにたいする応答が返信された際に呼び出す関数。これはclosureと受信した応答という2つの引数で呼び出される。

引数regexpは応答全体の終端にマッチして、それより前にはマッチしない正規表現であること。これはtq-enqueueが応答の終わりを決定する方法である。

引数delay-questionが非nilなら、そのプロセスが以前に発信したすべてのメッセージへの返信が完了するまでメッセージの送信を遅延する。これによりいくつかのプロセスにたいして、より信頼性のある結果が生成される。

Function: tq-close queue

保留中のすべてのトランザクションの完了を待機して、トランザクションキューqueueをシャットダウンして、それから接続または子プロセスを終了する。

トランザクションキューはフィルター関数により実装されています。プロセスのフィルター関数を参照してください。