public AmazonSqsMessageConsumeTopology(IMessageTopology <TMessage> messageTopology, IAmazonSqsMessagePublishTopology <TMessage> publishTopology) { _messageTopology = messageTopology; _publishTopology = publishTopology; _specifications = new List <IAmazonSqsConsumeTopologySpecification>(); }
public Task <ISendTransport> CreatePublishTransport <T>(IClientContextSupervisor clientContextSupervisor) where T : class { LogContext.SetCurrentIfNull(_hostConfiguration.LogContext); IAmazonSqsMessagePublishTopology <T> publishTopology = _topologyConfiguration.Publish.GetMessageTopology <T>(); var settings = publishTopology.GetPublishSettings(_hostConfiguration.HostAddress); IPipe <ClientContext> configureTopology = new ConfigureTopologyFilter <EntitySettings>(settings, publishTopology.GetBrokerTopology()).ToPipe(); return(CreateTransport(clientContextSupervisor, configureTopology, settings.EntityName, x => new TopicSendTransport(x))); }
public Task <ISendTransport> GetPublishTransport <T>(Uri publishAddress) where T : class { IAmazonSqsMessagePublishTopology <T> publishTopology = _publishTopology.GetMessageTopology <T>(); var sendSettings = publishTopology.GetSendSettings(); IAgent <ModelContext> modelAgent = GetModelAgent(); var configureTopologyFilter = new ConfigureTopologyFilter <SendSettings>(sendSettings, publishTopology.GetBrokerTopology()); var sendTransport = new AmazonSqsSendTransport(modelAgent, configureTopologyFilter, sendSettings.EntityName); sendTransport.Add(modelAgent); _host.Add(sendTransport); return(Task.FromResult <ISendTransport>(sendTransport)); }
public Task <ISendTransport> CreatePublishTransport <T>() where T : class { IAmazonSqsMessagePublishTopology <T> publishTopology = _topology.Publish <T>(); var sendSettings = publishTopology.GetPublishSettings(); var clientContextSupervisor = new AmazonSqsClientContextSupervisor(_host.ConnectionContextSupervisor); var configureTopologyFilter = new ConfigureTopologyFilter <PublishSettings>(sendSettings, publishTopology.GetBrokerTopology()); var sendTransport = new TopicSendTransport(clientContextSupervisor, configureTopologyFilter, sendSettings.EntityName); sendTransport.Add(clientContextSupervisor); _host.Add(sendTransport); return(Task.FromResult <ISendTransport>(sendTransport)); }
public Task <ISendTransport> CreatePublishTransport <T>(IClientContextSupervisor supervisor) where T : class { LogContext.SetCurrentIfNull(_hostConfiguration.LogContext); IAmazonSqsMessagePublishTopology <T> publishTopology = _topologyConfiguration.Publish.GetMessageTopology <T>(); var settings = publishTopology.GetPublishSettings(_hostConfiguration.HostAddress); IPipe <ClientContext> configureTopology = new ConfigureTopologyFilter <PublishSettings>(settings, publishTopology.GetBrokerTopology()).ToPipe(); var transportContext = new SendTransportContext(_hostConfiguration, supervisor, configureTopology, settings.EntityName); var transport = new TopicSendTransport(transportContext); supervisor.AddSendAgent(transport); return(Task.FromResult <ISendTransport>(transport)); }
public Task <ISendTransport> CreatePublishTransport <T>() where T : class { IAmazonSqsMessagePublishTopology <T> publishTopology = _hostTopology.Publish <T>(); var settings = publishTopology.GetPublishSettings(_hostConfiguration.HostAddress); var clientContextSupervisor = new AmazonSqsClientContextSupervisor(ConnectionContextSupervisor); var configureTopologyPipe = new ConfigureTopologyFilter <PublishSettings>(settings, publishTopology.GetBrokerTopology()).ToPipe(); var transportContext = new HostSqsSendTransportContext(clientContextSupervisor, configureTopologyPipe, settings.EntityName, SendLogContext, _hostConfiguration.Settings.AllowTransportHeader); var transport = new TopicSendTransport(transportContext); Add(transport); return(Task.FromResult <ISendTransport>(transport)); }
public Task <ISendTransport> GetPublishTransport <T>(Uri publishAddress) where T : class { LogContext.SetCurrentIfNull(_hostConfiguration.LogContext); IAmazonSqsMessagePublishTopology <T> publishTopology = _topologyConfiguration.Publish.GetMessageTopology <T>(); var settings = publishTopology.GetPublishSettings(_hostConfiguration.HostAddress); var clientContextSupervisor = new ClientContextSupervisor(this); IPipe <ClientContext> configureTopologyPipe = new ConfigureTopologyFilter <PublishSettings>(settings, publishTopology.GetBrokerTopology()).ToPipe(); var transportContext = new SendTransportContext(clientContextSupervisor, configureTopologyPipe, settings.EntityName, _hostConfiguration.SendLogContext, _hostConfiguration.Settings.AllowTransportHeader); var transport = new TopicSendTransport(transportContext); Add(transport); return(Task.FromResult <ISendTransport>(transport)); }