名前
CORBA_ORB_resolve_initial_references_remote
形式
#include <orb.h>
CORBA_Object CORBA_ORB_resolve_initial_references_remote(
CORBA_ORB orb,
CORBA_ORB_ObjectId identifier,
CORBA_ORB_RemoteModifier *m,
CORBA_Environment *env );
typedef CORBA_string CORBA_Identifier;
typedef CORBA_string InitAgentDesignator;
typedef sequence<InitAgentDesignator> RemoteModifier;機能説明
identifierで指定されたオブジェクトのオブジェクトリファレンスを返します。オブジェクトリファレンスは、URL形式でmに定義されたホストのinitial_servicesを検索して獲得します。
identifierには、以下のものが使用できます。
インタフェースリポジトリ(動的スケルトンンインタフェース)
ネーミングサービス
mには複数のURLを指定することが可能です。この場合、指定された順に検索を行い、オブジェクトリファレンスが見つかった時点で検索は打ち切られます。
URLの指定形式を以下に示します。
<address>には ホスト名、DNS名、IPアドレスを指定することが可能です。省略はできません。
<port>には接続先ORBのポート番号を指定します。
なお、IPv6形式のアドレスを指定することはできません。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_Object_release()を使用して領域を解放する必要があります。
パラメタ
CORBA_ORB_init()によって獲得したORBのオブジェクトリファレンス。
イニシャルリファレンスの識別子。
接続先URLのリスト。
例外情報が格納される構造体。
復帰値
正常終了した場合は、オブジェクトリファレンスが返されます。
異常終了した場合は、env構造体に例外情報が設定されます。
CORBA_USER_EXCEPTIONが発生した場合は、env構造体の_idに以下の詳細情報が設定されます。
identifierに指定されたオブジェクトが見つかりません。
注意事項
GS等、Interstage Application Server以外のORB製品に対して本関数を使用することはできません。
使用例
CORBA_string URLs[2];
CORBA_ORB_RemoteModifier m;
m._length = m._maximum = 2;
m._buffer = URLs;
URLs[1] = "iiop://remotehost01:8002";
URLs[0] = "iiop://remotehost02:8002";
cos_naming = CORBA_ORB_resolve_initial_references_remote(
orb,
CORBA_ORB_ObjectId_NameService,
&m,
&env);