Previous | Table of Contents | Next |
Several types are used throughout the IR interface definitions.
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,dk_AbstractInterface,dk_LocalInterfacedk_Component, dk_Home,dk_Factory, dk_Finder,dk_Emits, dk_Publishes, dk_Consumes,dk_Provides, dk_Uses,dk_Event
}; };
Identifiers are the simple names that identify modules, interfaces, components, homes, value and event types, value members,
value boxes, constants, typedefs, exceptions, attributes, operations, ports, and native types. They correspond exactly to
OMG IDL identifiers. An Identifier is not necessarily unique within an entire Interface Repository; it is unique only within
a particular Repository, ModuleDef, InterfaceDef, ComponentDef, HomeDef, ValueDef , EventDef, OperationDef FactoryDef, or
FinderDef.
A ScopedName is a name made up of one or more Identifiers separated by the characters “::?. They correspond to OMG IDL scoped
names.
An absolute ScopedName is one that begins with “::? and unambiguously identifies a definition in a Repository. An absolute
ScopedName in a Repository corresponds to a global name in an OMG IDL file. A relative ScopedName does not begin with “::?
and must be resolved relative to some context.
A RepositoryId is an identifier used to uniquely and globally identify a module, interface, component, home, value type, event
type, value member, value box, native type, constant, typedef, exception, attribute or operation. As RepositoryIds are defined
as strings, they can be manipulated (e.g., copied and compared) using a language binding’s string manipulation routines.
A DefinitionKind identifies the type of an IR object.