[Enterprise Extensions only]

ConstantDef::describe

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


Intended Usage

The inherited describe operation returns a structure (CORBA::Contained::Description) that contains information about a CORBA::ConstantDef 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 constant (CORBA::ConstantDef) object, the kind field is equal to CORBA::dk_Constant and the value field contains the CORBA::ConstantDescription structure.

IDL Syntax

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

Input parameters

None.

Return value

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

Example

  // C++
     // assume that 'this_constant' has already been initialized
     CORBA::ConstantDef * this_constant;
 
     // retrieve a description of the constant
     CORBA::ConstantDef::Description * returned_description;
     returned_description = this_constant-> describe ();
 
     // retrieve the constant description from the returned description 
     // structure
     CORBA::ConstantDescription * constant_description;
     constant_description = (CORBA::ConstantDescription *) 
       returned_description-> value.value ();