public void AddEventListener( string namespaceUri, string eventType, object eventGroup, EventListener listener) { EventListenerMapEntry[] entries = GrowBy(1); for (int i = 0; i < count; i++) { if (namespaceUri != entries[i].NamespaceUri) { continue; } if (eventType != entries[i].Type) { continue; } if (listener == entries[i].Listener) { return; } } entries[count] = new EventListenerMapEntry( namespaceUri, eventType, eventGroup, listener, locked); count++; }
public void RemoveEventListener( string namespaceUri, string eventType, EventListener listener) { if (entries == null) { return; } for (int i = 0; i < count; i++) { if (namespaceUri != entries[i].NamespaceUri) { continue; } if (eventType != entries[i].Type) { continue; } if (listener == entries[i].Listener) { count--; entries[i] = entries[count]; entries[count] = new EventListenerMapEntry(); return; } } }
private EventListenerMapEntry[] GrowBy( int growth) { if (entries == null) { entries = new EventListenerMapEntry[ growth * GrowthFactor + GrowthBuffer]; this.count = 0; this.locked = false; return(entries); } int newCount = count + growth; if (newCount > entries.Length) { newCount = newCount * GrowthFactor + GrowthBuffer; EventListenerMapEntry[] newEntries = new EventListenerMapEntry[newCount]; Array.Copy(entries, 0, newEntries, 0, entries.Length); entries = newEntries; } return(entries); }
private EventListenerMapEntry[] GrowBy( int growth) { if (entries == null) { entries = new EventListenerMapEntry[ growth * GrowthFactor + GrowthBuffer]; this.count = 0; this.locked = false; return entries; } int newCount = count + growth; if (newCount > entries.Length) { newCount = newCount * GrowthFactor + GrowthBuffer; EventListenerMapEntry[] newEntries = new EventListenerMapEntry[newCount]; Array.Copy(entries, 0, newEntries, 0, entries.Length); entries = newEntries; } return entries; }