[Seasar-dev:82] Re: [S2JMS] S2JMS.DAO

Kenichiro Murata muraken720
2005年 7月 24日 (日) 22:50:54 JST


むらたです。

> -----Original Message-----
> From: seasar-dev-bounces @ lists.sourceforge.jp
> [mailto:seasar-dev-bounces @ lists.sourceforge.jp] On Behalf Of
> Koichi Kobayashi
> Sent: Friday, July 22, 2005 3:12 AM
> To: seasar-dev @ lists.sourceforge.jp
> Subject: [Seasar-dev:77] Re: [S2JMS] S2JMS.DAO
>
> 小林 (koichik) です.

> > あえて独自仕様にする必要はないと思います。
>
> 実は待機する・しないをパラメータで指定するというのがかなりの
> 独自仕様なんですよね.
> 標準 API の多くは待機しない場合に別のメソッドを用意するの普通です.
> JMS だと receive() と receiveNoWait() だし,NIO の Selector でも
> select() と selectNow() とか.

なるほど。

> このようにメソッドを明確に分ける場合には 0 で無制限というのも
> 直感的なのですが,今回のように待機しない場合も同じメソッドで扱う場合,
> 無制限が 0 で待機しないのが負というのは直感的ではないように思えます.
> 待機しない == 待機時間 (タイムアウトするまでの待ち時間) が 0 と
> 解釈できるためです.ここが悩ましい.

たしかに0だと「待機しない」と解釈してしまいますよね。
(私もそうでした)

私の場合はSocketなどのメソッドを使う際に、
JavaDocを調べることで、0が「無制限に待つ」ことを覚えたので、
今では0で「無制限に待つ」で自然だと感じます。

待機しないをNO_WAIT(=-1)という定数にして、

 receive(XXX.NO_WAIT)

と使うのはどうでしょう。
#ちょっと安易かもしれませんが。

-----
Kenichiro Murata
mailto: muraken720 @ msj.biglobe.ne.jp





seasar-dev メーリングリストの案内