Ejemplo n.º 1
0
    /// <summary>
    /// 挂载一个消息监听器到当前的消息节点
    /// </summary>
    /// <param name="key">消息ID</param>
    /// <param name="listener">消息监听器</param>
    /// <returns>当前消息节点已经挂载了这个消息监听器那么返回false</returns>
    public bool AttachEventListener(int key, IMassageInterface listener)
    {
        if (listener == null)
        {
            return(false);
        }
        if (!mListeners.ContainsKey(key))
        {
            mListeners.Add(key, new List <IMassageInterface>()
            {
                listener
            });
            return(true);
        }
        if (mListeners[key].Contains(listener))
        {
            return(false);
        }
        int pos = 0;

        for (int i = 0; i < mListeners[key].Count; i++)
        {
            if (listener.MessagePriority() > mListeners[key][i].MessagePriority())
            {
                break;
            }
            pos++;
        }
        mListeners[key].Insert(pos, listener);
        return(true);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// 卸载一个消息监听器
 /// </summary>
 /// <returns>如果当前消息监听器不存在那么返回false</returns>
 public bool DetachEventListener(int key, IMassageInterface listener)
 {
     if (mListeners.ContainsKey(key) && mListeners[key].Contains(listener))
     {
         mListeners[key].Remove(listener);
         return(true);
     }
     return(false);
 }