Example #1
0
        public void Subscribe(Guid id, SubscribeMode mode)
        {
            Subscribers.AddOrUpdate(id, new Subscriber {
                Id = id, Mode = mode
            }, (s, u) => new Subscriber {
                Id = id, Mode = mode
            });

            if (mode == SubscribeMode.PermanentConsumer)
            {
                Persistence.SaveQueue(this);
            }
        }
Example #2
0
        public void Subscribe(EventType kind, IEventHandler handler)
        {
            if (handler == null || string.IsNullOrWhiteSpace(handler.HandlerKey))
            {
                throw new ArgumentNullException("handler");
            }

            Subscribers.AddOrUpdate(kind, new List <IEventHandler>(10)
            {
                handler
            }, (key, list) =>
            {
                var index = list.FindIndex(m => m == handler);
                if (index == -1)
                {
                    list.Add(handler);
                }
                return(list);
            });

            Timer.Start();
        }