Previous Table of Contents Next


10.5 Interface Repository Interfaces

   Several interfaces are used as base interfaces for objects in the IR. These base interfaces are not instantiable.

   A common set of operations is used to locate objects within the Interface Repository. These operations are defined in the interfaces IRObject, Container, and Contained described below. All IR objects inherit from the IRObject interface, which provides an operation for identifying the actual type of the object. Objects that are containers inherit navigation operations from the Container interface. Objects that are contained by other objects inherit navigation operations from the Contained interface.

   The IDLType interface is inherited by all IR objects that represent IDL types, including interfaces, typedefs, and anonymous types. The TypedefDef interface is inherited by all named non-interface types.

   The base interfaces IRObject, Contained, Container, IDLType, TypedefDef ComponentIR::Container and ComponentIR::EventPortDef are not instantiable.

   All string data in the Interface Repository are encoded as defined by the ISO 8859-1 coded character set.

   Interface Repository operations indicate error conditions using the system exceptions BAD_PARAM and BAD_INV_ORDER with specific minor codes. The specific operations that raise these exceptions are documented in the description of the operations. For a description of how these minor codes are encoded in the ex_body of standard exceptions see Section 4.12.2, “System Exceptions,? on page 4-64 and Section 4.12.4, “Standard Minor Exception Codes,? on page 4-73. The exceptions and minor codes that are used by Interface Repository interfaces are as follows:

   Table 10-1 Standard Exceptions used by the Interface Repository Operations

Exception

BAD_PARAM

Minor Code

Explanation

2 RID is already defined in IFR
3 Name already used in the context in IFR
4 Target is not a valid container
5 Name clash in inherited context

   Table 10-1 Standard Exceptions used by the Interface Repository Operations

Exception

BAD_PARAM

BAD_INV_ORDER

Minor Code

Explanation

31 Attempt to define a oneway operation with non-void result, out or inout parameters or user exceptions.
1 Dependency exists in IFR preventing destruction of this object
2 Attempt to destroy indestructible objects in IFR