Esempio n. 1
0
        public void OnSubscribeTo(ISubscribeTo added)
        {
            lock (_ids)
            {
                bool wasAdded = _ids.Add(added.SubscriptionId);

                if (!wasAdded || _ids.Count != 1)
                {
                    return;
                }
            }

            _subscriptionId = NewIds.NewId.NextGuid();
            _endpointUri    = added.EndpointUri;

            var add = new SubscriptionAddedMessage
            {
                SubscriptionId = _subscriptionId,
                EndpointUri    = _endpointUri,
                MessageName    = _messageName,
                CorrelationId  = _correlationId,
            };

            _log.DebugFormat("SubscribeTo: {0}, {1}", _messageName, _subscriptionId);

            _observer.OnSubscriptionAdded(add);
        }
Esempio n. 2
0
 /// <summary>
 /// Adds an object that subscribes to the specified event, by virtue of implementing
 /// the ISubscribeTo interface.
 /// </summary>
 public void AddSubscriberFor <E>(ISubscribeTo <E> subscriber) where E : IDomainEvent
 {
     if (!_subscribers.ContainsKey(typeof(E)))
     {
         _subscribers.Add(typeof(E), new List <Action <object> >());
     }
     _subscribers[typeof(E)].Add(e => subscriber.Handle((E)e));
 }
Esempio n. 3
0
 /// <summary>
 ///     Adds an object that subscribes to the specified event, by virtue of implementing
 ///     the ISubscribeTo interface.
 /// </summary>
 /// <typeparam name="TEvent"></typeparam>
 /// <param name="subscriber"></param>
 public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber)
 {
     if (!_eventSubscribers.ContainsKey(typeof(TEvent)))
     {
         _eventSubscribers.Add(typeof(TEvent), new List <Action <object> >());
     }
     _eventSubscribers[typeof(TEvent)].Add(e => subscriber.Handle((TEvent)e));
 }
Esempio n. 4
0
        private void SendXEventsNSecondsApart(ISubscribeTo <LogEventData> sut, int numberOfEvents, int secondsBetweenEvents = 0)
        {
            var firstEventTime = Some.UtcTimestamp();

            for (var i = 0; i < numberOfEvents; i++)
            {
                var eventTime = firstEventTime + TimeSpan.FromSeconds(i * secondsBetweenEvents);
                var @event    = Some.LogEvent(timestamp: eventTime);
                sut.On(@event);
            }
        }
Esempio n. 5
0
        public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber)
        {
            if (!_eventSubscribers.ContainsKey(typeof(TEvent)))
            {
                _eventSubscribers.Add(typeof(TEvent), new List <Action <object> >());
            }

            _eventSubscribers[typeof(TEvent)].Add(e => subscriber.Handle((TEvent)e));
            _logger.Debug(
                $"Registered event subscriber '{subscriber.GetType().Name}' for event type '{typeof(TEvent).Name}'");
        }
Esempio n. 6
0
        /// <summary>
        /// Adds an object that subscribes to the specified event, by virtue of implementing
        /// the ISubscribeTo interface.
        /// </summary>
        /// <typeparam name="TEvent"></typeparam>
        /// <param name="subscriber"></param>
        public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) where TEvent : Event
        {
            List <Action <Event> > subscribers;

            if (!_eventSubscribers.TryGetValue(typeof(TEvent), out subscribers))
            {
                subscribers = new List <Action <Event> >();
                _eventSubscribers.Add(typeof(TEvent), subscribers);
            }
            subscribers.Add(evt => subscriber.Handle((TEvent)evt));
        }
        /// <summary>
        /// Adds an object that subscribes to the specified event, by virtue of implementing
        /// the ISubscribeTo interface.
        /// </summary>
        /// <typeparam name="TEvent"></typeparam>
        /// <param name="subscriber"></param>
        public void AddSubscriberFor <TEvent>(ISubscribeTo <TEvent> subscriber) where TEvent : IEvent
        {
            List <Action <IEvent> > callbacks;

            if (!eventSubscribers.TryGetValue(typeof(TEvent), out callbacks))
            {
                eventSubscribers.Add(typeof(TEvent), callbacks = new List <Action <IEvent> >());
            }

            callbacks.Add(e => subscriber.Handle((TEvent)e));
        }
Esempio n. 8
0
        public void OnSubscribeTo(ISubscribeTo message)
        {
            var key = new SubscriptionKey(message.MessageName, message.CorrelationId);

            BusSubscription subscription = _subscriptions.Get(key);

            if (_log.IsDebugEnabled)
            {
                _log.DebugFormat("SubscribeTo: {0}, {1}", message.MessageName, message.SubscriptionId);
            }

            subscription.OnSubscribeTo(message);
        }
Esempio n. 9
0
        private void SendXEventsNSecondsApart(ISubscribeTo<LogEventData> sut, int numberOfEvents, int secondsBetweenEvents = 0)
        {
            var firstEventTime = Some.UtcTimestamp();

            for (var i = 0; i < numberOfEvents; i++)
            {
                var eventTime = firstEventTime + TimeSpan.FromSeconds(i * secondsBetweenEvents);
                var @event = Some.LogEvent(timestamp: eventTime);
                sut.On(@event);
            }
        }