Пример #1
0
 /// <summary>
 /// Unsubscribes listener from filter events.
 /// </summary>
 /// <param name="listener">Listener.</param>
 public void RemoveListener(IEntityFilterListener listener)
 {
     for (int i = 0, iMax = _listenersCount; i < iMax; i++)
     {
         if (_listeners[i] == listener)
         {
             _listenersCount--;
             Array.Copy(_listeners, i + 1, _listeners, i, _listenersCount - i);
             break;
         }
     }
 }
Пример #2
0
 public void UnregisterListener(IEntityFilterListener <FilterDataT> listener, bool triggerForCurrentEntries = true)
 {
     if (_listeners.Remove(listener))
     {
         if (triggerForCurrentEntries)
         {
             FilterDataT[] allData = GetAllData();
             for (int i = 0, c = allData.Length; i < c; i++)
             {
                 listener.OnDataUnregistered(allData[i]);
             }
         }
     }
 }
Пример #3
0
 public void RegisterListener(IEntityFilterListener <FilterDataT> listener, bool triggerForCurrentEntries = true)
 {
     if (!_listeners.Contains(listener))
     {
         _listeners.Add(listener);
         if (triggerForCurrentEntries)
         {
             FilterDataT[] allData = GetAllData();
             for (int i = 0, c = allData.Length; i < c; i++)
             {
                 listener.OnDataRegistered(allData[i]);
             }
         }
     }
 }
Пример #4
0
        /// <summary>
        /// Subscribes listener to filter events.
        /// </summary>
        /// <param name="listener">Listener.</param>
        public void AddListener(IEntityFilterListener listener)
        {
#if DEBUG
            for (int i = 0, iMax = _listenersCount; i < iMax; i++)
            {
                if (_listeners[i] == listener)
                {
                    throw new Exception("Listener already subscribed.");
                }
            }
#endif
            if (_listeners.Length == _listenersCount)
            {
                Array.Resize(ref _listeners, _listenersCount << 1);
            }
            _listeners[_listenersCount++] = listener;
        }
Пример #5
0
 public void UnregisterListener(IEntityFilterListener <FilterDataT, FilterRefresherT> listener, bool triggerForCurrentEntries = true)
 {
     UnregisterListener((IEntityFilterListener <FilterDataT>)listener, triggerForCurrentEntries);
 }