// -*- IDL -*- // // $Id$ // ================================================================ // // This file was used to generate the code in PortableInterceptorC.* // The command used to generate code is: // // tao_idl // -Ge 1 \ // -DCORBA3 \ // -Wb,export_macro=TAO_Export \ // -Wb,export_include="tao/corbafwd.h" \ // -Wb,pre_include="ace/pre.h" \ // -Wb,post_include="ace/post.h" \ // PortableInterceptor.pidl // // Patches for changes to the generated code are available in the // `diffs' directory. // ================================================================ // This file contains the interface definitions for "Portable" // Interceptor support. // The following is from orbos/99-12-02 Portable Interceptors spec, // the full IDL is downloadable from orbos/99-12-02 // File: PortableInterceptor.idl #ifndef _PORTABLE_INTERCEPTOR_IDL_ #define _PORTABLE_INTERCEPTOR_IDL_ #ifndef CORBA3 #define local #endif #include "orb.idl" #include // changed to pidl from idl //#include #define NO_VALUE // necessary to get around compile errors regarding valuetype #include "Messaging.pidl" // this is .idl in the spec module PortableInterceptor { local interface Interceptor { readonly attribute string name; }; exception ForwardRequest { Object forward; boolean permanent; }; typedef short ReplyStatus; // Valid reply_status values: const ReplyStatus SUCCESSFUL = 0; const ReplyStatus SYSTEM_EXCEPTION = 1; const ReplyStatus USER_EXCEPTION = 2; const ReplyStatus LOCATION_FORWARD = 3; const ReplyStatus LOCATION_FORWARD_PERMANENT = 4; const ReplyStatus TRANSPORT_RETRY = 5; typedef unsigned long SlotId; exception InvalidSlot {}; local interface Current : CORBA::Current { any get_slot (in SlotId id) raises (InvalidSlot); void set_slot (in SlotId id, in any data) raises (InvalidSlot); }; local interface RequestInfo { readonly attribute unsigned long request_id; readonly attribute string operation; readonly attribute Dynamic::ParameterList arguments; readonly attribute Dynamic::ExceptionList exceptions; readonly attribute Dynamic::ContextList contexts; readonly attribute Dynamic::RequestContext operation_context; readonly attribute any result; readonly attribute boolean response_expected; readonly attribute Messaging::SyncScope sync_scope; readonly attribute ReplyStatus reply_status; readonly attribute Object forward_reference; any get_slot (in SlotId id) raises (InvalidSlot); IOP::ServiceContext get_request_service_context (in IOP::ServiceId id); IOP::ServiceContext get_reply_service_context (in IOP::ServiceId id); }; local interface ClientRequestInfo : RequestInfo { readonly attribute Object target; readonly attribute Object effective_target; readonly attribute IOP::TaggedProfile effective_profile; readonly attribute any received_exception; readonly attribute CORBA::RepositoryId received_exception_id; IOP::TaggedComponent get_effective_component (in IOP::ComponentId id); // Removed it for starters // IOP_N::TaggedComponentSeq get_effective_components (in IOP::ComponentId id); CORBA::Policy get_request_policy (in CORBA::PolicyType type); void add_request_service_context ( in IOP::ServiceContext service_context, in boolean replace); }; local interface ServerRequestInfo : RequestInfo { readonly attribute any sending_exception; readonly attribute CORBA::OctetSeq object_id; readonly attribute CORBA::OctetSeq adapter_id; readonly attribute CORBA::RepositoryId target_most_derived_interface; CORBA::Policy get_server_policy (in CORBA::PolicyType type); void set_slot (in SlotId id, in any data) raises (InvalidSlot); boolean target_is_a (in CORBA::RepositoryId id); void add_reply_service_context ( in IOP::ServiceContext service_context, in boolean replace); }; local interface ClientRequestInterceptor : Interceptor { void send_request (in ClientRequestInfo ri) raises (ForwardRequest); void send_poll (in ClientRequestInfo ri); void receive_reply (in ClientRequestInfo ri); void receive_exception (in ClientRequestInfo ri) raises (ForwardRequest); void receive_other (in ClientRequestInfo ri) raises (ForwardRequest); }; local interface ServerRequestInterceptor : Interceptor { void receive_request_service_contexts (in ServerRequestInfo ri) raises (ForwardRequest); void receive_request (in ServerRequestInfo ri) raises (ForwardRequest); void send_reply (in ServerRequestInfo ri); void send_exception (in ServerRequestInfo ri) raises (ForwardRequest); void send_other (in ServerRequestInfo ri) raises (ForwardRequest); }; local interface IORInfo { CORBA::Policy get_effective_policy (in CORBA::PolicyType type); void add_ior_component (in IOP::TaggedComponent component); void add_ior_component_to_profile ( in IOP::TaggedComponent component, in IOP::ProfileId profile_id); }; local interface IORInterceptor : Interceptor { void establish_components (in IORInfo info); }; local interface PolicyFactory { CORBA::Policy create_policy (in CORBA::PolicyType type, in any value) raises (CORBA::PolicyError); }; local interface ORBInitInfo { typedef string ObjectId; exception DuplicateName { string name; }; exception InvalidName {}; readonly attribute CORBA::StringSeq arguments; readonly attribute string orb_id; // Shall not need this for starters // readonly attribute IOP_N::CodecFactory codec_factory; void register_initial_reference (in ObjectId id, in Object obj) raises (InvalidName); CORBA::Object resolve_initial_references (in ObjectId id) raises (InvalidName); void add_client_request_interceptor ( in ClientRequestInterceptor interceptor) raises (DuplicateName); void add_server_request_interceptor ( in ServerRequestInterceptor interceptor) raises (DuplicateName); void add_ior_interceptor (in IORInterceptor interceptor) raises (DuplicateName); SlotId allocate_slot_id (); void register_policy_factory ( in CORBA::PolicyType type, in PolicyFactory policy_factory); }; local interface ORBInitializer { void pre_init (in ORBInitInfo info); void post_init (in ORBInitInfo info); }; }; #endif /* _PORTABLE_INTERCEPTOR_IDL_ */