Exemplo n.º 1
0
    public void Dispatch(int eventType)
    {
        if (_listeners == null)
        {
            return;                            //we have no listeners so don't dispatch anything!
        }
        for (int n = 0; n < _listeners.Count; n++)
        {
            RXSignalListener listener = _listeners[n];

            if (listener.eventType == eventType)
            {
                if (_listeners[n].isWeak)
                {
                    object target = _listeners[n].weakRef.Target;
                    if (target != null)
                    {
                        (target as NoArgumentDelegate).Invoke();
                    }
                    else                     //remove because it's null
                    {
                        _listeners.RemoveAt(n);
                        n--;
                    }
                }
                else
                {
                    _listeners[n].strongDele.Invoke();
                }
            }
        }
    }
Exemplo n.º 2
0
	public void AddListener(int eventType, NoArgumentDelegate dele, bool isWeak)
	{
		if(_listeners == null) _listeners = new List<RXSignalListener>();

		RXSignalListener listener = new RXSignalListener();

		listener.eventType = eventType;

		if(isWeak)
		{
			listener.isWeak = true;
			listener.weakRef = new WeakReference(dele);
		}
		else 
		{
			listener.isWeak = false;
			listener.strongDele = dele;
		}

		_listeners.Add(listener);
	}
Exemplo n.º 3
0
    public void AddListener(int eventType, NoArgumentDelegate dele, bool isWeak)
    {
        if (_listeners == null)
        {
            _listeners = new List <RXSignalListener>();
        }

        RXSignalListener listener = new RXSignalListener();

        listener.eventType = eventType;

        if (isWeak)
        {
            listener.isWeak  = true;
            listener.weakRef = new WeakReference(dele);
        }
        else
        {
            listener.isWeak     = false;
            listener.strongDele = dele;
        }

        _listeners.Add(listener);
    }