%{ #pragma include_defs orb/orbit.h %} #pragma inhibit push #pragma prefix "omg.org" module CORBA { typedef unsigned short ServiceType; typedef unsigned long ServiceOption; typedef unsigned long ServiceDetailType; const ServiceType Security = 1; struct ServiceDetail { ServiceDetailType service_detail_type; sequence service_detail; }; struct ServiceInformation { sequence service_options; sequence service_details; }; typedef string Identifier; typedef string ScopedName; typedef string RepositoryId; 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 }; interface TypeCode { exception Bounds{}; exception BadKind{}; // for all TypeCode kinds boolean equal(in TypeCode tc); TCKind kind(); // for tk_objref, tk_struct, tk_union, tk_enum, tk_alias and tk_except RepositoryId id() raises(BadKind); // for tk_objref, tk_struct, tk_union, tk_enum, 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); // for tk_fixed unsigned short fixed_digits() raises(BadKind); short fixed_scale() raises(BadKind); // deprecated interface long param_count(); any parameter(in long index) raises(Bounds); }; typedef unsigned long Flags; typedef unsigned long Status; struct NamedValue { Identifier name; any argument; long len; Flags arg_modes; }; interface Request { Status add_arg(in Identifier name, in TypeCode arg_type, in void *value, in long len, in Flags arg_flags); Status invoke(in Flags invoke_flags); Status delete(); Status send(in Flags invoke_flags); Status get_response(in Flags response_flags) raises(WrongTransaction); }; 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 }; interface IRObject { // read interface readonly attribute DefinitionKind def_kind; // write interface void destroy(); }; typedef string VersionSpec; interface Contained; interface Repository; interface Container; interface Contained: IRObject { // read/write interface attribute RepositoryId id; attribute Identifier name; attribute VersionSpec version; // read interface readonly attribute Container defined_in; readonly attribute ScopedName absolute_name; readonly attribute Repository containing_repository; struct Description { DefinitionKind kind; any Value; }; Description describe(); // write interface 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 WstringDef; typedef sequence InterfaceDefSeq; typedef sequence ContainedSeq; struct StructMember { Identifier name; TypeCode type; IDLType type_def; }; typedef sequence StructMemberSeq; struct UnionMember { Identifier name; any label; TypeCode type; IDLType type_def; }; typedef sequence UnionMemberSeq; typedef sequence EnumMemberSeq; interface Container: IRObject { // read interface 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 DescriptionSeq; DescriptionSeq describe_contents(in DefinitionKind limit_type, in boolean exclude_inherited, in long max_returned_objs); // write interface 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); InterfaceDef create_interface(in RepositoryId id, in Identifier name, in VersionSpec version, in InterfaceDefSeq base_interfaces); ExceptionDef create_exception(in RepositoryId id, in Identifier name, in VersionSpec version, in StructMemberSeq members); }; interface IDLType: IRObject { readonly attribute TypeCode type; }; interface PrimitiveDef; interface StringDef; interface SequenceDef; interface ArrayDef; interface FixedDef; 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 }; interface Repository: Container { // read interface Contained lookup_id(in RepositoryId search_id); PrimitiveDef get_primitive(in PrimitiveKind kind); // write interface StringDef create_string(in unsigned long bound); WstringDef create_wstring(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); FixedDef create_fixed(in unsigned short digits, in short scale); }; 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 WstringDef: IDLType { attribute unsigned long bound; }; interface FixedDef: IDLType { attribute unsigned short digits; attribute short scale; }; 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 ParDescriptionSeq; typedef Identifier ContextIdentifier; typedef sequence ContextIdSeq; typedef sequence ExceptionDefSeq; typedef sequence 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 RepositoryIdSeq; typedef sequence OpDescriptionSeq; typedef sequence AttrDescriptionSeq; interface InterfaceDef: Container, Contained, IDLType { // read/write interface attribute InterfaceDefSeq base_interfaces; //read interface boolean is_a(in RepositoryId interface_id); struct FullInterfaceDescription { Identifier name; RepositoryId id; RepositoryId defined_in; VersionSpec version; OpDescriptionSeq operations; AttrDescriptionSeq attributes; RepositoryIdSeq base_interfaces; TypeCode type; }; FullInterfaceDescription describe_interface(); // write 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; }; typedef unsigned long PolicyType; interface Policy { readonly attribute PolicyType policy_type; Policy copy(); void destroy(); }; typedef sequence PolicyList; interface DomainManager { Policy get_domain_policy(in PolicyType policy_type); }; const PolicyType SecConstruction = 11; interface ConstructionPolicy: Policy { void make_domain_manager(in CORBA::InterfaceDef object_type, in boolean constr_policy); }; typedef sequence DomainManagerList; interface ImplementationDef { enum ActivationMode { ActivateShared, ActivateUnshared, ActivatePerMethod, ActivatePersistent, ActivateLibrary }; typedef sequence RepoIdList; attribute ActivationMode mode; attribute RepoIdList repoids; readonly attribute string name; attribute string command; readonly attribute string tostring; }; typedef string Context; typedef sequence NVList; interface Object { // deprecated as of v2.2 ImplementationDef get_implementation(); InterfaceDef get_interface(); boolean is_nil(); Object duplicate(); void release(); boolean is_a(in string logical_type_id); boolean non_existent(); boolean is_equivalent(in Object other_object); unsigned long hash(in unsigned long maximum); Status create_request(in Context ctx, in Identifier operation, in NVList arg_list, inout NamedValue result, out Request request, in Flags req_flags); Policy get_policy(in PolicyType policy_type); DomainManagersList get_domain_managers(); }; interface Current { }; interface ORB { typedef string ObjectId; typedef sequence ObjectIdList; exception InvalidName{}; ObjectIdList list_initial_services(); Object resolve_initial_references(in ObjectId identifier) raises(InvalidName); string object_to_string(in Object obj); Object string_to_object(in string str); Status create_list(in long count, out NVList new_list); Status create_operation_list(in OperationDef oper, out NVList new_list); Status get_default_context(out Context ctx); boolean get_service_information(in ServiceType service_type, out ServiceInformation service_information); // deprecated as of v2.2 Current get_current(); boolean work_pending(); void perform_work(); void shutdown(in boolean wait_for_completion); void run(); TypeCode create_struct_tc(in RepositoryId id, in Identifier name, in StructMemberSeq members); TypeCode create_union_tc(in RepositoryId id, in Identifier name, in TypeCode discriminator_type, in UnionMemberSeq members); TypeCode create_enum_tc(in RepositoryId id, in Identifier name, in EnumMemberSeq members); TypeCode create_alias_tc(in RepositoryId id, in Identifier name, in TypeCode original_type); TypeCode create_exception_tc(in RepositoryId id, in Identifier name, in StructMemberSeq members); TypeCode create_interface_tc(in RepositoryId id, in Identifier name); TypeCode create_string_tc(in unsigned long bound); TypeCode create_wstring_tc(in unsigned long bound); TypeCode create_fixed_tc(in unsigned short digits, in short scale); TypeCode create_sequence_tc(in unsigned long bound, in TypeCode elementtype); TypeCode create_recursive_sequence_tc(in unsigned long bound, in unsigned long offset); TypeCode create_array_tc(in unsigned long length, in TypeCode element_type); }; typedef string ORBid; typedef sequencearg_list; ORB ORB_init(inout arg_list argv, in ORBid orb_identifier); }; #pragma inhibit pop