Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第2章 C++言語インタフェース> 2.2 ORBクラス

2.2.7 CORBA::ORB::string_to_object()

名前

 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()を使用して領域を解放する必要があります。

パラメタ

 str
オブジェクトリファレンスへの変換元の文字列。
 env
例外情報が格納される構造体。

復帰値

 正常終了した場合、オブジェクトリファレンスが設定されます。
 異常終了した場合、envのexceptionメンバにSystemExceptionオブジェクトのオブジェクトリファレンスが設定され、SystemException_idに詳細情報が設定されます。_idの値と意味は次のとおりです。設定されたマイナーコードの意味については、“メッセージ集”の“CORBAサービスから通知される例外情報/マイナーコード”を参照してください。

 IDL:CORBA/BAD_PARAM:1.0
 指定されたURLスキーマの形式に誤りがあります。

備考

 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;
      }

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005