6 * This file is used to generate the code in IFR_BaseC.{h,i,cpp}.
7 * The original file Interface.idl was split into four pieces, to
8 * keep the generated files to a manageable size and reduce build
9 * time. This IDL file contains the abstract base interfaces of
10 * the IFR as well as many of the non-interface data types used
11 * by all other IFR interfaces.
14 #ifndef _IFR_BASE_IDL_
15 #define _IFR_BASE_IDL_
17 #include "tao/orb.idl"
21 typeprefix CORBA "omg.org";
23 typedef string ScopedName;
68 readonly attribute DefinitionKind def_kind;
74 typedef string VersionSpec;
80 interface Contained : IRObject
82 // read/write interface
83 attribute RepositoryId id;
84 attribute Identifier name;
85 attribute VersionSpec version;
88 readonly attribute Container defined_in;
89 readonly attribute ScopedName absolute_name;
90 readonly attribute Repository containing_repository;
98 Description describe ();
102 in Container new_container,
103 in Identifier new_name,
104 in VersionSpec new_version);
108 interface ConstantDef;
115 interface InterfaceDef;
116 typedef sequence<InterfaceDef> InterfaceDefSeq;
118 interface ExceptionDef;
122 typedef sequence<ValueDef> ValueDefSeq;
124 interface ValueBoxDef;
126 interface AbstractInterfaceDef;
127 typedef sequence<AbstractInterfaceDef> AbstractInterfaceDefSeq;
129 interface LocalInterfaceDef;
130 typedef sequence<LocalInterfaceDef> LocalInterfaceDefSeq;
132 interface ExtInterfaceDef;
133 typedef sequence <ExtInterfaceDef> ExtInterfaceDefSeq;
135 interface ExtValueDef;
136 typedef sequence <ExtValueDef> ExtValueDefSeq;
138 interface ExtAbstractInterfaceDef;
139 typedef sequence <ExtAbstractInterfaceDef>
141 ExtAbstractInterfaceDefSeq;
142 interface ExtLocalInterfaceDef;
144 typedef sequence <ExtLocalInterfaceDef>
145 ExtLocalInterfaceDefSeq;
147 typedef sequence <Contained> ContainedSeq;
156 typedef sequence <StructMember> StructMemberSeq;
160 StructMemberSeq members;
164 typedef sequence <Initializer> InitializerSeq;
166 struct ExceptionDescription
170 RepositoryId defined_in;
175 typedef sequence <ExceptionDescription> ExcDescriptionSeq;
177 struct ExtInitializer
179 StructMemberSeq members;
180 ExcDescriptionSeq exceptions;
184 typedef sequence <ExtInitializer> ExtInitializerSeq;
194 typedef sequence <UnionMember> UnionMemberSeq;
195 typedef sequence <Identifier> EnumMemberSeq;
197 interface Container : IRObject
201 in ScopedName search_name);
202 ContainedSeq contents (
203 in DefinitionKind limit_type,
204 in boolean exclude_inherited);
205 ContainedSeq lookup_name (
206 in Identifier search_name,
207 in long levels_to_search,
208 in DefinitionKind limit_type,
209 in boolean exclude_inherited);
212 Contained contained_object;
217 typedef sequence<Description> DescriptionSeq;
219 DescriptionSeq describe_contents (
220 in DefinitionKind limit_type,
221 in boolean exclude_inherited,
222 in long max_returned_objs
227 ModuleDef create_module (
230 in VersionSpec version);
232 ConstantDef create_constant (
235 in VersionSpec version,
239 StructDef create_struct (
242 in VersionSpec version,
243 in StructMemberSeq members);
245 UnionDef create_union (
248 in VersionSpec version,
249 in IDLType discriminator_type,
250 in UnionMemberSeq members);
252 EnumDef create_enum (
255 in VersionSpec version,
256 in EnumMemberSeq members);
258 AliasDef create_alias (
261 in VersionSpec version,
262 in IDLType original_type);
264 InterfaceDef create_interface (
267 in VersionSpec version,
268 in InterfaceDefSeq base_interfaces);
270 ValueDef create_value (
273 in VersionSpec version,
274 in boolean is_custom,
275 in boolean is_abstract,
276 in ValueDef base_value,
277 in boolean is_truncatable,
278 in ValueDefSeq abstract_base_values,
279 in InterfaceDefSeq supported_interfaces,
280 in InitializerSeq initializers);
282 ValueBoxDef create_value_box(
285 in VersionSpec version,
286 in IDLType original_type_def);
288 ExceptionDef create_exception(
291 in VersionSpec version,
292 in StructMemberSeq members);
294 NativeDef create_native(
297 in VersionSpec version);
299 AbstractInterfaceDef create_abstract_interface (
302 in VersionSpec version,
303 in AbstractInterfaceDefSeq base_interfaces);
305 LocalInterfaceDef create_local_interface (
308 in VersionSpec version,
309 in InterfaceDefSeq base_interfaces);
311 ExtValueDef create_ext_value ( in RepositoryId id,
313 in VersionSpec version,
314 in boolean is_custom,
315 in boolean is_abstract,
316 in ValueDef base_value,
317 in boolean is_truncatable,
318 in ValueDefSeq abstract_base_values,
319 in InterfaceDefSeq supported_interfaces,
320 in ExtInitializerSeq initializers );
323 interface IDLType : IRObject
325 readonly attribute TypeCode type;
328 interface TypedefDef : Contained, IDLType
332 struct TypeDescription
336 RepositoryId defined_in;
342 #endif /* _IFR_BASE_IDL_ */