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)を示します。
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();
. . .
};
};
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();
. . .
}