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); }
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); }
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); }
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); }