// QoS4CCM IDL file resulting from RTF report ptc/08-05-19 #include module Components { module ContainerPortableInterceptor { struct CustomSlotItem { string identifier; any content; }; typeid CustomSlotItem "IDL:omg.org/Components/ContainerPortableInterceptor/CustomSlotItem:1.1"; typedef sequence CustomSlotItemSeq; typeid CustomSlotItemSeq "IDL:omg.org/Components/ContainerPortableInterceptor/CustomSlotItemSeq:1.1"; struct COPIServiceContext { CORBA::OctetSeq origin_id; CORBA::OCtetSeq target_id; CustomSlotItemSeq slot_info; }; typeid COPIServiceContext "IDL:omg.org/Components/ContainerPortableInterceptor/COPIServiceContext:1.1"; typedef sequence CustomSlotItemSeq; struct IntegrationPoint { string port; string operation; }; local interface ContainerRequestInfo { readonly attribute CORBA::OctetSeq origin_id; readonly attribute CORBA::OctetSeq target_id; readonly attribute FeatureName name; }; local interface ContainerClientRequestInfo : ContainerRequestInfo { PortableInterceptor::ClientRequestInfo request_info(); }; local interface ContainerServerRequestInfo : ContainerRequestInfo { PortableInterceptor::ServerRequestInfo request_info(); }; local interface ContainerStubRequestInfo : ContainerRequestInfo { attribute Dynamic::ParameterList arguments; readonly attribute string operation; attribute any result; attribute Object target; attribute any the_exception; }; local interface ContainerServantRequestInfo : ContainerRequestInfo { attribute Dynamic::ParameterList arguments; readonly attribute string operation; attribute any result; attribute Components::EnterpriseComponent target; attribute any the_exception; }; local interface ContainerInterceptor { readonly attribute string name; attribute unsigned short priority; attribute IntegrationPoint registration_info; void destroy (); void set_slot_id(in PortableInterceptor::SlotId slot_id); }; local interface ClientContainerInterceptor : ContainerInterceptor { void send_request (in ContainerClientRequestInfo info) raises (PortableInterceptor::ForwardRequest); void send_poll (in ContainerClientRequestInfo info); void receive_reply (in ContainerClientRequestInfo info); void receive_exception (in ContainerClientRequestInfo info) raises (PortableInterceptor::ForwardRequest); void receive_other (in ContainerClientRequestInfo info) raises (PortableInterceptor::ForwardRequest); }; local interface ServerContainerInterceptor : ContainerInterceptor { void receive_request_service_contexts ( in ContainerServerRequestInfo csi ) raises (PortableInterceptor::ForwardRequest); void receive_request ( in ContainerServerRequestInfo info ) raises (PortableInterceptor::ForwardRequest); void send_reply ( in ContainerServerRequestInfo info ); void send_exception ( in ContainerServerRequestInfo info ) raises (PortableInterceptor::ForwardRequest); void send_other ( in ContainerServerRequestInfo info ) raises (PortableInterceptor::ForwardRequest); }; local interface StubContainerInterceptor : ContainerInterceptor { void stub_send_request ( in ContainerStubRequestInfo info, out boolean con) raises (PortableInterceptor::ForwardRequest); void stub_receive_reply ( in ContainerStubRequestInfo info, out boolean con); void stub_receive_exception ( in ContainerStubRequestInfo info, out boolean con) raises(PortableInterceptor::ForwardRequest); void stub_receive_other ( in ContainerStubRequestInfo info) raises(PortableInterceptor::ForwardRequest); }; local interface ServantContainerInterceptor : ContainerInterceptor { void servant_receive_request ( in ContainerServantRequestInfo info, out boolean proceed_call) raises (PortableInterceptor::ForwardRequest); void servant_send_reply ( in ContainerServantRequestInfo info, out boolean proceed_call); void servant_send_exception ( in ContainerServantRequestInfo info, out boolean proceed_call) raises (PortableInterceptor::ForwardRequest); void servant_send_other ( in ContainerServantRequestInfo info) raises (PortableInterceptor::ForwardRequest); }; exception InvalidRegistration { }; local interface ClientContainerInterceptorRegistration { Components::Cookie register_client_interceptor ( in ClientContainerInterceptor ci); ClientContainerInterceptor unregister_client_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; local interface ServerContainerInterceptorRegistration { Components::Cookie register_server_interceptor ( in ServerContainerInterceptor ci) ; ServerContainerInterceptor unregister_server_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; local interface StubContainerInterceptorRegistration { Components::Cookie register_stub_interceptor ( in StubContainerInterceptor ci); StubContainerInterceptor unregister_stub_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; local interface ServantContainerInterceptorRegistration { Components::Cookie register_servant_interceptor ( in ServantContainerInterceptor ci) ; ServantContainerInterceptor unregister_servant_interceptor ( in Components::Cookie ck) raises(InvalidRegistration); }; }; // end ContainerPortableinterceptor local interface ExtensionContext : CCMContext { Components::ContainerPortableInterceptor::ClientContainerInterceptorRegistration get_client_interceptor_registration () raises (CCMException); Components::ContainerPortableInterceptor::ServerContainerInterceptorRegistration get_server_interceptor_registration () raises (CCMException); Components::ContainerPortableInterceptor::StubContainerInterceptorRegistration get_stub_interceptor_registration() raises (CCMException); Components::ContainerPortableInterceptor::ServantContainerInterceptorRegistration get_servant_interceptor_registration() raises (CCMException); Cookie install_service_reference( in string service_id, in Object objref) raises (CCMException); Object uninstall_service_reference(in Cookie ck) raises (CCMException); Components::QoS::QoSPropertyInstanceRegistration get_qos_property_registration() raises (CCMException); Object get_CCM_object(); }; local interface ExtensionComponent : EnterpriseComponent { void set_extension_context (in ExtensionContext ctx) raises (CCMException); void ccm_remove () raises (CCMException); }; module QoS { struct QoSInstance { string dimension; any value; }; typedef sequence QoSInstances; local interface QoSPropertyInstance { readonly attribute string functionality; attribute QoSInstances qos_instances; void activate( in string operation, in Dynamic::ParameterList parameters); void deactivate( in string operation, in Dynamic::ParameterList parameters); }; local interface QoSPropertyInstanceRegistration { Cookie register_qos_property( in QoSPropertyInstance instance ); void unregister_qos_property( in Cookie ck ) raises(Components::InvalidRegistration ); }; struct QoSConstraint { string characteristic; QoSInstances instances; }; typedef sequence QoSConstraints; interface Negotiation { Components::Cookie require_qos( in QoSConstraints requirements, in CORBA::OctetSeq client_id) raises (CCMException); void release_qos (in Components::Cookie ck); }; local interface QoSUsage : ExtensionComponent { readonly attribute string characteristic; Cookie install_qos_property( in QoSInstances instances ) raises(CCMException); void uninstall_qos_property( in Cookie ck ) ; }; }; // end module QoS }; // end module Components