示例#1
0
        public void Handle(ReaderSubscriptionMessage.CommittedEventDistributed message)
        {
            Guid projectionId;

            if (_stopped)
            {
                return;
            }
            if (_runHeadingReader && _headingEventReader.Handle(message))
            {
                return;
            }
            if (!_eventReaderSubscriptions.TryGetValue(message.CorrelationId, out projectionId))
            {
                return; // unsubscribed
            }
            if (TrySubscribeHeadingEventReader(message, projectionId))
            {
                return;
            }
            if (message.Data != null) // means notification about the end of the stream/source
            {
                _subscriptions[projectionId].Handle(message);
            }
        }
        public void setup()
        {
            _exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(
                    _bus, _distibutionPointCorrelationId, new EventPosition(0, -1), new RealTimeProvider()));
            _point.Handle(
                new ProjectionCoreServiceMessage.CommittedEventDistributed(
                    _distibutionPointCorrelationId, new EventPosition(20, 10), "stream", 10, false,
                    ResolvedEvent.Sample(Guid.NewGuid(), "type", false, new byte[0], new byte[0])));
            _point.Handle(
                new ProjectionCoreServiceMessage.CommittedEventDistributed(
                    _distibutionPointCorrelationId, new EventPosition(40, 30), "stream", 11, false,
                    ResolvedEvent.Sample(Guid.NewGuid(), "type", false, new byte[0], new byte[0])));
            _subscription = new FakeProjectionSubscription();
            _projectionSubscriptionId = Guid.NewGuid();
            var subscribed = _point.TrySubscribe(_projectionSubscriptionId, _subscription, 30);
            Assert.IsTrue(subscribed); // ensure we really unsubscribing.. even if it is tested elsewhere
            _point.Unsubscribe(_projectionSubscriptionId);
        }
示例#3
0
        public void Handle(ReaderSubscriptionMessage.CommittedEventDistributed message)
        {
            Guid projectionId;

            if (_stopped)
            {
                return;
            }
            if (_runHeadingReader && _headingEventReader.Handle(message))
            {
                return;
            }
            if (!_eventReaderSubscriptions.TryGetValue(message.CorrelationId, out projectionId))
            {
                return;                 // unsubscribed
            }
            if (TrySubscribeHeadingEventReader(message, projectionId))
            {
                return;
            }
            if (message.Data != null)
            {
                try {
                    _subscriptions[projectionId].Handle(message);
                } catch (Exception ex) {
                    var subscription = _subscriptions[projectionId];
                    Handle(new ReaderSubscriptionManagement.Unsubscribe(subscription.SubscriptionId));
                    _publisher.Publish(new EventReaderSubscriptionMessage.Failed(subscription.SubscriptionId,
                                                                                 string.Format("The subscription failed to handle an event {0}:{1}@{2} because {3}",
                                                                                               message.Data.EventStreamId, message.Data.EventType, message.Data.EventSequenceNumber,
                                                                                               ex.Message)));
                }
            }
        }
        public void setup()
        {
            //_exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception)
            {
                //_exception = ex;
            }

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(
                    _ioDispatcher, _bus, _distibutionPointCorrelationId, null, new TFPos(0, -1), new RealTimeProvider()));
            DateTime timestamp = DateTime.UtcNow;
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(20, 10), "stream", 10, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0], timestamp));
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(40, 30), "stream", 11, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0], timestamp.AddMilliseconds(1)));
            _subscription = new FakeReaderSubscription();
            _projectionSubscriptionId = Guid.NewGuid();
            _point.TrySubscribe(_projectionSubscriptionId, _subscription, 30);
            _point.Handle(
                new ReaderSubscriptionMessage.EventReaderIdle(
                    _distibutionPointCorrelationId, timestamp.AddMilliseconds(1100)));
        }
        public void setup()
        {
            _exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }
            Assume.That(_exception == null);

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(_bus, _distibutionPointCorrelationId, null, new TFPos(0, -1), new RealTimeProvider()));
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(20, 10), "stream", 10, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0]));
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(40, 30), "stream", 11, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0]));
            _subscription = new FakeReaderSubscription();
            _projectionSubscriptionId = Guid.NewGuid();
            _point.TrySubscribe(_projectionSubscriptionId, _subscription, 30);
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(60, 50), "stream", 12, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0]));
        }
        public void setup()
        {
            _exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(
                    _bus, _distibutionPointCorrelationId, new EventPosition(0, -1), new RealTimeProvider()));
            DateTime timestamp = DateTime.UtcNow;
            _point.Handle(
                new ProjectionCoreServiceMessage.CommittedEventDistributed(
                    _distibutionPointCorrelationId, new EventPosition(20, 10), "stream", 10, false,
                    ResolvedEvent.Sample(Guid.NewGuid(), "type", false, new byte[0], new byte[0], timestamp)));
            _point.Handle(
                new ProjectionCoreServiceMessage.CommittedEventDistributed(
                    _distibutionPointCorrelationId, new EventPosition(40, 30), "stream", 11, false,
                    ResolvedEvent.Sample(Guid.NewGuid(), "type", false, new byte[0], new byte[0], timestamp.AddMilliseconds(1))));
            _subscription = new FakeProjectionSubscription();
            _projectionSubscriptionId = Guid.NewGuid();
            var subscribed = _point.TrySubscribe(_projectionSubscriptionId, _subscription, 30);
            _point.Handle(
                new ProjectionCoreServiceMessage.EventReaderIdle(
                    _distibutionPointCorrelationId, timestamp.AddMilliseconds(1100)));
        }
        public void setup()
        {
            _exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(
                    _ioDispatcher, _bus, _distibutionPointCorrelationId, null, new TFPos(0, -1), new RealTimeProvider()));
            _point.Handle(
                ReaderSubscriptionMessage.CommittedEventDistributed.Sample(
                    _distibutionPointCorrelationId, new TFPos(20, 10), "stream", 10, false, Guid.NewGuid(),
                    "type", false, new byte[0], new byte[0]));
        }
        public void setup()
        {
            _exception = null;
            try
            {
                _point = new HeadingEventReader(10);
            }
            catch (Exception ex)
            {
                _exception = ex;
            }

            _distibutionPointCorrelationId = Guid.NewGuid();
            _point.Start(
                _distibutionPointCorrelationId,
                new TransactionFileEventReader(
                    _bus, _distibutionPointCorrelationId, new EventPosition(0, -1), new RealTimeProvider()));
            _point.Handle(
                new ProjectionCoreServiceMessage.CommittedEventDistributed(
                    _distibutionPointCorrelationId, new EventPosition(20, 10), "stream", 10, false,
                    ResolvedEvent.Sample(Guid.NewGuid(), "type", false, new byte[0], new byte[0])));
        }