Previous Table of Contents Next


10.5.26 AbstractInterfaceDef


   An AbstractInterfaceDef object represents a CORBA 2.3 abstract interface definition. It can contain constants, typedefs, exceptions, operations, and attributes. Its base interfaces can only contain AbstractInterfaceDefs.

   module CORBA { interfaceAbstractInterfaceDef; typedef sequence <AbstractInterfaceDef> AbstractInterfaceDefSeq;

   interface AbstractInterfaceDef : InterfaceDef { };

   };

   10.5.26.1 Read Interface

   The inherited base_interfaces attribute returns a list of abstract interfaces from which this abstract interface inherits.

   Note – base_interfaces is of type InterfaceDefSeq, but since AbstractInterfaceDef is derived from InterfaceDef, a list of AbstractInterfaceDefs can legitimately be returned in an InterfaceDefSeq.

   The inherited is_a operation returns TRUE if the interface on which it is invoked either is identical to or inherits, directly or indirectly, from the abstract interface identified by its interface_id parameter, or if the value of interface_id is IDL:omg.org/CORBA/AbstractBase:1.0. Otherwise it returns FALSE.

   The inherited describe_interface operation returns a FullInterfaceDescription describing the abstract interface, including its operations and attributes.

   The inherited describe operation for an AbstractInterfaceDef returns an InterfaceDescription.

   The inherited contents operation returns the list of constants, typedefs, and exceptions defined in this AbstractInterfaceDef and the list of attributes and operations either defined or inherited in this AbstractInterfaceDef. If the exclude_inherited parameter is set to TRUE, only attributes and operations defined within this abstract interface are returned. If the exclude_inherited parameter is set to FALSE, all attributes and operations are returned.

   10.5.26.2 Write Interface

   Setting the inherited base_interfaces attribute causes a BAD_PARAM exception with standard minor code 5 to be raised if the name attribute of any object contained by this AbstractInterfaceDef conflicts with the name attribute of any object contained by any of the specified base AbstractInterfaceDefs. If any of the InterfaceDefs in base_interface are not AbstractInterfaceDefs then a BAD_PARAM exception with standard minor code 11 is raised.

   The inherited create_attribute operation returns a new AttributeDef contained in the AbstractInterfaceDef on which it is invoked. The id, name, version, type_def, and mode attributes are set as specified. The type attribute is also set. The defined_in attribute is initialized to identify the containing AbstractInterfaceDef. A BAD_PARAM exception with standard minor code 2 is raised if an object with the specified id already exists in the Repository. BAD_PARAM exception with standard minor code 3 is raised if an object with the same name already exists in this AbstractInterfaceDef.

   The inherited create_operation operation returns a new OperationDef contained in the AbstractInterfaceDef on which it is invoked. The id, name, version, result_def, mode, params, exceptions, and contexts attributes are set as specified. The result attribute is also set. The defined_in attribute is initialized to identify the containing AbstractInterfaceDef. A BAD_PARAM exception with standard minor code 2 is raised if an object with the specified id already exists in the Repository. BAD_PARAM exception with standard minor code 3 is raised if an object with the same name already exists in this AbstractInterfaceDef.

   10.5.27 ExtAbstractInterfaceDef

   An ExtAbstractInterfaceDef object represents an abstract interface definition. It can contain constants, typedefs, exceptions, operations, and attributes with exceptions. Its base interfaces can only contain ExtAbstractInterfaceDefs.

   module CORBA {

   interface ExtAbstaractInterfaceDef : AbstractInterfaceDef, InterfaceAttrExtension { }; };

   10.5.27.1 Read Interface

   All operations and attributes inherited from AbstractInterfaceDef behave the same as for AbstaractInterfaceDef. In particular, the def_kind attribute has the value dk_AbstractInterface, exactly as in AbstaractInterfaceDef.

   The inherited describe_ext_interface operation returns the ExtFullInterfaceDescription structure which contains information about attributes with exceptions, in addition to the information found in FullInterfaceDescription.

   10.5.27.2 Write Interface

   All operations and attributes inherited from AbstaractInterfaceDef behave the same as for AbstractInterfaceDef.

   The inherited create_ext_attribute operation returns a new ExtAttributeDef contained in the ExtAbstractInterfaceDef on which it is invoked. The id, name, version, type_def, mode, get_exceptions and set_exceptions attributes are set as specified. The type attribute is also set. The defined_in attribute is initialized to identify the containing ExtAbstractInterfaceDef. A BAD_PARAM exception with standard minor code 2 is raised if an object with the specified id already exists in the Repository. BAD_PARAM exception with standard minor code 3 is raised if an object with the same name already exists in this ExtAbstractInterfaceDef.