// IDL | |
// File: DynamicAny.idl | |
#ifndef _DYNAMIC_ANY_IDL | |
#define _DYNAMIC_ANY_IDL | |
#pragma prefix "omg.org" | |
#include <orb.idl> | |
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<NameValuePair> NameValuePairSeq; | |
struct NameDynAnyPair { | |
FieldName id; | |
DynAny value; | |
}; | |
typedef sequence<NameDynAnyPair> 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<any> AnySeq; | |
typedef sequence<DynAny> 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 | |