// IDL // File: DynamicAny.idl #ifndef _DYNAMIC_ANY_IDL #define _DYNAMIC_ANY_IDL #pragma prefix "omg.org" #include module DynamicAny { // Dynamic Management of Anys interface DynAny { exception InvalidValue { }; exception TypeMismatch { }; CORBA::TypeCode type(); void assign(in DynAny dyn_any) raises (TypeMismatch); void from_any(in any value ) raises (InvalidValue, TypeMismatch); 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); // not yet supported by the Java language mapping: // 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); // not yet supported by the Java language mapping // 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); }; interface DynFixed : DynAny { string get_value(); void set_value( in string val ) raises (TypeMismatch, InvalidValue ); }; 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 ; 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); CORBA::TCKind member_kind() raises (InvalidValue); FieldName member_name() raises (InvalidValue ); }; 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 ); }; typedef sequence AnySeq; typedef sequence DynAnySeq; 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 ); }; 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 ); }; interface DynValue { // }; 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); }; }; #endif // _DYNAMIC_ANY_IDL