Previous | Table of Contents | Next |
Repository is an interface that provides global access to the Interface Repository that does not support access to information
related to CORBA Components. The Repository object can contain constants, typedefs, exceptions, interfaces, value types, value
boxes, native types, and modules. As it inherits from Container, it can be used to look up any definition (whether globally
defined or defined within a module or interface) either by name or by id.
Since Repository derives only from Container and not from Contained, it does not have a RepositoryId associated with it. By
default it is deemed to have the RepositoryId "" (the empty string) for purposes of assigning a value to the
defined_in field of the description structure of ModuleDef, InterfaceDef, ValueDef, ValueBoxDef, TypedefDef, ExceptionDef,
and ConstantDef that are contained immediately in the Repository object.
There may be more than one Interface Repository in a particular ORB environment (although some ORBs might require that definitions
they use be registered with a particular repository). Each ORB environment will provide a means for obtaining object references
to the Repositories available within the environment.
module CORBA {interface Repository : Container {// read interface
Contained lookup_id (in RepositoryId search_id);
TypeCode get_canonical_typecode(in TypeCode tc);
PrimitiveDef get_primitive (in PrimitiveKind kind);
// write interface
StringDef create_string (in unsigned long bound);
WstringDef create_wstring(in unsigned long bound);
SequenceDef create_sequence ( in unsigned long bound, in IDLType element_type
);
ArrayDef create_array ( in unsigned long length, in IDLType element_type
);
FixedDef create_fixed(in unsigned short digits,in short scale
);};};