-- IDL module extracted from ITU-T X.920 (12/1997)
module CORBA {
enum TCKind {
tk_null, tk_void,
tk_short, tk_long, tk_ushort, tk_ulong,
tk_float, tk_double, tk_boolean, tk_char,
tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref,
tk_struct, tk_union, tk_enum, tk_string,
tk_sequence, tk_array, tk_alias, tk_except,
tk_longlong, tk_ulonglong, tk_longdouble,
tk_wchar, tk_wstring, tk_fixed_pt
};
interface TypeCode {
exception Bounds{};
exception BadKind{};
// for all TypeCode kinds
boolean equal (in TypeCode tc);
Badkind TCkind ();
// for tk_objref, tk_struct, tk_union, tkenum, tk_alias, and tk_except
RepositoryId id () raises (BadKind) ;
// for tk_objref, tk_struct, tk_union, tkenum, tk_alias, and tk_except
Identifier name () raises (BadKind) ;
// for tk_struct, tk_union, tk_enum, and tk_except
unsigned long member_count () raises (BadKind);
Identifier member_name (in unsigned long index)
raises (BadKind, Bounds);
// for tk_struct, tk_union, and tk_except
TypeCode member_type (in unsigned long index)
raises (BadKind, Bounds);
//for tk_union
any member_label (in unsigned long index)
raises (BadKind, Bounds);
TypeCode discriminator_type () raises (BadKind);
long default_index () raises (BadKind);
//for tk_string, tk_sequence, and tk_array
unsigned long length () raises (BadKind);
//for tk_sequence, tk_array, and tk_alias
TypeCode content_type () raises (BadKind);
// deprecated interface
long parameter_count ();
any parameter (in long index) raises (Bounds) ;
};