private ISendingAgent buildAgent(LocalQueueSettings queue, IMessagingRoot root) { return(queue.IsDurable ? (ISendingAgent) new DurableLocalSendingAgent(queue, root.Pipeline, root.Settings, root.Persistence, root.TransportLogger, root.Serialization, root.MessageLogger) : new LightweightLocalSendingAgent(queue, root.TransportLogger, root.Pipeline, root.Settings, root.MessageLogger)); }
private ISendingAgent buildAgent(LocalQueueSettings queue, IMessagingRoot root) { switch (queue.Mode) { case EndpointMode.BufferedInMemory: return(new LightweightLocalSendingAgent(queue, root.TransportLogger, root.Pipeline, root.Settings, root.MessageLogger)); case EndpointMode.Durable: return(new DurableLocalSendingAgent(queue, root.Pipeline, root.Settings, root.Persistence, root.TransportLogger, root.Serialization, root.MessageLogger)); case EndpointMode.Inline: throw new NotImplementedException(); default: throw new InvalidOperationException(); } }
private ISendingAgent addQueue(IMessagingRoot root, ITransportRuntime runtime, LocalQueueSettings queue) { queue.Agent = buildAgent(queue, root); _agents = _agents.AddOrUpdate(queue.Name, buildAgent(queue, root)); runtime.AddSendingAgent(buildAgent(queue, root)); runtime.AddSubscriber(queue); return(queue.Agent); }