// -*- c++ -*- #include #include #pragma prefix "omg.org" module DynamicAny { local interface DynAny { exception InvalidValue {}; exception TypeMismatch {}; 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 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); 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); }; local interface DynBasic : DynAny { }; local interface DynFixed : DynAny { string get_value (); void 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 (); void set_members (in NameValuePairSeq values) raises (TypeMismatch, InvalidValue); NameDynAnyPairSeq get_members_as_dyn_any (); void set_members_as_dyn_any (in NameDynAnyPairSeq values) raises (TypeMismatch, InvalidValue); }; local interface DynValueBox : DynValueCommon { any get_boxed_value () raises (InvalidValue); void set_boxed_value (in any boxed) raises (TypeMismatch); DynAny get_boxed_value_as_dyn_any () raises (InvalidValue); void set_boxed_value_as_dyn_any (in DynAny boxed) raises (TypeMismatch); }; local interface DynAnyFactory { exception InconsistentTypeCode {}; DynAny create_dyn_any (in any value) raises (InconsistentTypeCode); DynAny create_dyn_any_from_type_code (in TypeCode type) raises (InconsistentTypeCode); }; }; // module DynamicAny