Previous | Table of Contents | Next |
The lookup_id operation is used to lookup an object in a Repository given its RepositoryId. If the Repository does not contain
a definition for search_id, a nil object reference is returned. The lookup_id operations always return a nil reference if
the value of search_id is IDL:omg.org/CORBA/Object:1.0, or IDL:omg.org/CORBA/ValueBase:1.0, signifying the fact that the implicit
base types are not contained in the Interface Repository.
The get_canonical_typecode operation looks up the TypeCode in the Interface Repository and returns an equivalent TypeCode
that includes all repository ids, names, and member_names. If the top level TypeCode does not contain a RepositoryId, such
as array and sequence TypeCodes, or TypeCodes from older ORBs, or if it contains a RepositoryId that is not found in the target
Repository, then a new TypeCode is constructed by recursively calling get_canonical_typecode on each member TypeCode of the
original TypeCode.
The get_primitive operation returns a reference to a PrimitiveDef (see
Section 10.5.14, “PrimitiveDef,? on page 10-28) with the specified
kind attribute. All PrimitiveDefs are immutable and are owned by the Repository.
10.5.6.2 Write Interface
The five create_<type> operations that create new IR objects defining anonymous types. As these interfaces are not derived
from Contained, it is the caller’s responsibility to invoke destroy on the returned object if it is not successfully used
in creating a definition that is derived from Contained. Each anonymous type definition must be used in defining exactly one
other object.
1. The create_string operation returns a new StringDef with the specified bound, which must be non-zero. The get_primitive operation is used for unbounded strings.
2. The create_wstring operation returns a new WstringDef with the specified bound, which must be non-zero. The get_primitive operation is used for unbounded strings.
3. The create_sequence operation returns a new SequenceDef with the specified bound and element_type.
4. The create_array operation returns a new ArrayDef with the specified length and element_type.
5. The create_fixed operation returns a new FixedDef with the specified number of digits and scale. The number of digits must be from 1 to 31, inclusive.