10.4.1 サポートしている型定義
いくつかの型が、インタフェース・リポジトリのインタフェース定義全体に使用されています。
module CORBA {
typedef string Identifier;
typedef string ScopedName;
typedef string RepositoryId;
enum DefinitionKind {
dk_none, dk_all,
dk_Attribute, dk_Constant, dk_Exception, dk_Interface,
dk_Module, dk_Operation, dk_Typedef,
dk_Alias, dk_Struct, dk_Union, dk_Enum,
dk_Primitive, dk_String, dk_Sequence, dk_Array,
dk_Repository,
dk_Wstring, dk_Fixed,
dk_Value, dk_ValueBox, dk_ValueMember,
dk_Native
};
};
Identifiersは、モジュール、インタフェース、値型、値メンバー、値ボックス、定数、typedef、例外、属性、操作およびネイティブ型を識別する、単純な名前です。ちょうどOMG IDLの識別子に対応します。Identifierは、インタフェース・リポジトリ全体では必ずしも一意ではありません。特定のRepository、ModuleDef、InterfaceDef、ValueDef、またはOperationDef内でのみ、一意です。
ScopedNameは、ダブル・コロン(::)で区切られた、1つまたは複数の識別子で構成される名前です。OMG IDLのスコープ指定された名前に対応します。絶対ScopedNameとは、先頭にダブル・コロン(::)があり、Repository内で定義を明確に識別するものを言います。Repository内の絶対ScopedNameは、OMG IDLファイルのグローバル名に対応します。相対ScopedNameは、先頭にダブル・コロン(::)がなく、何らかのコンテキストを基準として解決される必要があります。
RepositoryIdは、モジュール、インタフェース、値型、値メンバー、値ボックス、ネイティブ型、定数、typedef、例外、属性、または操作を一意かつグローバルに識別するために使用される識別子です。RepositoryIdは文字列として定義されるため、言語バインディングの文字列操作ルーチンで操作(たとえばコピーや比較)が可能です。
DefinitionKindは、インタフェース・リポジトリ・オブジェクトの型を識別します。
親トピック: インタフェース・リポジトリのインタフェース