4 * @file IFR_Extended.pidl
6 * This file is used to generate the code in IFR_ExtendedC.{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 all the interfaces and other data
10 * types related to fixed types and valuetypes.
13 #ifndef _IFR_EXTENDED_IDL_
14 #define _IFR_EXTENDED_IDL_
16 #include "tao/IFR_Client/IFR_Basic.pidl"
17 #include "tao/AnyTypeCode/Visibility.pidl"
18 #include "tao/AnyTypeCode/ValueModifier.pidl"
22 typeprefix CORBA "omg.org";
24 // Already defined in other files, included above
26 typedef short ValueModifier;
27 const ValueModifier VM_NONE = 0;
28 const ValueModifier VM_CUSTOM = 1;
29 const ValueModifier VM_ABSTRACT = 2;
30 const ValueModifier VM_TRUNCATABLE = 3;
32 typedef short Visibility;
33 const Visibility PRIVATE_MEMBER = 0;
34 const Visibility PUBLIC_MEMBER = 1;
36 interface FixedDef : IDLType
38 attribute unsigned short digits;
39 attribute short scale;
46 RepositoryId defined_in;
53 typedef sequence <ValueMember> ValueMemberSeq;
55 interface ValueMemberDef : Contained
57 readonly attribute TypeCode type;
58 attribute IDLType type_def;
59 attribute Visibility access;
62 interface ValueDef : Container, Contained, IDLType
64 // read/write interface
65 attribute InterfaceDefSeq supported_interfaces;
66 attribute InitializerSeq initializers;
67 attribute ValueDef base_value;
68 attribute ValueDefSeq abstract_base_values;
70 attribute boolean is_abstract;
71 attribute boolean is_custom;
72 attribute boolean is_truncatable;
77 struct FullValueDescription
83 RepositoryId defined_in;
85 OpDescriptionSeq operations;
86 AttrDescriptionSeq attributes;
87 ValueMemberSeq members;
88 InitializerSeq initializers;
89 RepositoryIdSeq supported_interfaces;
90 RepositoryIdSeq abstract_base_values;
91 boolean is_truncatable;
92 RepositoryId base_value;
96 FullValueDescription describe_value ();
98 ValueMemberDef create_value_member (
101 in VersionSpec version,
105 AttributeDef create_attribute (
108 in VersionSpec version,
110 in AttributeMode mode
112 OperationDef create_operation (
115 in VersionSpec version,
117 in OperationMode mode,
118 in ParDescriptionSeq params,
119 in ExceptionDefSeq exceptions,
120 in ContextIdSeq contexts
124 struct ValueDescription
130 RepositoryId defined_in;
132 RepositoryIdSeq supported_interfaces;
133 RepositoryIdSeq abstract_base_values;
134 boolean is_truncatable;
135 RepositoryId base_value;
138 interface ExtValueDef : ValueDef
140 // read/write interface
141 attribute ExtInitializerSeq ext_initializers;
144 struct ExtFullValueDescription
150 RepositoryId defined_in;
152 OpDescriptionSeq operations;
153 ExtAttrDescriptionSeq attributes;
154 ValueMemberSeq members;
155 ExtInitializerSeq initializers;
156 RepositoryIdSeq supported_interfaces;
157 RepositoryIdSeq abstract_base_values;
158 boolean is_truncatable;
159 RepositoryId base_value;
163 ExtFullValueDescription describe_ext_value ();
166 ExtAttributeDef create_ext_attribute ( in RepositoryId id,
168 in VersionSpec version,
170 in AttributeMode mode,
171 in ExceptionDefSeq get_exceptions,
172 in ExceptionDefSeq set_exceptions
176 interface ValueBoxDef : TypedefDef
178 attribute IDLType original_type_def;
182 #endif /* _IFR_EXTENDED_IDL_ */