Contained
describes Interface Repository objects that can be contained in other objects. It is a base interface for the following interfaces:
ModuleDef InterfaceDef ConstantDef TypeDef ExceptionDef AttributeDef OperationDef ParameterDef
// IDL typedef string Identifier; typedef string RepositoryId; typedef sequence<Container> ContainerSeq; interface Contained { attribute Identifier name; attribute RepositoryId id; attribute RepositoryId defined_in; ContainerSeq within(); struct Description { Identifier name; any value; }; Description describe(); };
Container
attribute RepositoryId defined_in;
defined_in
attribute is nil for a definition given at the file level of an IDL file.
Description describe();
Contained::Description
structure:
// IDL struct Description { Identifier name; any value; };The member
value
is different for each Interface Repository type. It can be one of the following types:
ModuleDescription InterfaceDescription AttributeDescription OperationDescription ParameterDescription TypeDescription ExceptionDescriptionThe
name
of a Description
is the string corresponding to each of these. For example if describe()
is called on an operation, then Description::name
will be "OperationDescription
".
Container::describe_contents()
attribute RepositoryId id;
Contained::name
attribute Identifier name;
name
which is unique within its scope. For example, in the following definition:
// IDL interface Example { void op(); };the names are
Example
and op
. A name is not necessarily unique within an Interface Repository.
Contained::id
ContainerSeq within();