A ModuleDef represents an IDL module declaration that can contain constants, typedefs, exceptions, interfaces and other objects that can be defined in IDL modules.
The inherited describe operation for a ModuleDef object returns a ModuleDescription.
module CORBA {
interface ModuleDef : Container, Contained {
};
struct ModuleDescription {
Identifier <name>;
RepositoryId <id>;
RepositoryId defined_in;
VersionSpec <version>;
};
};
The describe( ) operation is inherited from Contained. It returns a structure of type Contained::Description and provides the <name> and <value> of the IDL module:
struct Description {
Identifier <name>;
any <value>;
};
The <value> member is an Any whose TypeCode is a ModuleDescription and whose value is a pointer to a structure of type:
struct ModuleDescription {
Identifier <name>;
RepositoryId <id>;
RepositoryId defined_in;
};
The operation describe_contents( ) is inherited from Container. It is a combination of the functions Container::contents( ) and Contained::describe( ) and can be used to iterate through the items declared directly in the module.
It returns a sequence of Container::Description structures. The returned structures each have the fields described in Table 1.
| Field | Description |
|---|---|
<contained_object> |
An object reference of type Contained to one of the objects contained within the module or interface. |
<name> |
The name of the top-level contained object (such as, InterfaceDescription or ConstantDescription). |
<value> |
A description of type any of this contained object with a TypeCode and a value. The TypeCode of the any is the same as the type of the top-level object.
The value of the any is a pointer to a structure of the relevant type such as OperationDescription or ConstantDescription. |