6 * This file is used to generate the code in IFR_BasicC.{h,inl,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 concrete base interfaces of
10 * the IFR, except for fixed types, valuetypes and CORBA components.
13 #ifndef _IFR_BASIC_IDL_
14 #define _IFR_BASIC_IDL_
16 #include "tao/IFR_Client/IFR_Base.pidl"
17 #include "tao/ParameterMode.pidl"
21 typeprefix CORBA "omg.org";
23 interface PrimitiveDef;
25 interface SequenceDef;
56 interface Repository : Container
60 in RepositoryId search_id
62 TypeCode get_canonical_typecode (
65 PrimitiveDef get_primitive (
69 StringDef create_string (
70 in unsigned long bound
72 WstringDef create_wstring (
73 in unsigned long bound
75 SequenceDef create_sequence (
76 in unsigned long bound,
77 in IDLType element_type
79 ArrayDef create_array (
80 in unsigned long length,
81 in IDLType element_type
83 FixedDef create_fixed (
84 in unsigned short digits,
89 interface ModuleDef : Container, Contained
93 struct ModuleDescription
97 RepositoryId defined_in;
101 interface ConstantDef : Contained
103 readonly attribute TypeCode type;
104 attribute IDLType type_def;
108 struct ConstantDescription
112 RepositoryId defined_in;
118 interface StructDef : TypedefDef, Container
120 attribute StructMemberSeq members;
123 interface UnionDef : TypedefDef, Container
125 readonly attribute TypeCode discriminator_type;
126 attribute IDLType discriminator_type_def;
127 attribute UnionMemberSeq members;
130 interface EnumDef : TypedefDef
132 attribute EnumMemberSeq members;
135 interface AliasDef : TypedefDef
137 attribute IDLType original_type_def;
140 interface NativeDef : TypedefDef
144 interface PrimitiveDef: IDLType
146 readonly attribute PrimitiveKind kind;
149 interface StringDef : IDLType
151 attribute unsigned long bound;
154 interface WstringDef : IDLType
156 attribute unsigned long bound;
159 interface SequenceDef : IDLType
161 attribute unsigned long bound;
162 readonly attribute TypeCode element_type;
163 attribute IDLType element_type_def;
166 interface ArrayDef : IDLType
168 attribute unsigned long length;
169 readonly attribute TypeCode element_type;
170 attribute IDLType element_type_def;
173 interface ExceptionDef : Contained, Container
175 readonly attribute TypeCode type;
176 attribute StructMemberSeq members;
179 typedef sequence <ExceptionDef> ExceptionDefSeq;
187 interface AttributeDef : Contained
189 readonly attribute TypeCode type;
190 attribute IDLType type_def;
191 attribute AttributeMode mode;
194 struct AttributeDescription
198 RepositoryId defined_in;
204 struct ExtAttributeDescription
208 RepositoryId defined_in;
212 ExcDescriptionSeq get_exceptions;
213 ExcDescriptionSeq put_exceptions;
216 interface ExtAttributeDef : AttributeDef
218 // read/write interface
219 attribute ExcDescriptionSeq get_exceptions;
220 attribute ExcDescriptionSeq set_exceptions;
222 ExtAttributeDescription describe_attribute ();
231 // Already defined in corbafwd.h, included from orb.idl
240 struct ParameterDescription
248 typedef sequence <ParameterDescription> ParDescriptionSeq;
249 typedef Identifier ContextIdentifier;
250 typedef sequence <ContextIdentifier> ContextIdSeq;
252 interface OperationDef : Contained
254 readonly attribute TypeCode result;
255 attribute IDLType result_def;
256 attribute ParDescriptionSeq params;
257 attribute OperationMode mode;
258 attribute ContextIdSeq contexts;
259 attribute ExceptionDefSeq exceptions;
262 struct OperationDescription
266 RepositoryId defined_in;
270 ContextIdSeq contexts;
271 ParDescriptionSeq parameters;
272 ExcDescriptionSeq exceptions;
275 typedef sequence <RepositoryId> RepositoryIdSeq;
276 typedef sequence <OperationDescription> OpDescriptionSeq;
277 typedef sequence <AttributeDescription> AttrDescriptionSeq;
278 typedef sequence <ExtAttributeDescription> ExtAttrDescriptionSeq;
280 interface InterfaceDef : Container, Contained, IDLType
282 // read/write interface
283 attribute InterfaceDefSeq base_interfaces;
286 in RepositoryId interface_id
289 struct FullInterfaceDescription
293 RepositoryId defined_in;
295 OpDescriptionSeq operations;
296 AttrDescriptionSeq attributes;
297 RepositoryIdSeq base_interfaces;
301 FullInterfaceDescription describe_interface ();
304 AttributeDef create_attribute ( in RepositoryId id,
306 in VersionSpec version,
308 in AttributeMode mode );
310 OperationDef create_operation ( in RepositoryId id,
312 in VersionSpec version,
314 in OperationMode mode,
315 in ParDescriptionSeq params,
316 in ExceptionDefSeq exceptions,
317 in ContextIdSeq contexts );
320 struct InterfaceDescription
324 RepositoryId defined_in;
326 RepositoryIdSeq base_interfaces;
329 interface InterfaceAttrExtension
332 struct ExtFullInterfaceDescription
336 RepositoryId defined_in;
338 OpDescriptionSeq operations;
339 ExtAttrDescriptionSeq attributes;
340 RepositoryIdSeq base_interfaces;
344 ExtFullInterfaceDescription describe_ext_interface ();
347 ExtAttributeDef create_ext_attribute ( in RepositoryId id,
349 in VersionSpec version,
351 in AttributeMode mode,
352 in ExceptionDefSeq get_exceptions,
353 in ExceptionDefSeq set_exceptions );
356 interface ExtInterfaceDef : InterfaceDef, InterfaceAttrExtension
360 interface AbstractInterfaceDef : InterfaceDef
364 interface ExtAbstractInterfaceDef : AbstractInterfaceDef,
365 InterfaceAttrExtension
369 interface LocalInterfaceDef : InterfaceDef
373 interface ExtLocalInterfaceDef : LocalInterfaceDef,
374 InterfaceAttrExtension
379 #endif /* _IFR_BASIC_IDL_ */