ページの先頭行へ戻る
Interstage Application Server リファレンスマニュアル(API編)
FUJITSU Software

1.8.8 CORBA_TypeCode_member_label()

名前

CORBA_TypeCode_member_label

形式

#include <orb.h>
CORBA_any*  CORBA_TypeCode_member_label(
      CORBA_TypeCode  Object,
      unsigned long  index,
      CORBA_Environment  *env);
typedef  CORBA_Object  CORBA_TypeCode;

機能説明

Objectで指定したTypeCodeオブジェクトのindexで指定したメンバのラベルを返します。
例えば、以下のunion型の場合には

  union sample switch( char ){
      case 'a': long x;
      case 'b': string y;
  }

indexを0とした場合、復帰値のCORBA_anyの_typeにはcharを示すTypeCode(TC_char)が、_valueには、'a'を表すchar変数の領域へのポインタが設定されます。

以下の属性情報を持つTypeCodeについて有効となります。

  CORBA_tk_union  16L

本関数はメンバのラベルを格納する領域を獲得するため、この領域が不要になった時点で、CORBA_free()を使用して領域を解放する必要があります。

パラメタ

Object

対象のTypeCodeオブジェクト。

index

メンバのインデックス。

env

例外情報が格納される構造体。

復帰値

正常終了した場合は、メンバのラベルが返されます。
異常終了した場合は、env構造体の_majorにはCORBA_USER_EXCEPTIONが設定され、_idに詳細情報が設定されます。_idの意味と値は次のとおりです。

ex_CORBA_TypeCode_BadKind

TypeCodeの属性情報が無効です。

ex_CORBA_TypeCode_Bounds

Indexの値が無効です。