Exemple #1
0
        /// <summary>
        /// Remove the listener from the specified message type.
        /// </summary>
        /// <param name="messageType"></param>
        /// <param name="handler"></param>
        /// <returns></returns>
        public void RemoveListener(Type messageType, MessageListenerDelegate handler)
        {
            var messageName = messageType.Name;

            Assert.IsTrue(_listeners.ContainsKey(messageName), "You are trying to remove a handler that a message type that isn't registered for " + messageName);

            List <MessageListenerDelegate> listenerList = _listeners[messageName];

            Assert.IsTrue(listenerList.Contains(handler), "You are trying to remove a handler that isn't registered for " + messageName);
            listenerList.Remove(handler);

            MessageLogHandler.AddLogEntry(LogEntryType.RemoveListener, messageName);
        }
Exemple #2
0
        /// <summary>
        /// Add a listener for the specified message type. Be sure to call RemoveListener when you are done.
        /// </summary>
        /// <param name="messageType">Type of the message to add a listener for</param>
        /// <param name="handler"></param>
        /// <returns></returns>
        public void AddListener(Type messageType, MessageListenerDelegate handler)
        {
            var messageName = messageType.Name;

            if (!_listeners.ContainsKey(messageName))
            {
                _listeners.Add(messageName, new List <MessageListenerDelegate>());
            }

            List <MessageListenerDelegate> listenerList = _listeners[messageName];

            Assert.IsFalse(listenerList.Contains(handler), "You should not add the same listener multiple times for " + messageName);
            listenerList.Add(handler);

            MessageLogHandler.AddLogEntry(LogEntryType.AddListener, messageName);
        }
Exemple #3
0
        /// <summary>
        /// Remove the listener from the specified message type.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="handler"></param>
        /// <returns></returns>
        public void RemoveListener <T>(MessageListenerDelegate handler) where T : BaseMessage
        {
            var messageType = typeof(T);

            RemoveListener(messageType, handler);
        }