[Enterprise Extensions only]

InterfaceDef::describe

Overview The describe operation returns a structure containing information about an InterfaceDef Interface Repository object.
Original interface InterfaceDef Interface
Exceptions CORBA::SystemException


Intended Usage

The inherited describe operation returns a structure (CORBA::Contained::Description) that contains information about a CORBA::InterfaceDef Interface Repository object. The CORBA::Contained::Description structure has two fields: kind (CORBA::DefinitionKind data type), and value (CORBA::Any data type).

The kind of definition described by the returned structure is provided by invoking the kind field, and the value field is a CORBA::Any containing the description specific to the kind of object described. When the describe operation is invoked on an interface (CORBA::InterfaceDef) object, the kind field is equal to CORBA::dk_Interface and the value field contains the CORBA::InterfaceDescription structure.

IDL Syntax

  struct InterfaceDescription
     {
        Identifier name;
        RepositoryId id;
        RepositoryId defined_in;
        VersionSpec version;
        RepositoryIdSeq base_interfaces;
     };
  struct Description
     {
        DefinitionKind kind;
        any value;
     };
  Description describe ();

Input parameters

None.

Return values

Description *
The returned value is a pointer to a CORBA::Contained::Description structure. The memory is owned by the caller and can be removed by invoking delete.

Example

  // C++
     // assume that 'this_interface' has already been initialized
     CORBA::InterfaceDef * this_interface;
 
     // retrieve a description of the interface
     CORBA::Contained::Description * returned_description; 
     returned_description = this_interface-> describe ();
 
     // retrieve the interface description from the returned description 
     // structure
     CORBA::InterfaceDescription * interface_description;
     interface_description = (CORBA::InterfaceDescription *) 
        returned_description value.value ();