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(); } }
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)); }
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)); }