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