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

第1章 C言語インタフェース> 1.1 ORBインタフェース

1.1.7 CORBA_ORB_string_to_object()

名前

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

パラメタ

 orb
CORBA_ORB_init()によって獲得したORBのオブジェクトリファレンス。
 str
オブジェクトリファレンスへの変換元の文字列。
 env
例外情報が格納される構造体。

復帰値

 正常終了した場合は、オブジェクトリファレンスが設定されます。
 異常終了した場合は、env構造体の_majorにはCORBA_SYSTEM_EXCEPTIONが設定され、_idと_minorに詳細情報が設定されます。_idの意味と値は次のとおりです。
 _minorの意味については、“メッセージ集”の“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  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( &current_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; 
      }

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

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