public void AddListener(string name, EventListener listener) { assert.IsNotNull(name); assert.IsNotNull(listener); if (listenersLookup == null) { listenersLookup = new Dictionary <string, EventListenerList>(); } EventListenerList list; if (!listenersLookup.TryGetValue(name, out list)) { list = new EventListenerList(); listenersLookup[name] = list; } list.Add(listener); }
public void DispatchEvent(object sender, string name, object data) { assert.IsNotNull(sender); assert.IsNotNull(name); EventListenerList list = FindEventListenerList(name); if (list != null) { Event evt = eventPool.Take(); if (evt == null) { evt = new Event(); } evt.sender = sender; evt.name = name; evt.data = data; list.Dispatch(evt); eventPool.Put(evt); } }