[printing-japan] BidiAPI 仕様書についてのコメント
yoshida
mikio-y @ zd6.so-net.ne.jp
2003年 12月 7日 (日) 22:53:24 PST
BBRの吉田です。
In message, Yasumasa TORATANI <toratani.yasumasa @ canon.co.jp>-san wrote on
Mon, 08 Dec 2003 13:57:13 +0900...
> 虎谷です。
>
> 色々ご指摘いただき、有難う御座います。
> 助かります。
>
> On Fri, 05 Dec 2003 21:07:36 +0900
> yoshida <mikio-y @ zd6.so-net.ne.jp> wrote:
> > ・bidiGetCap の引数ですが、
> > capのenum指定に、以下の2つは必要ないですか?
> > BIDI_CAP_READ_SUMMARY 短縮形式のプリンタステータスデータのサポート
>
> 今のところ、idReadModeに指定するモードは BIDI_READ_SUMMARYの
> 1つしか考えていないのと、BIDI_READ_SUMMARYが OPTIONALである
> 訳ではないので、BIDI_CAP_READ_SUMMARYについては、現時点では
> 不要かと思います。
>
> #現時点では常に、BIDI_CAP_READ_SUMMARYを指定します。
> #OPFCの実装では、BIDI_READ_SUMMARYだけで良いと思います。
> #で、弊社用の Bi-di Plug-inも、「一部」しか返していませんよね。
>
> 今後、具体的にどのような read modeが必要か、検討していきたいと
> 考えています。
idReadModeについて、今想定しているモード以外にSUMMARY_MODEなるものが
あると勘違いしていました。現在、BIDI_READ_SUMMARYしかないということ
でここは理解しました。
> > ・bidiStartRead で
> > idReadMode に指定可能なモードは、BIDI_READ_SUMMARY のみになってい
> > ます。BIDI_READ_NORMALとか必要ないですか?
>
> 上述でも述べましたが、今のところidReadModeに指定するモードは
> BIDI_READ_SUMMARYの1つしか考えていません。
>
> 因みにBIDI_READ_NORMALとは、「完全なPrinter MIB XMLを返す」、の
> ような意味でしょうか?
上にも書いた私の勘違いで、今出力を想定しているモードとして、NORMALが
必要かなと思っただけです。
> > ・bidiCtrl
> > 返り値に読み込んだデータのバイト数が設定されるように思うのですが?
> > もしそうだとすると、BIDI_OK はなしにして、BIDI_EINTRも必要になると
> > 思います。
>
> 確かにそうですね(^^; で、思ったのですが、
> 1) Ctrlデータを送信時にシグナルを受信
> 2) Ctrlデータを受信時にシグナルを受信
> を、切り分ける必要があるでしょうか?
う〜ん、面倒な話ですね。
データの送受信を1つの処理と考え、切り分ける必要なしとしたいのですが、
シグナルが発生した場合、返り値に設定されるバイト数が、受信なのか送信
なのか区別が付かないですね。
1)と2)の0バイト受信にシグナル受信をまとめて、BIDI_EINTRにしませんか?
> > ・BIDI_CMD_NEW の記述3
> > bidiNewには、シグナルの受信により処理未完了のまま本関数から戻る場
> > 合があるとありますが、caller側のBi-di APIでキャッチしたシグナルを
> > プロセスタイプのmoduleに渡す(killする)必要はありせんか?
>
> その必要がありそうですね。
> 例えば、コマンドのシーケンスをリセットするためのシグナルだけが
> あれば良いでしょうか?
ハイ、それで構わないと思いますが。
> > ・BIDI_CMD_DESTROY 以降の記述
> > レスポンスに、BIDI_CMD_ERRORが使われてませんが、コマンドの書式が間
> > 違っている場合など必要のように思えますがどうでしょうか?
>
> 各々のシーケンスでコマンドパケットの正当性をチェックして、エラーなら
> BIDI_CMD_ERRORを返す、ということですね。
>
> そのようなケースが発生した場合、Callerはそれ以降のシーケンスを
> 中断し、関数の戻り値としてBIDI_ERROR or NULLを返し、Bi-di Plug-in
> 側は、それ以降のシーケンスは中断されたものとみなす、
> のような処理になりますでしょうか?
ハイ。
> 因みに、関数自体のエラーは、Data=Return Value(例えばBIDI_ERROR)を
> 返すように定義してあるので、BIDI_CMD_ERRORを返すケースは
> コマンドパケットが間違っている=バグ or バージョン不整合という
> ことに限定されるかと思います。
ハイ。そう理解しています。
> > ・BIDI_CMD_STARTREAD の記述
> > シグナル処理について記述しないでよいですか?
>
> これも、コマンドのシーケンスをリセットするためのシグナルだけが
> あれば良いでしょうか?
ハイ。
> > ・BIDI_CMD_READ の記述
> > Sequenceの2)で送出するバイト数を規定していますが、もし、
> > BIDI_CMD_WRITEと仕様を合わせるなら、この規定はカットしてもよいと思
> > いますがどうでしょうか?
> > ここでもシグナルの処理がいやらしいのですが、実際にread処理をしてい
> > る途中でシグナルが発生して、予定より少ないバイト数のデータを取得す
> > ることになるかもしれません。とすると実際に行ったread関数の返り値が
> > 一番あてになると思うのですが。
>
> 読み込み側は read関数の戻り値が一番あてになるのは正しいと
> 思いますが、書き込み側で既にそれ以上のデータを書き込んで
> しまっている場合、パイプに残ったデータはどうなりますでしょうか?
> #Caller側で掃除する or 再度読み込む必要はありませんか?
Caller側が次のタイミングで読みとかしないといけませんね。
前の仕様でよいと思います。
> > あわせて、シグナル処理についての記述も必要かと思います。
>
> これも、コマンドのシーケンスをリセットするためのシグナルだけが
> あれば良いでしょうか?
ハイ。
> > ・BIDI_CMD_STARTWRITE の記述
> > シグナル処理についての記述も必要かと思います。
> >
> > ・BIDI_CMD_WRITE の記述
> > シグナル処理についての記述も必要かと思います。
>
> これも、コマンドのシーケンスをリセットするためのシグナルだけが
> あれば良いでしょうか?
ハイ。
> > ・BIDI_CMD_CTRL の記述
> > BIDI_CMD_READと同じ理由で、Sequenceの5)で送出するバイト数を規定し
> > ている部分はカットしてもよいのはと思っています。
> > あわせて、シグナル処理についての記述も必要かと思います。
>
> これについても、読み込み側は read関数の戻り値が一番あてになるのは
> 正しいと思いますが、書き込み側で既にそれ以上のデータを書き込んで
> しまっている場合、パイプに残ったデータはどうなりますでしょうか?
こちらも前の仕様のままでよいと思います。
> あと、これもコマンドのシーケンスをリセットするためのシグナルだけが
> あれば良いでしょうか?
ハイ。
> 以上、よろしくお願いします。
>
> -----------------------------------------
> Yasumasa TORATANI
> Computer Technology Development Dept. 12
> CANON INC. Shimomaruko Office, Japan
----
吉田 幹 mikio-y @ zd6.so-net.ne.jp
(有)BBR
More information about the Printing-japan
mailing list