操作
調査 #1455
完了IFR ID取得方法の調査
開始日:
2010/05/06
期日:
進捗率:
100%
予定工数:
説明
IFR IDを取得する方法を調査する。
操作
変数型については、以前type idを取得していたのとほぼ同じ方法で取得できる。
Any型に多移入してtype()が返すRepositoryId対して、id()やname()を呼ぶことで取得できる。
CORBA::Any any_var; T tmp_var; any_var <<= tmp_var; any_var.type()->id(); // repo id を返す any_var.type()->name(); // tyoe id を返す
インターフェース型については、上記と同じ方法では取得できない。
通常インターフェース型はそのままインスタンス化できないので、
_var型か_ptr型で宣言子、それに対してnilリファレンスを代入してから
type()関数でRepositoryIdを取得しなければならない。したがって、以下のようになる。
CORBA::Any any_var; T tmp_var; any_var <<= tmp_var; any_var.type()->id(); // repo id を返す any_var.type()->name(); // tyoe id を返す
これらを区別なく扱うためのテンプレート関数がTypename.hにおいて定義されている。
refs 2040