// -*- IDL -*- /** * @file IFR_Base.pidl * * This file is used to generate the code in IFR_BaseC.{h,i,cpp}. * The original file Interface.idl was split into four pieces, to * keep the generated files to a manageable size and reduce build * time. This IDL file contains the abstract base interfaces of * the IFR as well as many of the non-interface data types used * by all other IFR interfaces. */ #ifndef _IFR_BASE_IDL_ #define _IFR_BASE_IDL_ #include "tao/orb.idl" module CORBA { typeprefix CORBA "omg.org"; typedef string ScopedName; enum DefinitionKind { dk_none, dk_all, dk_Attribute, dk_Constant, dk_Exception, dk_Interface, dk_Module, dk_Operation, dk_Typedef, dk_Alias, dk_Struct, dk_Union, dk_Enum, dk_Primitive, dk_String, dk_Sequence, dk_Array, dk_Repository, dk_Wstring, dk_Fixed, dk_Value, dk_ValueBox, dk_ValueMember, dk_Native, dk_AbstractInterface, dk_LocalInterface, dk_Component, dk_Home, dk_Factory, dk_Finder, dk_Emits, dk_Publishes, dk_Consumes, dk_Provides, dk_Uses, dk_Event }; interface IRObject { // read interface readonly attribute DefinitionKind def_kind; // write interface void destroy (); }; typedef string VersionSpec; interface Contained; interface Repository; interface Container; interface Contained : IRObject { // read/write interface attribute RepositoryId id; attribute Identifier name; attribute VersionSpec version; // read interface readonly attribute Container defined_in; readonly attribute ScopedName absolute_name; readonly attribute Repository containing_repository; struct Description { DefinitionKind kind; any value; }; Description describe (); // write interface void move ( in Container new_container, in Identifier new_name, in VersionSpec new_version ); }; interface ModuleDef; interface ConstantDef; interface IDLType; interface StructDef; interface UnionDef; interface EnumDef; interface AliasDef; interface InterfaceDef; typedef sequence InterfaceDefSeq; interface ExceptionDef; interface NativeDef; interface ValueDef; typedef sequence ValueDefSeq; interface ValueBoxDef; interface AbstractInterfaceDef; typedef sequence AbstractInterfaceDefSeq; interface LocalInterfaceDef; typedef sequence LocalInterfaceDefSeq; interface ExtInterfaceDef; typedef sequence ExtInterfaceDefSeq; interface ExtValueDef; typedef sequence ExtValueDefSeq; interface ExtAbstractInterfaceDef; typedef sequence ExtAbstractInterfaceDefSeq; interface ExtLocalInterfaceDef; typedef sequence ExtLocalInterfaceDefSeq; typedef sequence ContainedSeq; struct StructMember { Identifier name; TypeCode type; IDLType type_def; }; typedef sequence StructMemberSeq; struct Initializer { StructMemberSeq members; Identifier name; }; typedef sequence InitializerSeq; struct ExceptionDescription { Identifier name; RepositoryId id; RepositoryId defined_in; VersionSpec version; TypeCode type; }; typedef sequence ExcDescriptionSeq; struct ExtInitializer { StructMemberSeq members; ExcDescriptionSeq exceptions; Identifier name; }; typedef sequence ExtInitializerSeq; struct UnionMember { Identifier name; any label; TypeCode type; IDLType type_def; }; typedef sequence UnionMemberSeq; typedef sequence EnumMemberSeq; 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 StructMemberSeq members ); 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 ); ValueDef create_value ( in RepositoryId id, in Identifier name, in VersionSpec version, in boolean is_custom, in boolean is_abstract, in ValueDef base_value, in boolean is_truncatable, in ValueDefSeq abstract_base_values, in InterfaceDefSeq supported_interfaces, in InitializerSeq initializers ); ValueBoxDef create_value_box( in RepositoryId id, in Identifier name, in VersionSpec version, in IDLType original_type_def ); ExceptionDef create_exception( in RepositoryId id, in Identifier name, in VersionSpec version, in StructMemberSeq members ); NativeDef create_native( in RepositoryId id, in Identifier name, in VersionSpec version ); AbstractInterfaceDef create_abstract_interface ( in RepositoryId id, in Identifier name, in VersionSpec version, in AbstractInterfaceDefSeq base_interfaces ); LocalInterfaceDef create_local_interface ( in RepositoryId id, in Identifier name, in VersionSpec version, in InterfaceDefSeq base_interfaces ); ExtValueDef create_ext_value ( in RepositoryId id, in Identifier name, in VersionSpec version, in boolean is_custom, in boolean is_abstract, in ValueDef base_value, in boolean is_truncatable, in ValueDefSeq abstract_base_values, in InterfaceDefSeq supported_interfaces, in ExtInitializerSeq initializers ); }; interface IDLType : IRObject { readonly attribute TypeCode type; }; interface TypedefDef : Contained, IDLType { }; struct TypeDescription { Identifier name; RepositoryId id; RepositoryId defined_in; VersionSpec version; TypeCode type; }; }; #endif /* _IFR_BASE_IDL_ */