[Enterprise Extensions only]

CORBA module: Container Interface

Overview The Container interface is used to form a containment hierarchy in the Interface Repository.
File name somir.idl
Local-only True
Ancestor interfaces IRObject Interface
Exceptions CORBA::SystemException
Supported operations Container::contents
Container::create_alias
Container::create_constant
Container::create_enum
Container::create_exception
Container::create_interface
Container::create_module
Container::create_struct
Container::create_union
Container::describe_contents
Container::lookup
Container::lookup_name


Intended Usage

A Container can contain any number of objects derived from the Contained interface. All Containers, except for Repository, are also derived from Contained. The Container interface is not itself instantiated as a means of accessing the Interface Repository. As an ancestor to certain Interface Repository objects, it provides a specific list of operations as noted below. Those Interface Repository objects that inherit (directly or indirectly) the operations defined in Container include: Repository, ModuleDef, and InterfaceDef.

IDL syntax

module CORBA
  {
     typedef sequence  ContainedSeq;
     Interface Container:IRObject
        {
           //read interface
           Contained lookup (in ScopedName search_name);
           ContainedSeq contents (in DefinitionKind limit_type
                                  in boolean exclude_inherited);
           ContainedSeq lookup_name (in Identifier search_name,
                                     in long levels_to_search,
                                     in DefinitionKind limit_type,
                                     in boolean exclude_inherited);
           struct Description
              {
                 Contained contained_object;
                 DefinitionKind kind;
                 any value;
              };
           typedef sequence DescriptionSeq;
           DescriptionSeq describe_contents (in DefinitionKind limit_type,
                                             in boolean exclude_inherited,
                                             in long max_returned_objs);
           //write interface
           ModuleDef create_module (in RepositoryId id,
                                    in Identifier name,
                                    in VersionSpec version);
           ConstantDef create_constant (in RepositoryId Id,
                                        in Identifier name,
                                        in VersionSpec version,
                                        in IDLType type,
                                        in any value);
           StructDef create_struct (in RepositoryId id,
                                    in Identifier name,
                                    in VersionSpec version,
                                    in StructMember Seqmembers);
           UnionDef create_union (in RepositoryId id,
                                  in Identifier name,
                                  in VersionSpec version,
                                  in IDLType discriminator_type,
                                  in UnionMemberSeq members);
           EnumDef create_enum (in RepositoryId id,
                                in Identifier name,
                                in VersionSpec version,
                                in EnumMemberSeq members);
           AliasDef create_alias (in Repositoryid id,
                                  in Identifier name,
                                  in VersionSpec version,
                                  in IDLType original_type);
           InterfaceDef create_interface (in RepositoryId id,
                                          in Identifier name,
                                          in VersionSpec version,
                                          in InterfaceDefSeq base_interfaces);
        };
  };