Previous Table of Contents Next


21.5.4 IORInterceptor Interface


   local interface IORInterceptor : Interceptor { void establish_components (in IORInfo info); };

   local interface IORInterceptor_3_0 : IORInterceptor { void components_established( in IORInfo info ) ;

   void adapter_manager_state_changed( in AdapterManagerId id, in AdapterState state );

   void adapter_state_changed( in ObjectReferenceTemplateSeq templates, in AdapterState state ) ; };

   21.5.4.1 establish_components

   A server side ORB calls the establish_components operation on all registered IORInterceptor instances when it is assembling the list of components that will be included in the profile or profiles of an object reference. This operation is not necessarily called for each individual object reference. In the case of the POA, these calls are made each time POA::create_POA is called. In other adapters, these calls would typically be made when the adapter is initialized. The adapter template is not available at this stage since information (the components) needed in the adapter template is being constructed.

   An implementation of establish_components must not throw exceptions. If it does, the ORB shall ignore the exception and proceed to call the next IOR Interceptor’s establish_components operation.

Parameters

info The IORInfo instance used by the ORB service to query applicable policies and add components to be included in the generated IORs.

   21.5.4.2 components_established

   After all of the establish_components methods have been called, the components_established methods are called on all registered IORInterceptor_3_0 instances. The adapter template is available at this stage. The current_factory attribute may be get or set at this stage.

   Any exception that occurs in components_established is returned to the caller of components_established. In the case of the POA, this causes the create_POA call to fail, and an OBJ_ADAPTER exception with a standard minor code of 6 is returned to the invoker of create_POA.

   21.5.4.3 adapter_manager_state_changed

   Any time the state of an adapter manager changes, the adapter_manager_state_changed method is invoked on all registered IORInterceptor_3_0 instances.

   If a state change is reported through adapter_manager_state_changed, it is not reported through adapter_state_changed.

   21.5.4.4 adapter_state_changed

   Adapter state changes unrelated to adapter manager state changes are reported by invoking the adapter_state_changed method on all registered IORInterceptor_3_0 instances. The templates argument identifies the object adapters that have changed state by the template ID information. The sequence contains the adapter templates for all object adapters that have made the state transition being reported.