// File: DynamicAny.idl // CORBA 3.0, Chapter 9 #ifndef _DYNAMIC_ANY_IDL_ #define _DYNAMIC_ANY_IDL_ #ifdef _PRE_3_0_COMPILER_ #pragma prefix "omg.org" #include #else import ::CORBA; #endif // _PRE_3_0_COMPILER_ module DynamicAny { #ifndef _PRE_3_0_COMPILER_ typeprefix DynamicAny "omg.org"; #endif // _PRE_3_0_COMPILER_ local interface DynAny { exception InvalidValue {}; exception TypeMismatch {}; CORBA::TypeCode type(); void assign( in DynAny dyn_any) raises(TypeMismatch); void from_any( in any value) raises(TypeMismatch, InvalidValue); any to_any(); boolean equal( in DynAny dyn_any); void destroy(); DynAny copy(); void insert_boolean(in boolean value) raises(TypeMismatch, InvalidValue); void insert_octet( in octet value) raises(TypeMismatch, InvalidValue); void insert_char( in char value) raises(TypeMismatch, InvalidValue); void insert_short( in short value) raises(TypeMismatch, InvalidValue); void insert_ushort( in unsigned short value) raises(TypeMismatch, InvalidValue); void insert_long( in long value) raises(TypeMismatch, InvalidValue); void insert_ulong( in unsigned long value) raises(TypeMismatch, InvalidValue); void insert_float( in float value) raises(TypeMismatch, InvalidValue); void insert_double( in double value) raises(TypeMismatch, InvalidValue); void insert_string( in string value) raises(TypeMismatch, InvalidValue); void insert_reference(in Object value) raises(TypeMismatch, InvalidValue); void insert_typecode(in CORBA::TypeCode value) raises(TypeMismatch, InvalidValue); void insert_longlong(in long long value) raises(TypeMismatch, InvalidValue); void insert_ulonglong(in unsigned long long value) raises(TypeMismatch, InvalidValue); void insert_longdouble(in long double value) raises(TypeMismatch, InvalidValue); void insert_wchar( in wchar value) raises(TypeMismatch, InvalidValue); void insert_wstring(in wstring value) raises(TypeMismatch, InvalidValue); void insert_any( in any value) raises(TypeMismatch, InvalidValue); void insert_dyn_any(in DynAny value) raises(TypeMismatch, InvalidValue); void insert_val( in ValueBase value) raises(TypeMismatch, InvalidValue); boolean get_boolean() raises(TypeMismatch, InvalidValue); octet get_octet() raises(TypeMismatch, InvalidValue); char get_char() raises(TypeMismatch, InvalidValue); short get_short() raises(TypeMismatch, InvalidValue); unsigned short get_ushort() raises(TypeMismatch, InvalidValue); long get_long() raises(TypeMismatch, InvalidValue); unsigned long get_ulong() raises(TypeMismatch, InvalidValue); float get_float() raises(TypeMismatch, InvalidValue); double get_double() raises(TypeMismatch, InvalidValue); string get_string() raises(TypeMismatch, InvalidValue); Object get_reference() raises(TypeMismatch, InvalidValue); CORBA::TypeCode get_typecode() raises(TypeMismatch, InvalidValue); long long get_longlong() raises(TypeMismatch, InvalidValue); unsigned long long get_ulonglong() raises(TypeMismatch, InvalidValue); long double get_longdouble() raises(TypeMismatch, InvalidValue); wchar get_wchar() raises(TypeMismatch, InvalidValue); wstring get_wstring() raises(TypeMismatch, InvalidValue); any get_any() raises(TypeMismatch, InvalidValue); DynAny get_dyn_any() raises(TypeMismatch, InvalidValue); ValueBase get_val() raises(TypeMismatch, InvalidValue); boolean seek(in long index); void rewind(); boolean next(); unsigned long component_count(); DynAny current_component() raises(TypeMismatch); void insert_abstract(in CORBA::AbstractBase value) raises(TypeMismatch, InvalidValue); CORBA::AbstractBase get_abstract() raises(TypeMismatch, InvalidValue); void insert_boolean_seq(in CORBA::BooleanSeq value) raises(TypeMismatch, InvalidValue); void insert_octet_seq(in CORBA::OctetSeq value) raises(TypeMismatch, InvalidValue); void insert_char_seq(in CORBA::CharSeq value) raises(TypeMismatch, InvalidValue); void insert_short_seq(in CORBA::ShortSeq value) raises(TypeMismatch, InvalidValue); void insert_ushort_seq(in CORBA::UShortSeq value) raises(TypeMismatch, InvalidValue); void insert_long_seq(in CORBA::LongSeq value) raises(TypeMismatch, InvalidValue); void insert_ulong_seq(in CORBA::ULongSeq value) raises(TypeMismatch, InvalidValue); void insert_float_seq(in CORBA::FloatSeq value) raises(TypeMismatch, InvalidValue); void insert_double_seq(in CORBA::DoubleSeq value) raises(TypeMismatch, InvalidValue); void insert_longlong_seq(in CORBA::LongLongSeq value) raises(TypeMismatch, InvalidValue); void insert_ulonglong_seq(in CORBA::ULongLongSeq value) raises(TypeMismatch, InvalidValue); void insert_longdouble_seq(in CORBA::LongDoubleSeq value) raises(TypeMismatch, InvalidValue); void insert_wchar_seq(in CORBA::WCharSeq value) raises(TypeMismatch, InvalidValue); CORBA::BooleanSeq get_boolean_seq() raises(TypeMismatch, InvalidValue); CORBA::OctetSeq get_octet_seq() raises(TypeMismatch, InvalidValue); CORBA::CharSeq get_char_seq() raises(TypeMismatch, InvalidValue); CORBA::ShortSeq get_short_seq() raises(TypeMismatch, InvalidValue); CORBA::UShortSeq get_ushort_seq() raises(TypeMismatch, InvalidValue); CORBA::LongSeq get_long_seq() raises(TypeMismatch, InvalidValue); CORBA::ULongSeq get_ulong_seq() raises(TypeMismatch, InvalidValue); CORBA::FloatSeq get_float_seq() raises(TypeMismatch, InvalidValue); CORBA::DoubleSeq get_double_seq() raises(TypeMismatch, InvalidValue); CORBA::LongLongSeq get_longlong_seq() raises(TypeMismatch, InvalidValue); CORBA::ULongLongSeq get_ulonglong_seq() raises(TypeMismatch, InvalidValue); CORBA::LongDoubleSeq get_longdouble_seq() raises(TypeMismatch, InvalidValue); CORBA::WCharSeq get_wchar_seq() raises(TypeMismatch, InvalidValue); }; local interface DynFixed : DynAny { string get_value(); boolean set_value(in string val) raises(TypeMismatch, InvalidValue); }; local interface DynEnum : DynAny { string get_as_string(); void set_as_string(in string value) raises(InvalidValue); unsigned long get_as_ulong(); void set_as_ulong( in unsigned long value) raises(InvalidValue); }; typedef string FieldName; struct NameValuePair { FieldName id; any value; }; typedef sequence NameValuePairSeq; struct NameDynAnyPair { FieldName id; DynAny value; }; typedef sequence NameDynAnyPairSeq; local interface DynStruct : DynAny { FieldName current_member_name() raises(TypeMismatch, InvalidValue); CORBA::TCKind current_member_kind() raises(TypeMismatch, InvalidValue); NameValuePairSeq get_members(); void set_members(in NameValuePairSeq value) raises(TypeMismatch, InvalidValue); NameDynAnyPairSeq get_members_as_dyn_any(); void set_members_as_dyn_any(in NameDynAnyPairSeq value) raises(TypeMismatch, InvalidValue); }; local interface DynUnion : DynAny { DynAny get_discriminator(); void set_discriminator(in DynAny d) raises(TypeMismatch); void set_to_default_member() raises(TypeMismatch); void set_to_no_active_member() raises(TypeMismatch); boolean has_no_active_member(); CORBA::TCKind discriminator_kind(); DynAny member() raises(InvalidValue); FieldName member_name() raises(InvalidValue); CORBA::TCKind member_kind() raises(InvalidValue); }; typedef sequence AnySeq; typedef sequence DynAnySeq; local interface DynSequence : DynAny { unsigned long get_length(); void set_length(in unsigned long len) raises(InvalidValue); AnySeq get_elements(); void set_elements(in AnySeq value) raises(TypeMismatch, InvalidValue); DynAnySeq get_elements_as_dyn_any(); void set_elements_as_dyn_any(in DynAnySeq value) raises(TypeMismatch, InvalidValue); }; local interface DynArray : DynAny { AnySeq get_elements(); void set_elements(in AnySeq value) raises(TypeMismatch, InvalidValue); DynAnySeq get_elements_as_dyn_any(); void set_elements_as_dyn_any(in DynAnySeq value) raises(TypeMismatch, InvalidValue); }; local interface DynValueCommon : DynAny { boolean is_null(); void set_to_null(); void set_to_value(); }; local interface DynValue : DynValueCommon { FieldName current_member_name() raises(TypeMismatch, InvalidValue); CORBA::TCKind current_member_kind() raises(TypeMismatch, InvalidValue); NameValuePairSeq get_members() raises(InvalidValue); void set_members(in NameValuePairSeq value) raises(TypeMismatch, InvalidValue); NameDynAnyPairSeq get_members_as_dyn_any() raises(InvalidValue); void set_members_as_dyn_any(in NameDynAnyPairSeq value) raises(TypeMismatch, InvalidValue); }; local interface DynValueBox : DynValueCommon { any get_boxed_value() raises(InvalidValue); void set_boxed_value(in any boxed) raises(TypeMismatch, InvalidValue); DynAny get_boxed_value_as_dyn_any() raises(InvalidValue); void set_boxed_value_as_dyn_any(in DynAny boxed) raises(TypeMismatch); }; exception MustTruncate { }; local interface DynAnyFactory { exception InconsistentTypeCode {}; DynAny create_dyn_any(in any value) raises(InconsistentTypeCode); DynAny create_dyn_any_from_type_code(in CORBA::TypeCode type) raises(InconsistentTypeCode); DynAny create_dyn_any_without_truncation(in any value) raises(InconsistentTypeCode, MustTruncate); DynAnySeq create_multiple_dyn_anys( in AnySeq values, in boolean allow_truncate) raises(InconsistentTypeCode, MustTruncate); AnySeq create_multiple_anys(in DynAnySeq values); }; }; // module DynamicAny #endif // _DYNAMIC_ANY_IDL_