00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _DYNAMIC_ANY_IDL_
00022 #define _DYNAMIC_ANY_IDL_
00023
00024 #include "tao/Typecode_types.pidl"
00025 #include "tao/BooleanSeq.pidl"
00026 #include "tao/CharSeq.pidl"
00027 #include "tao/DoubleSeq.pidl"
00028 #include "tao/FloatSeq.pidl"
00029 #include "tao/LongDoubleSeq.pidl"
00030 #include "tao/LongLongSeq.pidl"
00031 #include "tao/LongSeq.pidl"
00032 #include "tao/OctetSeq.pidl"
00033 #include "tao/BooleanSeq.pidl"
00034 #include "tao/ShortSeq.pidl"
00035 #include "tao/ULongLongSeq.pidl"
00036 #include "tao/ULongSeq.pidl"
00037 #include "tao/UShortSeq.pidl"
00038 #include "tao/WCharSeq.pidl"
00039
00040 module DynamicAny
00041 {
00042 typeprefix DynamicAny "omg.org";
00043
00044 local interface DynAny
00045 {
00046 exception InvalidValue {};
00047 exception TypeMismatch {};
00048
00049 CORBA::TypeCode type ();
00050
00051 void assign (in DynAny dyn_any)
00052 raises (TypeMismatch);
00053
00054 void from_any (in any value)
00055 raises (TypeMismatch, InvalidValue);
00056
00057 any to_any ();
00058
00059 boolean equal (in DynAny dyn_any);
00060
00061 void destroy ();
00062
00063 DynAny copy ();
00064
00065 void insert_boolean (in boolean value)
00066 raises (TypeMismatch, InvalidValue);
00067 void insert_octet (in octet value)
00068 raises (TypeMismatch, InvalidValue);
00069 void insert_char (in char value)
00070 raises (TypeMismatch, InvalidValue);
00071 void insert_short (in short value)
00072 raises (TypeMismatch, InvalidValue);
00073 void insert_ushort (in unsigned short value)
00074 raises (TypeMismatch, InvalidValue);
00075 void insert_long (in long value)
00076 raises (TypeMismatch, InvalidValue);
00077 void insert_ulong (in unsigned long value)
00078 raises (TypeMismatch, InvalidValue);
00079 void insert_float (in float value)
00080 raises (TypeMismatch, InvalidValue);
00081 void insert_double (in double value)
00082 raises (TypeMismatch, InvalidValue);
00083 void insert_string (in string value)
00084 raises (TypeMismatch, InvalidValue);
00085 void insert_reference (in Object value)
00086 raises (TypeMismatch, InvalidValue);
00087 void insert_typecode (in CORBA::TypeCode value)
00088 raises (TypeMismatch, InvalidValue);
00089 void insert_longlong (in long long value)
00090 raises (TypeMismatch, InvalidValue);
00091 void insert_ulonglong (in unsigned long long value)
00092 raises (TypeMismatch, InvalidValue);
00093 void insert_longdouble (in long double value)
00094 raises (TypeMismatch, InvalidValue);
00095 void insert_wchar (in wchar value)
00096 raises (TypeMismatch, InvalidValue);
00097 void insert_wstring (in wstring value)
00098 raises (TypeMismatch, InvalidValue);
00099 void insert_any (in any value)
00100 raises (TypeMismatch, InvalidValue);
00101 void insert_dyn_any (in DynAny value)
00102 raises (TypeMismatch, InvalidValue);
00103 void insert_val (in ValueBase value)
00104 raises (TypeMismatch, InvalidValue);
00105
00106 boolean get_boolean ()
00107 raises (TypeMismatch, InvalidValue);
00108 octet get_octet ()
00109 raises (TypeMismatch, InvalidValue);
00110 char get_char ()
00111 raises (TypeMismatch, InvalidValue);
00112 short get_short ()
00113 raises (TypeMismatch, InvalidValue);
00114 unsigned short get_ushort ()
00115 raises (TypeMismatch, InvalidValue);
00116 long get_long ()
00117 raises (TypeMismatch, InvalidValue);
00118 unsigned long get_ulong ()
00119 raises (TypeMismatch, InvalidValue);
00120 float get_float ()
00121 raises (TypeMismatch, InvalidValue);
00122 double get_double ()
00123 raises (TypeMismatch, InvalidValue);
00124 string get_string ()
00125 raises (TypeMismatch, InvalidValue);
00126 Object get_reference ()
00127 raises (TypeMismatch, InvalidValue);
00128 CORBA::TypeCode get_typecode ()
00129 raises (TypeMismatch, InvalidValue);
00130 long long get_longlong ()
00131 raises (TypeMismatch, InvalidValue);
00132 unsigned long long get_ulonglong ()
00133 raises (TypeMismatch, InvalidValue);
00134 long double get_longdouble ()
00135 raises (TypeMismatch, InvalidValue);
00136 wchar get_wchar ()
00137 raises (TypeMismatch, InvalidValue);
00138 wstring get_wstring ()
00139 raises (TypeMismatch, InvalidValue);
00140 any get_any ()
00141 raises (TypeMismatch, InvalidValue);
00142 DynAny get_dyn_any ()
00143 raises (TypeMismatch, InvalidValue);
00144 ValueBase get_val ()
00145 raises (TypeMismatch, InvalidValue);
00146
00147 boolean seek (in long index);
00148
00149 void rewind ();
00150
00151 boolean next ();
00152
00153 unsigned long component_count ();
00154
00155 DynAny current_component ()
00156 raises (TypeMismatch);
00157
00158 void insert_abstract (in CORBA::AbstractBase value)
00159 raises (TypeMismatch, InvalidValue);
00160
00161 CORBA::AbstractBase get_abstract ()
00162 raises (TypeMismatch, InvalidValue);
00163
00164 void insert_boolean_seq (in CORBA::BooleanSeq value)
00165 raises (TypeMismatch, InvalidValue);
00166 void insert_octet_seq (in CORBA::OctetSeq value)
00167 raises (TypeMismatch, InvalidValue);
00168 void insert_char_seq (in CORBA::CharSeq value)
00169 raises (TypeMismatch, InvalidValue);
00170 void insert_short_seq (in CORBA::ShortSeq value)
00171 raises (TypeMismatch, InvalidValue);
00172 void insert_ushort_seq (in CORBA::UShortSeq value)
00173 raises (TypeMismatch, InvalidValue);
00174 void insert_long_seq (in CORBA::LongSeq value)
00175 raises (TypeMismatch, InvalidValue);
00176 void insert_ulong_seq (in CORBA::ULongSeq value)
00177 raises (TypeMismatch, InvalidValue);
00178 void insert_float_seq (in CORBA::FloatSeq value)
00179 raises (TypeMismatch, InvalidValue);
00180 void insert_double_seq (in CORBA::DoubleSeq value)
00181 raises (TypeMismatch, InvalidValue);
00182 void insert_longlong_seq (in CORBA::LongLongSeq value)
00183 raises (TypeMismatch, InvalidValue);
00184 void insert_ulonglong_seq (in CORBA::ULongLongSeq value)
00185 raises (TypeMismatch, InvalidValue);
00186 void insert_longdouble_seq (in CORBA::LongDoubleSeq value)
00187 raises (TypeMismatch, InvalidValue);
00188 void insert_wchar_seq (in CORBA::WCharSeq value)
00189 raises (TypeMismatch, InvalidValue);
00190
00191 CORBA::BooleanSeq get_boolean_seq ()
00192 raises (TypeMismatch, InvalidValue);
00193 CORBA::OctetSeq get_octet_seq()
00194 raises (TypeMismatch, InvalidValue);
00195 CORBA::CharSeq get_char_seq ()
00196 raises (TypeMismatch, InvalidValue);
00197 CORBA::ShortSeq get_short_seq ()
00198 raises (TypeMismatch, InvalidValue);
00199 CORBA::UShortSeq get_ushort_seq ()
00200 raises (TypeMismatch, InvalidValue);
00201 CORBA::LongSeq get_long_seq ()
00202 raises (TypeMismatch, InvalidValue);
00203 CORBA::ULongSeq get_ulong_seq ()
00204 raises (TypeMismatch, InvalidValue);
00205 CORBA::FloatSeq get_float_seq ()
00206 raises (TypeMismatch, InvalidValue);
00207 CORBA::DoubleSeq get_double_seq ()
00208 raises (TypeMismatch, InvalidValue);
00209 CORBA::LongLongSeq get_longlong_seq ()
00210 raises (TypeMismatch, InvalidValue);
00211 CORBA::ULongLongSeq get_ulonglong_seq ()
00212 raises (TypeMismatch, InvalidValue);
00213 CORBA::LongDoubleSeq get_longdouble_seq ()
00214 raises (TypeMismatch, InvalidValue);
00215 CORBA::WCharSeq get_wchar_seq ()
00216 raises (TypeMismatch, InvalidValue);
00217 };
00218
00219 local interface DynFixed : DynAny
00220 {
00221 string get_value ();
00222
00223 boolean set_value (in string val)
00224 raises (TypeMismatch, InvalidValue);
00225 };
00226
00227 local interface DynEnum : DynAny
00228 {
00229 string get_as_string ();
00230
00231 void set_as_string (in string value)
00232 raises (InvalidValue);
00233
00234 unsigned long get_as_ulong ();
00235
00236 void set_as_ulong (in unsigned long value)
00237 raises (InvalidValue);
00238 };
00239
00240 typedef string FieldName;
00241
00242 struct NameValuePair
00243 {
00244 FieldName id;
00245 any value;
00246 };
00247
00248 typedef sequence<NameValuePair> NameValuePairSeq;
00249
00250 struct NameDynAnyPair
00251 {
00252 FieldName id;
00253 DynAny value;
00254 };
00255
00256 typedef sequence<NameDynAnyPair> NameDynAnyPairSeq;
00257
00258 local interface DynStruct : DynAny
00259 {
00260 FieldName current_member_name ()
00261 raises (TypeMismatch, InvalidValue);
00262
00263 CORBA::TCKind current_member_kind ()
00264 raises (TypeMismatch, InvalidValue);
00265
00266 NameValuePairSeq get_members ();
00267
00268 void set_members (in NameValuePairSeq value)
00269 raises (TypeMismatch, InvalidValue);
00270
00271 NameDynAnyPairSeq get_members_as_dyn_any ();
00272
00273 void set_members_as_dyn_any (in NameDynAnyPairSeq value)
00274 raises (TypeMismatch, InvalidValue);
00275 };
00276
00277 local interface DynUnion : DynAny
00278 {
00279 DynAny get_discriminator ();
00280
00281 void set_discriminator (in DynAny d)
00282 raises (TypeMismatch);
00283
00284 void set_to_default_member ()
00285 raises (TypeMismatch);
00286
00287 void set_to_no_active_member ()
00288 raises (TypeMismatch);
00289
00290 boolean has_no_active_member ();
00291
00292 CORBA::TCKind discriminator_kind ();
00293
00294 DynAny member () raises (InvalidValue);
00295
00296 FieldName member_name ()
00297 raises (InvalidValue);
00298
00299 CORBA::TCKind member_kind ()
00300 raises (InvalidValue);
00301 };
00302
00303 typedef sequence<any> AnySeq;
00304 typedef sequence<DynAny> DynAnySeq;
00305
00306 local interface DynSequence : DynAny
00307 {
00308 unsigned long get_length ();
00309
00310 void set_length (in unsigned long len)
00311 raises (InvalidValue);
00312
00313 AnySeq get_elements ();
00314
00315 void set_elements (in AnySeq value)
00316 raises (TypeMismatch, InvalidValue);
00317
00318 DynAnySeq get_elements_as_dyn_any ();
00319
00320 void set_elements_as_dyn_any (in DynAnySeq value)
00321 raises (TypeMismatch, InvalidValue);
00322 };
00323
00324 local interface DynArray : DynAny
00325 {
00326 AnySeq get_elements ();
00327
00328 void set_elements (in AnySeq value)
00329 raises (TypeMismatch, InvalidValue);
00330
00331 DynAnySeq get_elements_as_dyn_any ();
00332
00333 void set_elements_as_dyn_any (in DynAnySeq value)
00334 raises (TypeMismatch, InvalidValue);
00335 };
00336
00337 local interface DynValueCommon : DynAny
00338 {
00339 boolean is_null ();
00340
00341 void set_to_null ();
00342
00343 void set_to_value ();
00344 };
00345
00346 local interface DynValue : DynValueCommon
00347 {
00348 FieldName current_member_name ()
00349 raises (TypeMismatch, InvalidValue);
00350
00351 CORBA::TCKind current_member_kind ()
00352 raises (TypeMismatch, InvalidValue);
00353
00354 NameValuePairSeq get_members ();
00355
00356 void set_members (in NameValuePairSeq value)
00357 raises (TypeMismatch, InvalidValue);
00358
00359 NameDynAnyPairSeq get_members_as_dyn_any ();
00360
00361 void set_members_as_dyn_any (in NameDynAnyPairSeq value)
00362 raises (TypeMismatch, InvalidValue);
00363 };
00364
00365 local interface DynValueBox : DynValueCommon
00366 {
00367 any get_boxed_value ()
00368 raises (InvalidValue);
00369
00370 void set_boxed_value (in any boxed)
00371 raises (TypeMismatch, InvalidValue);
00372
00373 DynAny get_boxed_value_as_dyn_any ()
00374 raises (InvalidValue);
00375
00376 void set_boxed_value_as_dyn_any (in DynAny boxed)
00377 raises (TypeMismatch);
00378 };
00379
00380 exception MustTruncate {};
00381
00382 local interface DynAnyFactory
00383 {
00384 exception InconsistentTypeCode {};
00385
00386 DynAny create_dyn_any (in any value)
00387 raises (InconsistentTypeCode);
00388 DynAny create_dyn_any_from_type_code (in CORBA::TypeCode type)
00389 raises (InconsistentTypeCode);
00390
00391 DynAny create_dyn_any_without_truncation (in any value)
00392 raises (InconsistentTypeCode, MustTruncate);
00393
00394 DynAnySeq create_multiple_dyn_anys (in AnySeq values,
00395 in boolean allow_truncate)
00396 raises (InconsistentTypeCode, MustTruncate);
00397
00398 AnySeq create_multiple_anys (in DynAnySeq values);
00399 };
00400 };
00401
00402 #endif // _DYNAMIC_ANY_IDL_