Esempio n. 1
0
        public InterDomainMessageResponse ProcessMessage(IInterDomainMessage message)
        {
            InterDomainMessageResponse ret = null;
            RoutedInterDomainMessage ridm = (RoutedInterDomainMessage)message;
            lock (_myRoutes)
            {
                foreach (sRoute srt in ridm.HandlerRoutes)
                {
                    if (_myRoutes.Contains(srt))
                    {
                        if (_messageController.HandlesMessage(ridm))
                        {
                            ret = new InterDomainMessageResponse(ridm, _messageController.ProcessMessage(ridm));
                            break;
                        }
                    }
                }
            }
            if (ret == null)
            {
                lock (_subRoutes)
                {
                    foreach (sRoute srt in ridm.HandlerRoutes)
                    {
                        if (_subRoutes.ContainsKey(srt))
                        {
                            foreach (Core cr in _subRoutes[srt])
                            {
                                if (cr.HandlesMessage(ridm))
                                {
                                    ret = cr.ProcessMessage(ridm);
                                    break;
                                }
                            }
                            if (ret != null)
                                break;

                        }
                    }
                }
            }
            return ret;
        }
Esempio n. 2
0
 public void InterceptResponse(ref InterDomainMessageResponse response)
 {
     RoutedInterDomainMessage ridm = (RoutedInterDomainMessage)response.Message;
     lock (_myRoutes)
     {
         foreach (sRoute srt in ridm.PostInterceptRoutes)
         {
             if (_myRoutes.Contains(srt))
             {
                 if (_messageController.InterceptsResponse(response))
                     _messageController.InterceptResponse(ref response);
                 break;
             }
         }
     }
     List<Core> subCores = new List<Core>();
     lock (_subRoutes)
     {
         foreach (sRoute srt in ridm.PostInterceptRoutes)
         {
             if (_subRoutes.ContainsKey(srt))
             {
                 foreach (Core cr in _subRoutes[srt])
                 {
                     if (!subCores.Contains(cr))
                         subCores.Add(cr);
                 }
             }
         }
         foreach (Core cr in subCores)
             cr.InterceptResponse(ref response);
     }
 }
 internal InterDomainMessageResponse(InterDomainMessageResponse response, object result)
 {
     _parent = response;
     _response = result;
     _interceptors = new List<sInterceptor>();
 }
 internal static InterDomainMessageResponse SwapResponse(InterDomainMessageResponse response, object result)
 {
     InterDomainMessageResponse ret = new InterDomainMessageResponse(response, result);
     return ret;
 }
Esempio n. 5
0
        internal static InterDomainMessageResponse SwapResponse(InterDomainMessageResponse response, object result)
        {
            InterDomainMessageResponse ret = new InterDomainMessageResponse(response, result);

            return(ret);
        }
Esempio n. 6
0
 internal InterDomainMessageResponse(InterDomainMessageResponse response, object result)
 {
     _parent       = response;
     _response     = result;
     _interceptors = new List <sInterceptor>();
 }