[printing-japan] Re: [printing-japan] Bi-di資料

Masaki IWATA iwata @ axe-inc.co.jp
2003年 12月 10日 (水) 05:53:45 PST


アックスの岩田です。

> > 仕様書のbidiStartReadの記述を参照ください。
> 
> すみません。ちゃんと書いてありますね。
> まだ頭の中の情報がバラバラで、整理が追いつかないです。

で、仕様書の説明文についてですが、

bidiStartRead()

・Bi-di Plug-in module は本関数が呼ばれたタイミングで、
  呼び元に返すプリンタステータスデータを確定する。

・プリンタステータスデータが確定するまで本関数はブロッ
  クするが、シグナルの受信によって処理の途中で本関数か
  ら戻る場合には、戻り値としてBIDI_EINTR を返す。

・Bi-di Plug-in module がプリンタとのコネクションを確
  立する処理によっては、本関数は長時間ブロックする可能
  性がある。
  呼び元が一定時間内の応答を規定したい場合は、本関数を
  呼ぶ前にアラームを設定する等する。

bidiRead()

・プリンタステータスデータのread が完了するまで本関数は
  ブロックするが、シグナルの受信によってプリンタステー
  タスデータのread の途中で本関数から戻る場合には、
  nBufBytes で指定した値よりも小さい値を返す場合がある。

・1 バイトもread せずにシグナルを受信した場合は、戻り値
  としてBIDI_EINTR を返す。

・Bi-di Plug-in module がプリンタとのコネクションを確立
  する処理によっては、本関数は長時間ブロックする可能性が
  ある。
  呼び元が一定時間内の応答を規定したい場合は、本関数を呼
  ぶ前にアラームを設定する等する。

と、なっていますよね。

bidiStartRead() での「プリンタステータスデータを確定する」
とは、実際に read() したデータのことではないのですか?

プリンタからのデータを read() しているのは、どちらなので
しょうか?
両方で read() しているのでしょうか?
シグナルを捕捉した場合を想定しているのでしょうか?

# ブロックされる可能性があるのは、どちら(或いは両方)なの
# かを知りたいだけなので、内部処理がどうなっているのかは
# 呼び出し側にとってはあまり重要ではないのですが...

--
IWATA Masaki
 岩田 正樹






More information about the Printing-japan mailing list