[Enterprise Extensions only]

TypedefDef::describe

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


Intended Usage

The inherited describe operation returns a structure (CORBA::Contained::Description) that contains information about a CORBA::TypedefDef 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 using the kind field, and the value field is a CORBA::Any that contains the description that is specific to the kind of object described. When the describe operation is invoked on a type definition (CORBA::TypedefDef) object, the kind field is representative of the specific type of CORBA::TypedefDef (either CORBA::dk_Union, CORBA::dk_Struct, CORBA::dk_Alias, or CORBA::dk_Enum). The value field contains the CORBA::TypeDescription structure.

IDL Syntax

  struct TypeDescription
     {
        Identifier name;
        RepositoryId id;
        RepositoryId defined_in;
        VersionSpec version;
        TypeCode type;
     };
     struct Description
     {
        DefinitionKind kind;
        any value;
     };
     Description describe ();

Input parameters

None.

Return values

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

Example

  // C++
     // assume that 'this_union' has already been initialized
     CORBA::UnionDef * this_union;
 
     // retrieve a description of the union
     CORBA::UnionDef::Description * returned_description;
     returned_description = this_union-> describe ();
 
     // retrieve the type definition description from the returned 
     // description structure
     CORBA::TypeDescription * type_description;
     type_description = (CORBA::TypeDescription *) returned_description
                         value.value ();