void MarkHandlerDispose(IMessageSystemHandler interface_handler) { lock (removeHandlers) { removeHandlers.Push(Handler2Identiry(interface_handler)); } }
public static void UnregisterHandler(IMessageSystemHandler handler) { #if UNITY_EDITOR if (Instance == null) { return; } #endif Instance.MarkHandlerDispose(handler); }
void addHandler(IMessageSystemHandler interface_handler) { string msg_uid = interface_handler.getMessageUid; if (!messageHandlersMap.ContainsKey(msg_uid)) { messageHandlersMap.Add(msg_uid, new Dictionary <int, MessageHandler>()); } var handlerDic = messageHandlersMap[msg_uid]; var handler_hash = interface_handler.GetHashCode(); if (!handlerDic.ContainsKey(handler_hash)) { MessageHandler handler = new MessageHandler(interface_handler); handlerDic.Add(handler_hash, handler); } }
public MessageHandler(IMessageSystemHandler IHdnaler) { this.IHdnaler = IHdnaler; HandleMethodMap = new Dictionary <string, MessageHandleMethod>(); IHdnaler.initHandleMethodMap(HandleMethodMap); }
public static void RegisterHandler(IMessageSystemHandler handler) { Instance.addHandler(handler); }
static string Handler2Identiry(IMessageSystemHandler handler) { return(handler.getMessageUid + "+" + handler.GetHashCode()); }