Exemplo n.º 1
0
        private ListEntryDerived FindEntry(object key)
        {
            ListEntryDerived entry = entries;

            while (entry != null)
            {
                if (entry.key == key)
                {
                    return(entry);
                }
                entry = entry.next;
            }

            return(null);
        }
Exemplo n.º 2
0
        public void AddHandlers(EventHandlerListDerived listToAddFrom)
        {
            if (listToAddFrom == null)
            {
                return;
            }

            ListEntryDerived entry = listToAddFrom.entries;

            while (entry != null)
            {
                AddHandler(entry.key, entry.value);
                entry = entry.next;
            }
        }
Exemplo n.º 3
0
        public void RemoveHandler(object key, Delegate value)
        {
            if (key == null)
            {
                null_entry = Delegate.Remove(null_entry, value);
                return;
            }

            ListEntryDerived entry = FindEntry(key);

            if (entry == null)
            {
                return;
            }

            entry.value = Delegate.Remove(entry.value, value);
        }
Exemplo n.º 4
0
        public void AddHandler(object key, Delegate value)
        {
            if (key == null)
            {
                null_entry = Delegate.Combine(null_entry, value);
                return;
            }

            ListEntryDerived entry = FindEntry(key);

            if (entry == null)
            {
                entry       = new ListEntryDerived();
                entry.key   = key;
                entry.value = null;
                entry.next  = entries;
                entries     = entry;
            }

            entry.value = Delegate.Combine(entry.value, value);
        }
Exemplo n.º 5
0
        public Delegate this [object key] {
            get {
                if (key == null)
                {
                    return(null_entry);
                }
                ListEntryDerived entry = FindEntry(key);
                if (entry != null)
                {
                    return(entry.value);
                }
                else
                {
                    return(null);
                }
            }

            set {
                AddHandler(key, value);
            }
        }
Exemplo n.º 6
0
 public void Dispose()
 {
     entries = null;
 }