The following code fragment shows the syntax and definition of
the available types within the CORBA module:
typedef sequence<octet, 1024> ReferenceData;
typedef string ScopedName;
typedef string RepositoryId;
typedef string Identifier;
typedef string VersionSpec;
typedef sequence<InterfaceDef> InterfaceDefSeq;
typedef sequence<Contained> ContainedSeq;
typedef sequence<StructMember> StructMemberSeq;
typedef sequence<UnionMember> UnionMemberSeq;
typedef sequence<Identifier> EnumMemberSeq;
typedef sequence<ParameterDescription> ParDescriptionSeq;
typedef Identifier ContextIdentifier;
typedef sequence<ContextIdentifier> ContextIdSeq;
typedef sequence<ExceptionDef> ExceptionDefSeq;
typedef sequence<ExceptionDescription> ExcDescriptionSeq;
typedef sequence<RepositoryId> RepositoryIdSeq;
typedef sequence<OperationDescription> OpDescriptionSeq;
typedef sequence<AttributeDescription> AttrDescriptionSeq;
struct StructMember
{
Identifier name;
TypeCode type;
IDLType type_def;
};
struct UnionMember
{
Identifier name;
any label;
TypeCode type;
IDLType type_def;
};
struct ModuleDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
};
struct ConstantDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
TypeCode type;
any value;
};
struct TypeDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
TypeCode type;
};
struct ExceptionDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
TypeCode type;
};
struct AttributeDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
TypeCode type;
AttributeMode mode;
};
struct ParameterDescription
{
Identifier name;
TypeCode type;
IDLType type_def;
ParameterMode mode;
};
struct OperationDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
TypeCode result;
OperationMode mode;
ContextIdSeq contexts;
ParDescriptionSeq parameters;
ExcDescriptionSeq exceptions;
};
struct InterfaceDescription
{
Identifier name;
RepositoryId id;
RepositoryId defined_in;
VersionSpec version;
RepositoryIdSeq base_interfaces;
};
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_wchar, tk_wstring, tk_fixed
};
enum DefinitionKind
{
dk_none, dk_all,
dk_Attribute, dk_Constant, dk_Exception, dk_Interface,
dk_Module, dk_Operation, dk_Typedef,
dk_Alias, dk_Struct, dk_Union, dk_Enum,
dk_Primitive, dk_String, dk_Sequence, dk_Array,
dk_Repository dk_Wstring
};
enum PrimitiveKind
{
pk_null, pk_void, pk_short, pk_long, pk_ushort,
pk_ulong, pk_float, pk_double, pk_boolean, pk_char,
pk_octet, pk_any, pk_TypeCode, pk_Principal, pk_string,
pk_objref, pk_longlong, pk_ulonglong, pk_longdouble,
pk_wchar, pk_wstring
};
enum AttributeMode {ATTR_NORMAL, ATTR_READONLY};
enum OperationMode {OP_NORMAL, OP_ONEWAY};
enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT};