Ejemplo n.º 1
0
        public bool IsEventListenerRegistered(IEventObserver observer, EventId id)
        {
            EventObservers eventObservers = this.eventIdToObservers[(int)id];

            if (eventObservers == null)
            {
                return(false);
            }
            EventObserverPriorityList list = eventObservers.List;

            return(list.IndexOf(observer) >= 0);
        }
Ejemplo n.º 2
0
        public void UnregisterObserver(IEventObserver observer, EventId id)
        {
            EventObservers eventObservers = this.eventIdToObservers[(int)id];

            if (eventObservers != null)
            {
                EventObserverPriorityList list = eventObservers.List;
                MutableIterator           iter = eventObservers.Iter;
                int num = list.IndexOf(observer);
                if (num >= 0)
                {
                    list.RemoveAt(num);
                    iter.OnRemove(num);
                    if (list.Count == 0)
                    {
                        this.eventIdToObservers[(int)id] = null;
                    }
                }
            }
        }
Ejemplo n.º 3
0
        public void RegisterObserver(IEventObserver observer, EventId id, EventPriority priority)
        {
            if (observer == null)
            {
                return;
            }
            EventObservers eventObservers = this.eventIdToObservers[(int)id];

            if (eventObservers == null)
            {
                eventObservers = new EventObservers();
                this.eventIdToObservers[(int)id] = eventObservers;
            }
            EventObserverPriorityList list = eventObservers.List;

            if (list.IndexOf(observer) < 0)
            {
                list.Add(observer, (int)priority);
            }
        }
Ejemplo n.º 4
0
        public void SendEvent(EventId id, object cookie)
        {
            EventObservers eventObservers = this.eventIdToObservers[(int)id];

            if (eventObservers != null)
            {
                EventObserverPriorityList list = eventObservers.List;
                MutableIterator           iter = eventObservers.Iter;
                iter.Init(list.Count);
                while (iter.Active())
                {
                    IEventObserver element = list.GetElement(iter.Index);
                    if (element.OnEvent(id, cookie) == EatResponse.Eaten)
                    {
                        break;
                    }
                    iter.Next();
                }
                iter.Reset();
            }
        }