Use =default for skeleton copy constructor
[ACE_TAO.git] / TAO / tao / IFR_Client / IFR_Extended.pidl
blob193b7653961fbe2694a00f6612ba1a4c48febedc
1 // -*- IDL -*-
3 /**
4  * @file IFR_Extended.pidl
5  *
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.
11  */
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"
20 module CORBA
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
37   {
38     attribute unsigned short digits;
39     attribute short scale;
40   };
42   struct ValueMember
43   {
44     Identifier name;
45     RepositoryId id;
46     RepositoryId defined_in;
47     VersionSpec version;
48     TypeCode type;
49     IDLType type_def;
50     Visibility access;
51   };
53   typedef sequence <ValueMember> ValueMemberSeq;
55   interface ValueMemberDef : Contained
56   {
57     readonly attribute TypeCode type;
58     attribute IDLType type_def;
59     attribute Visibility access;
60   };
62   interface ValueDef : Container, Contained, IDLType
63   {
64     // read/write interface
65     attribute InterfaceDefSeq supported_interfaces;
66     attribute InitializerSeq initializers;
67     attribute ValueDef base_value;
68     attribute ValueDefSeq abstract_base_values;
69     // read interface
70     attribute boolean is_abstract;
71     attribute boolean is_custom;
72     attribute boolean is_truncatable;
73     boolean is_a (
74         in RepositoryId id
75       );
77     struct FullValueDescription
78     {
79       Identifier name;
80       RepositoryId id;
81       boolean is_abstract;
82       boolean is_custom;
83       RepositoryId defined_in;
84       VersionSpec version;
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;
93       TypeCode type;
94     };
96     FullValueDescription describe_value ();
98     ValueMemberDef create_value_member  (
99         in RepositoryId id,
100         in Identifier name,
101         in VersionSpec version,
102         in IDLType type,
103         in Visibility access
104       );
105     AttributeDef create_attribute (
106         in RepositoryId id,
107         in Identifier name,
108         in VersionSpec version,
109         in IDLType type,
110         in AttributeMode mode
111       );
112     OperationDef create_operation (
113         in RepositoryId id,
114         in Identifier name,
115         in VersionSpec version,
116         in IDLType result,
117         in OperationMode mode,
118         in ParDescriptionSeq params,
119         in ExceptionDefSeq exceptions,
120         in ContextIdSeq contexts
121       );
122   };
124   struct ValueDescription
125   {
126     Identifier name;
127     RepositoryId id;
128     boolean is_abstract;
129     boolean is_custom;
130     RepositoryId defined_in;
131     VersionSpec version;
132     RepositoryIdSeq supported_interfaces;
133     RepositoryIdSeq abstract_base_values;
134     boolean is_truncatable;
135     RepositoryId base_value;
136   };
138   interface ExtValueDef : ValueDef
139   {
140     // read/write interface
141     attribute ExtInitializerSeq ext_initializers;
143     // read interface
144     struct ExtFullValueDescription
145     {
146       Identifier name;
147       RepositoryId id;
148       boolean is_abstract;
149       boolean is_custom;
150       RepositoryId defined_in;
151       VersionSpec version;
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;
160       TypeCode type;
161     };
163     ExtFullValueDescription describe_ext_value ();
165     // write interface
166     ExtAttributeDef create_ext_attribute ( in RepositoryId id,
167                                            in Identifier name,
168                                            in VersionSpec version,
169                                            in IDLType type,
170                                            in AttributeMode mode,
171                                            in ExceptionDefSeq get_exceptions,
172                                            in ExceptionDefSeq set_exceptions
173       );
174   };
176   interface ValueBoxDef : TypedefDef
177   {
178     attribute IDLType original_type_def;
179   };
182 #endif /* _IFR_EXTENDED_IDL_ */