Exemplo n.º 1
0
        // Token: 0x060017A0 RID: 6048 RVA: 0x00029FB8 File Offset: 0x00028FB8
        public static void Subscribe <T>(MessageHandler <T> messageHandler, uint port) where T : Message
        {
            uint key = Hash.Hash32(typeof(T).ToString());
            List <IPortHandler> list;

            if (Messenger.MessageHandlers.TryGetValue(key, out list))
            {
                using (List <IPortHandler> .Enumerator enumerator = list.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        IPortHandler    portHandler  = enumerator.Current;
                        PortHandler <T> portHandler2 = (PortHandler <T>)portHandler;
                        if (portHandler2.Port == port)
                        {
                            portHandler2.Handler += messageHandler;
                            return;
                        }
                    }
                    goto IL_78;
                }
            }
            list = new List <IPortHandler>();
            Messenger.MessageHandlers.Add(key, list);
IL_78:
            PortHandler <T> portHandler3 = new PortHandler <T>(port);

            portHandler3.Handler += messageHandler;
            list.Add(portHandler3);
        }
Exemplo n.º 2
0
        // Token: 0x060017A1 RID: 6049 RVA: 0x0002A064 File Offset: 0x00029064
        public static void Unsubscribe <T>(MessageHandler <T> messageHandler, uint port) where T : Message
        {
            uint key = Hash.Hash32(typeof(T).ToString());
            List <IPortHandler> list;

            if (Messenger.MessageHandlers.TryGetValue(key, out list))
            {
                foreach (IPortHandler portHandler in list)
                {
                    PortHandler <T> portHandler2 = (PortHandler <T>)portHandler;
                    if (portHandler2.Port == port)
                    {
                        portHandler2.Handler -= messageHandler;
                        break;
                    }
                }
            }
        }