Interstage Application Server リファレンスマニュアル(API編) |
目次
索引
![]() ![]() |
第2章 C++言語インタフェース | > 2.2 ORBクラス |
CORBA::ORB::string_to_object
#include <orb_cplus.h> Object_ptr CORBA::ORB::string_to_object( const char *str, CORBA::Environment& env );
strで指定した文字列をオブジェクトリファレンスに変換します。“アプリケーション作成ガイド(CORBAサービス編)”の“URLスキーマ”に記述されているすべての形式の文字列を変換することができます。ただし、文字列に日本語を含むことはできません。
本関数はオブジェクトリファレンスを格納する領域を獲得するため、この領域が不要になった時点で、CORBA::release()を使用して領域を解放する必要があります。
正常終了した場合、オブジェクトリファレンスが設定されます。
異常終了した場合、envのexceptionメンバにSystemExceptionオブジェクトのオブジェクトリファレンスが設定され、SystemException_idに詳細情報が設定されます。_idの値と意味は次のとおりです。設定されたマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。
strにはCORBA::ORB::object_to_string()によって取得できる“IOR:”で始まる形式の文字列の他、“cobaloc”や“corbaname”で始まる形式の文字列も指定が可能です。詳細は“アプリケーション作成ガイド(CORBAサービス編)”の“URLスキーマ”を参照してください。
int main(int argc, char **argv) { CORBA::ORB_ptr orb; CORBA::Object_ptr obj_ns, obj_sv, obj_sv2; CORBA::Environment_ptr env = new CORBA::Environment; int current_argc = argc; orb = CORBA::ORB_init( current_argc, argv, FJ_OM_ORBid, *env ); CosNaming::NameComponent_ptr name_component = new CosNaming::NameComponent; name_component->id = (const CORBA::Char *)"test1::intf1"; name_component->kind = (const CORBA::Char *)""; CosNaming::NameComponent_var *name_component_var = CosNaming::Name::allocbuf(1); name_component_var[0] = name_component; CosNaming::Name_ptr name = new CosNaming::Name( 1, 1, name_component_var, CORBA_TRUE ); obj_ns = orb->string_to_object( "corbaloc::nshost:8002/NameService", *env ); CosNaming::NamingContext_ptr NamingContext_obj = CosNaming::NamingContext::_narrow( obj_ns ); obj_sv = NamingContext_obj->resolve( *name, *env ); test1::intf1_ptr ap1 = test1::intf1::_narrow( obj_sv ); test1::intf1_var av1 = ap1; av1->add( 1, 2, *env ); obj_sv2 = orb->string_to_object( "corbaname::nshost:8002/NameService#test1::intf1", *env ); test1::intf1_ptr ap2 = test1::intf1::_narrow( obj_sv2 ); test1::intf1_var av2 = ap2; av2->add( 1, 2, *env ); return 0; }
目次
索引
![]() ![]() |