Previous Table of Contents Next


10.5.6 Repository


   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

   );};};