10.4.20 InterfaceDef

An InterfaceDef object (shown below) represents an interface definition. It can contain constants, typedefs, exceptions, operations, and attributes.

module CORBA {
   interface InterfaceDef;
       typedef sequence <InterfaceDef> InterfaceDefSeq;
       typedef sequence <RepositoryId> RepositoryIdSeq;
       typedef sequence <OperationDescription> OpDescriptionSeq;
       typedef sequence <AttributeDescription> AttrDescriptionSeq;

       interface InterfaceDef : Container, Contained, IDLType {
                 readonly attribute InterfaceDefSeq     base_interfaces;
                 readonly attribute boolean             is_abstract;

       boolean is_a (in RepositoryId interface_id);
     struct FullInterfaceDescription {
         Identifier             name;
         RepositoryId           id;
         RepositoryId           defined_in;
         VersionSpec            version;
         OpDescriptionSeq       operations;
         AttrDescriptionSeq     attributes;
         RepositoryIdSeq        base_interfaces;
         TypeCode               type;
         boolean                is_abstract;
    };

     FullInterfaceDescription describe_interface();
};
struct InterfaceDescription {
        Identifier             name;
        RepositoryId           id;
        RepositoryId           defined_in;
        VersionSpec            version;
        RepositoryIdSeq        base_interfaces;
        boolean                is_abstract;
    };
};

The base_interfaces attribute lists all the interfaces from which this interface inherits.

The is_abstract attribute is TRUE if the interface is an abstract interface type.

The is_a operation returns TRUE if the interface on which it is invoked either is identical to or inherits, directly or indirectly, from the interface identified by its interface_id parameter. Otherwise, it returns FALSE.

The describe_interface operation returns a FullInterfaceDescription describing the interface, including its operations and attributes. The operations and attributes fields of the FullInterfaceDescription structure include descriptions of all of the operations and attributes in the transitive closure of the inheritance graph of the interface being described.

The inherited describe operation for an InterfaceDef returns an InterfaceDescription.

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