Exemple #1
0
        public IPublishPipe <IPublishContext <IEvent> > Build()
        {
            IPublishPipe <IPublishContext <IEvent> > current = null;

            if (_specifications.Any())
            {
                for (int i = _specifications.Count - 1; i >= 0; i--)
                {
                    if (i == _specifications.Count - 1)
                    {
                        var thisPipe =
                            new PublishPipe <IPublishContext <IEvent> >(_specifications[i], null, _resolver);
                        current = thisPipe;
                    }
                    else
                    {
                        var thisPipe =
                            new PublishPipe <IPublishContext <IEvent> >(_specifications[i], current, _resolver);
                        current = thisPipe;
                    }
                }
            }
            else
            {
                current = new PublishPipe <IPublishContext <IEvent> >(new EmptyPipeSpecification <IPublishContext <IEvent> >(), null, _resolver);
            }

            return(current);
        }
Exemple #2
0
 public InMemoryPublishEndpointProvider(ISendEndpointProvider sendEndpointProvider, ISendTransportProvider transportProvider, IPublishPipe publishPipe)
 {
     _sendEndpointProvider = sendEndpointProvider;
     _publishPipe          = publishPipe;
     _host = transportProvider as InMemoryHost;
     _publishObservable = new PublishObservable();
 }
        public MediatorPublishSendEndpoint(ISendEndpoint endpoint, IPublishPipe publishPipe)
            : base(endpoint)
        {
            _publishPipe = publishPipe;

            _observers = new PublishObservable();
        }
 public InMemoryPublishEndpointProvider(ISendEndpointProvider sendEndpointProvider, ISendTransportProvider transportProvider, IPublishPipe publishPipe)
 {
     _sendEndpointProvider = sendEndpointProvider;
     _publishPipe = publishPipe;
     _transportCache = transportProvider as InMemoryTransportCache;
     _publishObservable = new PublishObservable();
 }
Exemple #5
0
        public PublishSendEndpoint(ISendEndpoint endpoint, IPublishPipe publishPipe)
        {
            _endpoint    = endpoint;
            _publishPipe = publishPipe;

            _observers = new PublishObservable();
        }
 public ServiceBusPublishEndpointProvider(IServiceBusHost host, ISendEndpointProvider sendEndpointProvider, IPublishPipe publishPipe)
 {
     _host = host;
     _sendEndpointProvider = sendEndpointProvider;
     _publishPipe = publishPipe;
     _nameFormatter = host.MessageNameFormatter;
     _publishObservable = new PublishObservable();
 }
Exemple #7
0
 public ServiceBusPublishEndpointProvider(IServiceBusHost host, ISendEndpointProvider sendEndpointProvider, IPublishPipe publishPipe)
 {
     _host = host;
     _sendEndpointProvider = sendEndpointProvider;
     _publishPipe          = publishPipe;
     _nameFormatter        = host.MessageNameFormatter;
     _publishObservable    = new PublishObservable();
 }
Exemple #8
0
 public PublishEndpointPipeAdapter(T message, IPublishPipe publishPipe, IPublishObserver observer, Uri sourceAddress, ConsumeContext consumeContext)
 {
     _pipe           = Pipe.Empty <PublishContext <T> >();
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _consumeContext = consumeContext;
 }
 public PublishPipeContextAdapter(IPublishPipe publishPipe, IPublishObserver observer, Uri sourceAddress, ConsumeContext consumeContext, T message)
 {
     _pipe           = Pipe.Empty <PublishContext <T> >();
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _consumeContext = consumeContext;
     _message        = message;
 }
Exemple #10
0
        public HttpPublishEndpointProvider(Uri hostAddress, IMessageSerializer serializer, ISendTransportProvider transportProvider, IPublishPipe publishPipe)
        {
            _hostAddress       = hostAddress;
            _serializer        = serializer;
            _transportProvider = transportProvider;
            _publishPipe       = publishPipe;

            _publishObservable = new PublishObservable();
        }
 public RabbitMqPublishEndpointProvider(IRabbitMqHost host, IMessageSerializer serializer, Uri sourceAddress, IPublishPipe publishPipe)
 {
     _host = host;
     _serializer = serializer;
     _sourceAddress = sourceAddress;
     _publishPipe = publishPipe;
     _cachedEndpoints = new LazyConcurrentDictionary<Type, ISendEndpoint>(CreateSendEndpoint);
     _publishObservable = new PublishObservable();
 }
 public PublishEndpointPipeAdapter(IPipe <PublishContext> pipe, IPublishPipe publishPipe, IPublishObserver observer, Uri sourceAddress,
                                   ConsumeContext consumeContext)
 {
     _pipe           = pipe;
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _consumeContext = consumeContext;
 }
 public PublishEndpoint(Uri sourceAddress, IPublishEndpointProvider endpointProvider, IPublishObserver publishObserver, IPublishPipe publishPipe, Guid?correlationId, Guid?conversationId)
 {
     _sourceAddress    = sourceAddress;
     _endpointProvider = endpointProvider;
     _publishObserver  = publishObserver;
     _publishPipe      = publishPipe;
     _correlationId    = correlationId;
     _conversationId   = conversationId;
 }
Exemple #14
0
 public RabbitMqPublishEndpointProvider(IRabbitMqHost host, IMessageSerializer serializer, Uri sourceAddress, IPublishPipe publishPipe)
 {
     _host              = host;
     _serializer        = serializer;
     _sourceAddress     = sourceAddress;
     _publishPipe       = publishPipe;
     _cachedEndpoints   = new LazyConcurrentDictionary <Type, ISendEndpoint>(CreateSendEndpoint);
     _publishObservable = new PublishObservable();
 }
Exemple #15
0
        public HttpPublishEndpointProvider(IHttpHost host, IMessageSerializer serializer, ISendTransportProvider transportProvider, IPublishPipe publishPipe)
        {
            _host              = host;
            _serializer        = serializer;
            _transportProvider = transportProvider;
            _publishPipe       = publishPipe;

            _publishObservable = new PublishObservable();
        }
 public PublishEndpoint(Uri sourceAddress, IPublishEndpointProvider endpointProvider, IPublishObserver publishObserver, IPublishPipe publishPipe,
                        ConsumeContext consumeContext)
 {
     _sourceAddress    = sourceAddress;
     _endpointProvider = endpointProvider;
     _publishObserver  = publishObserver;
     _publishPipe      = publishPipe;
     _consumeContext   = consumeContext;
 }
 public PublishPipeContextAdapter(IPublishPipe publishPipe, IPublishObserver observer, Uri sourceAddress, Guid?correlationId, Guid?conversationId)
 {
     _pipe           = Pipe.Empty <PublishContext <T> >();
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _correlationId  = correlationId;
     _conversationId = conversationId;
 }
Exemple #18
0
 public PublishEndpointPipeAdapter(T message, IPipe <PublishContext <T> > pipe, IPublishPipe publishPipe, PublishObservable observer, Uri sourceAddress,
                                   ConsumeContext consumeContext)
 {
     _message        = message;
     _pipe           = pipe;
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _consumeContext = consumeContext;
 }
 public PublishPipeContextAdapter(IPipe <PublishContext> pipe, IPublishPipe publishPipe, IPublishObserver observer, Uri sourceAddress, Guid?correlationId,
                                  Guid?conversationId, T message)
 {
     _pipe           = pipe;
     _publishPipe    = publishPipe;
     _observer       = observer;
     _sourceAddress  = sourceAddress;
     _correlationId  = correlationId;
     _conversationId = conversationId;
     _message        = message;
 }
        public HttpPublishEndpointProvider(IHttpHost host, IMessageSerializer serializer, ISendTransportProvider transportProvider, IPublishPipe publishPipe,
            ISendPipe sendPipe)
        {
            _host = host;
            _serializer = serializer;
            _transportProvider = transportProvider;
            _publishPipe = publishPipe;
            _sendPipe = sendPipe;

            _publishObservable = new PublishObservable();
        }
Exemple #21
0
        public RabbitMqPublishEndpointProvider(IRabbitMqHost host, IMessageSerializer serializer, Uri sourceAddress, IPublishPipe publishPipe)
        {
            _host          = host;
            _serializer    = serializer;
            _sourceAddress = sourceAddress;
            _publishPipe   = publishPipe;

            _publishObservable = new PublishObservable();

            var cache = new GreenCache <CachedSendEndpoint <Type> >(10000, TimeSpan.FromMinutes(1), TimeSpan.FromHours(24), () => DateTime.UtcNow);

            _index = cache.AddIndex("type", x => x.Key);
        }
Exemple #22
0
 public Mediator(ICommandReceivePipe <IReceiveContext <ICommand> > commandReceivePipe,
                 IEventReceivePipe <IReceiveContext <IEvent> > eventReceivePipe,
                 IRequestReceivePipe <IReceiveContext <IRequest> > requestPipe,
                 IPublishPipe <IPublishContext <IEvent> > publishPipe,
                 IGlobalReceivePipe <IReceiveContext <IMessage> > globalPipe, IDependancyScope scope = null)
 {
     _commandReceivePipe = commandReceivePipe;
     _eventReceivePipe   = eventReceivePipe;
     _requestPipe        = requestPipe;
     _publishPipe        = publishPipe;
     _globalPipe         = globalPipe;
     _scope = scope;
 }
Exemple #23
0
        public ServiceBusPublishEndpointProvider(IServiceBusHost host, ISendEndpointProvider sendEndpointProvider, IPublishPipe publishPipe,
                                                 IServiceBusPublishTopology publishTopology, IMessageSerializer serializer, Uri sourceAddress)
        {
            _host            = host;
            _publishPipe     = publishPipe;
            _publishTopology = publishTopology;
            _serializer      = serializer;
            _sourceAddress   = sourceAddress;

            _endpointCache = new SendEndpointCache(sendEndpointProvider);

            _publishObservable = new PublishObservable();
            _sendObservable    = new SendObservable();
        }
        public InMemoryReceiveEndpointTopology(IInMemoryEndpointConfiguration configuration, Uri inputAddress, IMessageSerializer serializer,
                                               ISendTransportProvider sendTransportProvider)
        {
            InputAddress           = inputAddress;
            _configuration         = configuration;
            _serializer            = serializer;
            _sendTransportProvider = sendTransportProvider;

            _sendPipe    = configuration.Send.CreatePipe();
            _publishPipe = configuration.Publish.CreatePipe();

            _sendEndpointProvider    = new Lazy <ISendEndpointProvider>(CreateSendEndpointProvider);
            _publishEndpointProvider = new Lazy <IPublishEndpointProvider>(CreatePublishEndpointProvider);
        }
Exemple #25
0
        public RabbitMqPublishEndpointProvider(IRabbitMqHost host, IMessageSerializer serializer, Uri sourceAddress, IPublishPipe publishPipe)
        {
            _host          = host;
            _serializer    = serializer;
            _sourceAddress = sourceAddress;
            _publishPipe   = publishPipe;

            _publishObservable = new PublishObservable();

            var cacheId = NewId.NextGuid().ToString();

            _cache = new LazyMemoryCache <Type, ISendEndpoint>(cacheId, CreateSendEndpoint, GetEndpointCachePolicy, FormatAddressKey,
                                                               OnCachedEndpointRemoved);
        }
Exemple #26
0
        public InMemoryPublishEndpointProvider(ISendTransportProvider transportProvider, IPublishPipe publishPipe, IInMemoryPublishTopology publishTopology,
                                               IMessageSerializer serializer, Uri sourceAddress)
        {
            _publishPipe       = publishPipe;
            _publishTopology   = publishTopology;
            _serializer        = serializer;
            _sourceAddress     = sourceAddress;
            _host              = transportProvider as InMemoryHost;
            _publishObservable = new PublishObservable();

            var cache = new GreenCache <CachedSendEndpoint <TypeKey> >(10000, TimeSpan.FromMinutes(1), TimeSpan.FromHours(24), () => DateTime.UtcNow);

            _index = cache.AddIndex("type", x => x.Key);
        }
Exemple #27
0
        public PublishEndpointProvider(IPublishTransportProvider transportProvider, Uri hostAddress, PublishObservable publishObservers,
                                       IMessageSerializer serializer, Uri sourceAddress, IPublishPipe publishPipe, IPublishTopology publishTopology)
        {
            _transportProvider = transportProvider;
            _hostAddress       = hostAddress;
            _serializer        = serializer;
            _sourceAddress     = sourceAddress;
            _publishPipe       = publishPipe;
            _publishTopology   = publishTopology;

            _publishObservers = publishObservers;

            _cache = new SendEndpointCache <Type>();
        }
        MediatorPublishEndpoint(IReceiveEndpointConfiguration configuration, IReceivePipeDispatcher dispatcher, ILogContext logContext,
                                SendObservable sendObservers)
        {
            _dispatcher    = dispatcher;
            _logContext    = logContext;
            _sendObservers = sendObservers;

            _destinationAddress = configuration.InputAddress;
            _publishTopology    = configuration.Topology.Publish;
            _receiveObservers   = configuration.ReceiveObservers;

            _publishPipe = configuration.Publish.CreatePipe();

            _observers = new PublishObservable();
        }
        public ServiceBusReceiveEndpointTopology(IServiceBusEndpointConfiguration configuration, Uri inputAddress, IMessageSerializer serializer,
                                                 IServiceBusHost host, ISendTransportProvider sendTransportProvider, BrokerTopology brokerTopology)
        {
            InputAddress           = inputAddress;
            _serializer            = serializer;
            _host                  = host;
            BrokerTopology         = brokerTopology;
            _sendTransportProvider = sendTransportProvider;

            _send    = configuration.Topology.Send;
            _publish = configuration.Topology.Publish;

            _sendPipe    = configuration.Send.CreatePipe();
            _publishPipe = configuration.Publish.CreatePipe();

            _sendEndpointProvider    = new Lazy <ISendEndpointProvider>(CreateSendEndpointProvider);
            _publishEndpointProvider = new Lazy <IPublishEndpointProvider>(CreatePublishEndpointProvider);
        }
        public HttpReceiveEndpointTopology(IHttpEndpointConfiguration configuration, Uri inputAddress, IMessageSerializer serializer, IHttpHost host,
                                           BusHostCollection <HttpHost> hosts)
        {
            InputAddress = inputAddress;
            _serializer  = serializer;
            _host        = host;
            _hosts       = hosts;

            _send    = configuration.Topology.Send;
            _publish = configuration.Topology.Publish;

            _consumePipe = configuration.Consume.CreatePipe();
            _sendPipe    = configuration.Send.CreatePipe();
            _publishPipe = configuration.Publish.CreatePipe();

            _sendEndpointProvider    = new Lazy <ISendEndpointProvider>(CreateSendEndpointProvider);
            _publishEndpointProvider = new Lazy <IPublishEndpointProvider>(CreatePublishEndpointProvider);
            _sendTransportProvider   = new Lazy <ISendTransportProvider>(CreateSendTransportProvider);
        }
        IPublishEndpointProvider CreatePublishEndpointProvider()
        {
            IPublishPipe publishPipe = _configuration.Publish.CreatePipe();

            return(new RabbitMqPublishEndpointProvider(_host, _serializer, InputAddress, publishPipe));
        }
Exemple #32
0
 public PublishPipeAdapter(IPublishPipe publishPipe)
 {
     _publishPipe = publishPipe;
     _pipe        = default;
 }
Exemple #33
0
 public PublishPipeAdapter(IPublishPipe publishPipe, IPipe <SendContext <T> > pipe)
 {
     _publishPipe = publishPipe;
     _pipe        = pipe;
 }
 public PublishPipeProxy(IPublishPipe publishPipe)
 {
     _publishPipe = publishPipe;
 }