public T Get <T>(Message key) where T : class
 {
     try
     {
         _rwl.AcquireReaderLock(10000);
         IChannelListener listener = null;
         if (_listeners.GetMatchingValue(key, out listener) && (listener is T))
         {
             return(listener as T);
         }
         throw new Exception(string.Format("The listener doesn't exist for {0}", key.Headers.To.AbsoluteUri));
     }
     finally
     {
         _rwl.ReleaseLock();
     }
 }
Beispiel #2
0
        protected IServiceDispatcher MatchDispatcher(Message message)
        {
            IServiceDispatcher matchingDispatcher = null;

            lock (ThisLock)
            {
                if (_filterTable.GetMatchingValue(message, out matchingDispatcher))
                {
                    return(matchingDispatcher);
                }
            }

            return(null);
        }
 protected override bool ExecuteWhere(Message target, Message messageToReadHeaders, MessageFilterTable <SelectRuntime> whereRuntime,
                                      out SelectRuntime select)
 {
     // messageToReadHeaders is not used in case of MessageCalculator
     return(whereRuntime.GetMatchingValue(target, out select));
 }
Beispiel #4
0
 protected override bool ExecuteWhere(Message target, Message messageToReadHeaders, MessageFilterTable <CorrelationKeyCalculator.SelectRuntime> whereRuntime, out CorrelationKeyCalculator.SelectRuntime select)
 {
     return(whereRuntime.GetMatchingValue(target, out select));
 }
 protected override bool ExecuteWhere(MessageBuffer target, Message messageToReadHeaders, MessageFilterTable <SelectRuntime> whereRuntime,
                                      out SelectRuntime select)
 {
     return(whereRuntime.GetMatchingValue(target, messageToReadHeaders, out select));
 }