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.
Parent topic: Interface Repository Interfaces