|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma prefix "omg.org" |
|
|
|
module CORBA { |
|
typedef string Identifier; |
|
typedef string ScopedName; |
|
typedef string RepositoryId; |
|
|
|
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, dk_Fixed, |
|
dk_Value, dk_ValueBox, dk_ValueMember, |
|
dk_Native |
|
}; |
|
|
|
|
|
interface IRObject |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
readonly attribute DefinitionKind def_kind; |
|
|
|
|
|
void destroy (); |
|
}; |
|
|
|
|
|
|
|
typedef string VersionSpec; |
|
|
|
interface Contained; |
|
interface Repository; |
|
interface Container; |
|
|
|
interface Contained : IRObject |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
attribute RepositoryId id; |
|
attribute Identifier name; |
|
attribute VersionSpec version; |
|
|
|
|
|
|
|
readonly attribute Container defined_in; |
|
readonly attribute ScopedName absolute_name; |
|
readonly attribute Repository containing_repository; |
|
|
|
struct Description { |
|
DefinitionKind kind; |
|
any value; |
|
}; |
|
|
|
Description describe (); |
|
|
|
|
|
|
|
void move ( |
|
in Container new_container, |
|
in Identifier new_name, |
|
in VersionSpec new_version |
|
); |
|
}; |
|
|
|
|
|
interface ModuleDef; |
|
interface ConstantDef; |
|
interface IDLType; |
|
interface StructDef; |
|
interface UnionDef; |
|
interface EnumDef; |
|
interface AliasDef; |
|
interface InterfaceDef; |
|
interface ExceptionDef; |
|
interface ValueDef; |
|
interface ValueMemberDef; |
|
interface ValueBoxDef; |
|
interface NativeDef; |
|
|
|
|
|
typedef sequence <InterfaceDef> InterfaceDefSeq; |
|
|
|
|
|
typedef sequence <Contained> ContainedSeq; |
|
|
|
struct StructMember { |
|
Identifier name; |
|
TypeCode type; |
|
IDLType type_def; |
|
}; |
|
typedef sequence <StructMember> StructMemberSeq; |
|
|
|
struct UnionMember { |
|
Identifier name; |
|
any label; |
|
TypeCode type; |
|
IDLType type_def; |
|
}; |
|
typedef sequence <UnionMember> UnionMemberSeq; |
|
|
|
|
|
typedef sequence <Identifier> EnumMemberSeq; |
|
|
|
|
|
typedef short Visibility; |
|
const Visibility PRIVATE_MEMBER = 0; |
|
const Visibility PUBLIC_MEMBER = 1; |
|
|
|
struct ValueMember { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode type; |
|
IDLType type_def; |
|
Visibility access; |
|
}; |
|
typedef sequence <ValueMember> ValueMemberSeq; |
|
|
|
struct Initializer { |
|
StructMemberSeq members; |
|
}; |
|
typedef sequence <Initializer> InitializerSeq; |
|
|
|
typedef sequence <ValueDef> ValueDefSeq; |
|
|
|
|
|
|
|
|
|
interface Container : IRObject |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
Contained lookup ( in ScopedName search_name); |
|
|
|
ContainedSeq contents ( |
|
in DefinitionKind limit_type, |
|
in boolean exclude_inherited |
|
); |
|
|
|
ContainedSeq lookup_name ( |
|
in Identifier search_name, |
|
in long levels_to_search, |
|
in DefinitionKind limit_type, |
|
in boolean exclude_inherited |
|
); |
|
|
|
struct Description { |
|
Contained contained_object; |
|
DefinitionKind kind; |
|
any value; |
|
}; |
|
|
|
typedef sequence<Description> DescriptionSeq; |
|
|
|
DescriptionSeq describe_contents ( |
|
in DefinitionKind limit_type, |
|
in boolean exclude_inherited, |
|
in long max_returned_objs |
|
); |
|
|
|
|
|
|
|
ModuleDef create_module ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version |
|
); |
|
|
|
ConstantDef create_constant ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType type, |
|
in any value |
|
); |
|
|
|
StructDef create_struct ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in StructMemberSeq members |
|
); |
|
|
|
UnionDef create_union ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType discriminator_type, |
|
in UnionMemberSeq members |
|
); |
|
|
|
EnumDef create_enum ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in EnumMemberSeq members |
|
); |
|
|
|
AliasDef create_alias ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType original_type |
|
); |
|
|
|
ExceptionDef create_exception ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in StructMemberSeq members |
|
); |
|
|
|
|
|
InterfaceDef create_interface ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in boolean is_abstract, |
|
in InterfaceDefSeq base_interfaces |
|
); |
|
|
|
|
|
ValueDef create_value( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in boolean is_custom, |
|
in boolean is_abstract, |
|
in octet flags, // must be 0 |
|
in ValueDef base_value, |
|
in boolean has_safe_base, |
|
in ValueDefSeq abstract_base_values, |
|
in InterfaceDefSeq supported_interfaces, |
|
in InitializerSeq initializers |
|
); |
|
|
|
|
|
ValueBoxDef create_value_box( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType original_type_def |
|
); |
|
|
|
NativeDef create_native( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version |
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
interface IDLType : IRObject |
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode type; |
|
}; |
|
|
|
|
|
|
|
interface PrimitiveDef; |
|
interface StringDef; |
|
interface SequenceDef; |
|
interface ArrayDef; |
|
|
|
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 |
|
}; |
|
|
|
interface Repository : Container |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
Contained lookup_id (in RepositoryId search_id); |
|
|
|
PrimitiveDef get_primitive (in PrimitiveKind kind); |
|
|
|
|
|
|
|
StringDef create_string (in unsigned long bound); |
|
|
|
SequenceDef create_sequence ( |
|
in unsigned long bound, |
|
in IDLType element_type |
|
); |
|
|
|
ArrayDef create_array ( |
|
in unsigned long length, |
|
in IDLType element_type |
|
); |
|
}; |
|
|
|
|
|
interface ModuleDef : Container, Contained |
|
|
|
|
|
|
|
|
|
{ |
|
}; |
|
|
|
struct ModuleDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
}; |
|
|
|
|
|
interface ConstantDef : Contained |
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode type; |
|
attribute IDLType type_def; |
|
attribute any value; |
|
}; |
|
|
|
struct ConstantDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode type; |
|
any value; |
|
}; |
|
|
|
|
|
interface TypedefDef : Contained, IDLType |
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
}; |
|
|
|
struct TypeDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode type; |
|
}; |
|
|
|
|
|
interface StructDef : TypedefDef, Container |
|
|
|
|
|
|
|
{ |
|
attribute StructMemberSeq members; |
|
}; |
|
|
|
|
|
interface UnionDef : TypedefDef, Container |
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode discriminator_type; |
|
attribute IDLType discriminator_type_def; |
|
attribute UnionMemberSeq members; |
|
}; |
|
|
|
|
|
interface EnumDef : TypedefDef |
|
|
|
|
|
|
|
{ |
|
attribute EnumMemberSeq members; |
|
}; |
|
|
|
|
|
interface AliasDef : TypedefDef |
|
|
|
|
|
|
|
|
|
{ |
|
attribute IDLType original_type_def; |
|
}; |
|
|
|
|
|
interface PrimitiveDef: IDLType |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
readonly attribute PrimitiveKind kind; |
|
}; |
|
|
|
|
|
interface StringDef : IDLType |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
attribute unsigned long bound; |
|
}; |
|
|
|
|
|
interface SequenceDef : IDLType |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
attribute unsigned long bound; |
|
readonly attribute TypeCode element_type; |
|
attribute IDLType element_type_def; |
|
}; |
|
|
|
interface ArrayDef : IDLType |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
attribute unsigned long length; |
|
readonly attribute TypeCode element_type; |
|
attribute IDLType element_type_def; |
|
}; |
|
|
|
|
|
interface ExceptionDef : Contained, Container |
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode type; |
|
attribute StructMemberSeq members; |
|
}; |
|
struct ExceptionDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode type; |
|
}; |
|
|
|
|
|
|
|
enum AttributeMode {ATTR_NORMAL, ATTR_READONLY}; |
|
|
|
interface AttributeDef : Contained |
|
|
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode type; |
|
attribute IDLType type_def; |
|
attribute AttributeMode mode; |
|
}; |
|
|
|
struct AttributeDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode type; |
|
AttributeMode mode; |
|
}; |
|
|
|
|
|
|
|
enum OperationMode {OP_NORMAL, OP_ONEWAY}; |
|
|
|
enum ParameterMode {PARAM_IN, PARAM_OUT, PARAM_INOUT}; |
|
struct ParameterDescription { |
|
Identifier name; |
|
TypeCode type; |
|
IDLType type_def; |
|
ParameterMode mode; |
|
}; |
|
typedef sequence <ParameterDescription> ParDescriptionSeq; |
|
|
|
typedef Identifier ContextIdentifier; |
|
typedef sequence <ContextIdentifier> ContextIdSeq; |
|
|
|
typedef sequence <ExceptionDef> ExceptionDefSeq; |
|
typedef sequence <ExceptionDescription> ExcDescriptionSeq; |
|
|
|
interface OperationDef : Contained |
|
|
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode result; |
|
attribute IDLType result_def; |
|
attribute ParDescriptionSeq params; |
|
attribute OperationMode mode; |
|
attribute ContextIdSeq contexts; |
|
attribute ExceptionDefSeq exceptions; |
|
}; |
|
|
|
struct OperationDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
TypeCode result; |
|
OperationMode mode; |
|
ContextIdSeq contexts; |
|
ParDescriptionSeq parameters; |
|
ExcDescriptionSeq exceptions; |
|
}; |
|
|
|
|
|
|
|
typedef sequence <RepositoryId> RepositoryIdSeq; |
|
typedef sequence <OperationDescription> OpDescriptionSeq; |
|
typedef sequence <AttributeDescription> AttrDescriptionSeq; |
|
|
|
interface InterfaceDef : Container, Contained, IDLType |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
attribute InterfaceDefSeq base_interfaces; |
|
attribute boolean is_abstract; |
|
|
|
|
|
|
|
boolean is_a (in RepositoryId interface_id); |
|
|
|
struct FullInterfaceDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
boolean is_abstract; |
|
OpDescriptionSeq operations; |
|
AttrDescriptionSeq attributes; |
|
RepositoryIdSeq base_interfaces; |
|
TypeCode type; |
|
}; |
|
|
|
FullInterfaceDescription describe_interface(); |
|
|
|
|
|
|
|
AttributeDef create_attribute ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType type, |
|
in AttributeMode mode |
|
); |
|
|
|
OperationDef create_operation ( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType result, |
|
in OperationMode mode, |
|
in ParDescriptionSeq params, |
|
in ExceptionDefSeq exceptions, |
|
in ContextIdSeq contexts |
|
); |
|
}; |
|
|
|
struct InterfaceDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
RepositoryIdSeq base_interfaces; |
|
}; |
|
|
|
|
|
|
|
|
|
interface ValueMemberDef : Contained |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
readonly attribute TypeCode type; |
|
attribute IDLType type_def; |
|
attribute Visibility access; |
|
}; |
|
|
|
interface ValueDef : Container, Contained, IDLType |
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
attribute InterfaceDefSeq supported_interfaces; |
|
attribute InitializerSeq initializers; |
|
attribute ValueDef base_value; |
|
attribute ValueDefSeq abstract_base_values; |
|
attribute boolean is_abstract; |
|
attribute boolean is_custom; |
|
attribute octet flags; |
|
attribute boolean has_safe_base; |
|
|
|
|
|
boolean is_a(in RepositoryId value_id); |
|
|
|
struct FullValueDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
boolean is_abstract; |
|
boolean is_custom; |
|
octet flags; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
OpDescriptionSeq operations; |
|
AttrDescriptionSeq attributes; |
|
ValueMemberSeq members; |
|
InitializerSeq initializers; |
|
RepositoryIdSeq supported_interfaces; |
|
RepositoryIdSeq abstract_base_values; |
|
boolean has_safe_base; |
|
RepositoryId base_value; |
|
TypeCode type; |
|
}; |
|
|
|
FullValueDescription describe_value(); |
|
|
|
|
|
|
|
ValueMemberDef create_value_member( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType type_def, |
|
in Visibility access |
|
); |
|
|
|
AttributeDef create_attribute( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType type, |
|
in AttributeMode mode |
|
); |
|
|
|
OperationDef create_operation( |
|
in RepositoryId id, |
|
in Identifier name, |
|
in VersionSpec version, |
|
in IDLType result, |
|
in OperationMode mode, |
|
in ParDescriptionSeq params, |
|
in ExceptionDefSeq exceptions, |
|
in ContextIdSeq contexts |
|
); |
|
}; |
|
struct ValueDescription { |
|
Identifier name; |
|
RepositoryId id; |
|
boolean is_abstract; |
|
boolean is_custom; |
|
octet flags; |
|
RepositoryId defined_in; |
|
VersionSpec version; |
|
RepositoryIdSeq supported_interfaces; |
|
RepositoryIdSeq abstract_base_values; |
|
boolean has_safe_base; |
|
RepositoryId base_value; |
|
}; |
|
|
|
interface ValueBoxDef : IDLType |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{ |
|
attribute IDLType original_type_def; |
|
}; |
|
|
|
|
|
|
|
interface NativeDef : TypedefDef { |
|
}; |
|
}; |
|
|