コード例 #1
0
        public AmazonSqsMessageConsumeTopology(IMessageTopology <TMessage> messageTopology, IAmazonSqsMessagePublishTopology <TMessage> publishTopology)
        {
            _messageTopology = messageTopology;
            _publishTopology = publishTopology;

            _specifications = new List <IAmazonSqsConsumeTopologySpecification>();
        }
コード例 #2
0
        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)));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
        }
コード例 #6
0
        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));
        }
コード例 #7
0
        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));
        }