예제 #1
0
        public void UnBindListener(IMessageListener listener)
        {
            Debug.Assert(HasBind(listener), "Listener does not have any binds associated with it");
            MessageBind bind = GetOrCreateBind(listener);

            m_messageBinds.Remove(bind);
        }
예제 #2
0
        public void BindListener(IMessageListener listener, object messageID)
        {
            MessageBind bind = GetOrCreateBind(listener);

            Debug.Assert(bind.MessageTypes.Contains(messageID) == false, "Listener " + listener.GetType().Name + " already has bind with message type " + messageID);
            bind.MessageTypes.Add(messageID);
        }
예제 #3
0
        public void UnBindListenerFromMessage(IMessageListener listener, int messageID)
        {
            Debug.Assert(HasBind(listener), "Listener does not have any binds associated with it");
            MessageBind bind = GetOrCreateBind(listener);

            Debug.Assert(bind.MessageTypes.Contains(messageID), "Listener " + listener.GetType().Name + " is not binded to " + messageID);
            bind.MessageTypes.Remove(messageID);
        }
예제 #4
0
        private MessageBind GetOrCreateBind(IMessageListener listener)
        {
            foreach (MessageBind bind in m_messageBinds)
            {
                if (bind.Listener == listener)
                {
                    return(bind);
                }
            }

            MessageBind newBind = new MessageBind(listener);

            m_messageBinds.Add(newBind);
            return(newBind);
        }