public IEnumerable<IMessagePump> CreateAll() { _logger.Debug("Creating request message pumps"); var requestTypes = _requestHandlerTypes.Value.SelectMany(ht => ht.GetGenericInterfacesClosing(typeof (IHandleRequest<,>))) .Select(gi => gi.GetGenericArguments().First()) .OrderBy(t => t.FullName) .Distinct() .ToArray(); foreach (var requestType in requestTypes) { _logger.Debug("Creating message pump for request type {0}", requestType.Name); var queuePath = PathFactory.QueuePathFor(requestType); var messageReceiver = new NimbusQueueMessageReceiver(_queueManager, queuePath, _concurrentHandlerLimit); _garbageMan.Add(messageReceiver); var dispatcher = new RequestMessageDispatcher(_messagingFactory, requestType, _requestHandlerFactory, _clock); _garbageMan.Add(dispatcher); var pump = new MessagePump(messageReceiver, dispatcher, _logger, _clock); _garbageMan.Add(pump); yield return pump; } }
public IMessagePump Create() { var receiver = new NimbusQueueMessageReceiver(_queueManager, _replyQueueName, _concurrentHandlerLimit, _logger); _garbageMan.Add(receiver); var pump = new MessagePump(_clock, _dispatchContextManager, _logger, _messageDispatcher, receiver, _taskFactory); _garbageMan.Add(pump); return pump; }
public IMessagePump Create() { var receiver = new NimbusQueueMessageReceiver(_queueManager, _replyQueueName, _concurrentHandlerLimit); _garbageMan.Add(receiver); var pump = new MessagePump(receiver, _dispatcher, _logger, _clock); _garbageMan.Add(pump); return pump; }
private INimbusMessageReceiver CreateQueueReceiver(string queuePath) { var receiver = new NimbusQueueMessageReceiver(_queueManager, queuePath, _concurrentHandlerLimit, _logger); _garbageMan.Add(receiver); return receiver; }