public InMemoryReceiveTransport(Uri inputAddress, IInMemoryQueue queue, IPipe <ReceiveContext> receivePipe, IInMemoryExchange errorExchange,
                                        IInMemoryExchange deadLetterExchange, ReceiveEndpointContext topology)
        {
            _inputAddress = inputAddress;
            _queue        = queue;
            _topology     = topology;
            _receivePipe  = receivePipe;

            _errorTransport      = new InMemoryMessageErrorTransport(errorExchange);
            _deadLetterTransport = new InMemoryMessageDeadLetterTransport(deadLetterExchange);

            _receiveObservable   = new ReceiveObservable();
            _transportObservable = new ReceiveTransportObservable();

            _tracker = new DeliveryTracker(HandleDeliveryComplete);
        }
Esempio n. 2
0
        void ValidateBinding(IMessageSink <InMemoryTransportMessage> destination, IInMemoryExchange sourceExchange)
        {
            try
            {
                var graph = new DependencyGraph <IMessageSink <InMemoryTransportMessage> >(_exchanges.Count + 1);
                foreach (var exchange in _exchanges.Values)
                {
                    foreach (IMessageSink <InMemoryTransportMessage> sink in exchange.Sinks)
                    {
                        graph.Add(sink, exchange);
                    }
                }

                graph.Add(destination, sourceExchange);

                graph.EnsureGraphIsAcyclic();
            }
            catch (Exception exception)
            {
                throw new InvalidOperationException($"The exchange binding would create a cycle in the messaging fabric.", exception);
            }
        }
Esempio n. 3
0
 protected InMemoryMessageMoveTransport(IInMemoryExchange exchange)
 {
     _exchange = exchange;
 }
 public ExchangeInMemorySendTransportContext(IHostConfiguration hostConfiguration, IInMemoryExchange exchange)
     : base(hostConfiguration)
 {
     Exchange = exchange;
 }
 public InMemoryMessageDeadLetterTransport(IInMemoryExchange exchange)
     : base(exchange)
 {
 }
Esempio n. 6
0
 public InMemoryMessageErrorTransport(IInMemoryExchange exchange)
     : base(exchange)
 {
 }
Esempio n. 7
0
 public ExchangeInMemorySendTransportContext(IInMemoryExchange exchange, ILogContext logContext)
     : base(logContext)
 {
     Exchange = exchange;
 }
        public InMemorySendTransport(IInMemoryExchange exchange)
        {
            _exchange = exchange;

            _sendObservable = new SendObservable();
        }