Borland(R) Enterprise Server VisiBroker(R) デベロッパーズガイド

[目次][索引][前へ][次へ]

17.4.5 複数のリクエストを受信

send_multiple_requests_deferredを使用してリクエストのシーケンスを送信した場合は,poll_next_responseメソッドとget_next_responseメソッドを使用して,サーバから各リクエストについて送信される応答を受信します。

VisiBroker ORBメソッドpoll_next_responseを使用すると,サーバから応答を受信したかどうかを調べることができます。このメソッドは,一つでも応答があればtrue(真)を返し,何も応答がなければfalse(偽)を返します。

VisiBroker ORBメソッドget_next_responseを使用すると,応答を受信できます。何も応答がなければ,このメソッドは応答を受信するまで待ち続けます。クライアントプログラムを待たせ続けたくない場合は,まずpoll_next_responseメソッドを使用して応答が入手できるかどうかを調べ,次にget_next_responseメソッドを使用して結果を受信します。コードサンプル17-23に複数のリクエストを送受信するVisiBroker ORBのメソッド(C++),コードサンプル17-24に複数のリクエストを送受信するVisiBroker ORBのメソッド(Java)を示します。

コードサンプル17-23 複数のリクエストを送信し結果を受信するVisiBroker ORBメソッド(C++)
 
class CORBA {
   class ORB {
      . . .
      typedef sequence <Request_ptr> RequestSeq;
      void send_multiple_requests_oneway(const RequestSeq &);
      void send_multiple_requests_deferred(const RequestSeq &);
      Boolean poll_next_response();
      Status get_next_response();
      . . .
   };
};

コードサンプル17-24 複数のリクエストを送信し結果を受信するVisiBroker ORBメソッド(Java)
 
package org.omg.CORBA;
public abstract class ORB {
   public abstract org.omg.CORBA.Environment
                                        create_environment();
   public abstract void send_multiple_requests_oneway(
                               org.omg.CORBA.Request[ ] reqs);
   public abstract void send_multiple_requests_deferred(
                               org.omg.CORBA.Request[ ] reqs);
   public abstract boolean poll_next_response();
   public abstract org.omg.CORBA.Request get_next_response();
   . . .
}