名前
CORBA_ORB_string_to_object
形式
#include <orb.h> CORBA_Object CORBA_ORB_string_to_object( CORBA_ORB orb, CORBA_string str, CORBA_Environment *env );
機能説明
strで指定した文字列を元にオブジェクトリファレンスを取得します。“アプリケーション作成ガイド(CORBAサービス編)”の“URLスキーマ”に記述されているすべての形式の文字列を指定できます。ただし、文字列に日本語を含むことはできません。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_Object_release()を使用して領域を解放する必要があります。
パラメタ
復帰値
正常終了した場合は、オブジェクトリファレンスが設定されます。
異常終了した場合は、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが設定され、_idと_minorに詳細情報が設定されます。_idの意味と値は次のとおりです。
_minorの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
指定されたURLスキーマの形式に誤りがあります。
備考
strにはCORBA_ORB_object_to_string()によって取得できる“IOR:”で始まる形式の文字列の他、“cobaloc”や“corbaname”で始まる形式の文字列も指定が可能です。詳細は“アプリケーション作成ガイド(CORBAサービス編)”の“URLスキーマ”を参照してください。
なお、URLスキーマを指定した場合、URL内に指定したホストと通信を行ってオブジェクトリファレンスを取得します。この際、ホストの名前解決が必要な場合があります。
使用例
URLスキーマを使用するサンプル
int main(int argc, char **argv) { CORBA_ORB orb; CORBA_Object obj_ns, obj_sv, obj_sv2; CORBA_Environment env; int current_argc = argc; CosNaming_Name name; CosNaming_NameComponent name_component; orb = CORBA_ORB_init( ¤t_argc, argv, FJ_OM_ORBid, &env ); name._length = name._maximum = 1; name._buffer = &name_component; name_component.id = "test1::intf1"; name_component.kind = ""; obj_ns = CORBA_ORB_string_to_object( orb, "corbaloc::nshost:8002/NameService", &env ); obj_sv = CosNaming_NamingContext_resolve( obj_ns, &name, &env ); obj_sv2 = CORBA_ORB_string_to_object( orb, "corbaname::nshost:8002/NameService#test1::intf1", &env ); test_intf1_add( obj_sv, 1, 2, &env ); test_intf1_add( obj_sv2, 1, 2, &env ); return 0; }