private void IntializeForInterception(IInterceptionOption[] interceptionOptions) { // flow lifetime is bound to message lifetime, GiopClientRequest is only a wrapper around message and // can be recreated during message lifetime. m_interceptionFlow = (ClientRequestInterceptionFlow)SimpleGiopMsg.GetInterceptionFlow(m_requestMessage); if (m_interceptionFlow == null) { ClientRequestInterceptor[] interceptors = OrbServices.GetSingleton().InterceptorManager.GetClientRequestInterceptors(interceptionOptions); if (interceptors.Length == 0) { m_interceptionFlow = new ClientRequestInterceptionFlow(); } else { m_interceptionFlow = new ClientRequestInterceptionFlow(interceptors); } SimpleGiopMsg.SetInterceptionFlow(m_requestMessage, m_interceptionFlow); } if (m_interceptionFlow.NeedsRequestInfo()) { // optimization: needs not be created, if non-intercepted. m_clientRequestInfo = new ClientRequestInfoImpl(this); } }
/// <summary> /// updates the picurrent from the thread scope PICurrent /// </summary> internal void SetRequestPICurrentFromThreadScopeCurrent() { PICurrentImpl piCurrent = OrbServices.GetSingleton().PICurrentManager.CreateRequestScopeFromThreadScope(); SimpleGiopMsg.SetPICurrent(m_requestMessage, piCurrent); }