リクエストを送信する最も単純な方法は,そのリクエストのinvokeメソッドを呼び出すことです。このメソッドはリクエストを送信し,応答を待ってからクライアントプログラムに戻ります。return_valueメソッドは,リターン値を表すAnyオブジェクトのポインタ(C++)またはリファレンス(Java)を返します。
try {
. . .
// Create request that will be sent to the account object
request = account->_request("balance");
// Set the result type
request->set_return_type(CORBA::_tc_float);
// Execute the request to the account object
request->invoke();
// Get the return balance
CORBA::Float balance;
CORBA::Any& balance_result = request->return_value();
balance_result >>= balance;
// Print out the balance
cout << "The balance in " << name << "'s account is $"
<< balance << endl;
} catch(const CORBA::Exception& e) {
cerr << e << endl;
return 1;
}
return 0;
. . .
try {
. . .
// Create request that will be sent to the account object
request = account._request("balance");
// Set the result type
request.set_return_type(orb.get_primitive_tc
(org.omg.CORBA.TCKind.tk_float));
// Execute the request to the account object
request.invoke();
// Get the return balance
float balance;
org.omg.CORBA.Any balance_result = request.return_value();
balance = balance_result.extract_float();
// Print out the balance
System.out.println("The balance in " + name +
"'s account is $" + balance);
} catch(Exception e) {
e.printStackTrace();
}