コード例 #1
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
 void MarkHandlerDispose(IMessageSystemHandler interface_handler)
 {
     lock (removeHandlers)
     {
         removeHandlers.Push(Handler2Identiry(interface_handler));
     }
 }
コード例 #2
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
        public static void UnregisterHandler(IMessageSystemHandler handler)
        {
#if UNITY_EDITOR
            if (Instance == null)
            {
                return;
            }
#endif
            Instance.MarkHandlerDispose(handler);
        }
コード例 #3
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
        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);
            }
        }
コード例 #4
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
 public MessageHandler(IMessageSystemHandler IHdnaler)
 {
     this.IHdnaler   = IHdnaler;
     HandleMethodMap = new Dictionary <string, MessageHandleMethod>();
     IHdnaler.initHandleMethodMap(HandleMethodMap);
 }
コード例 #5
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
 public static void RegisterHandler(IMessageSystemHandler handler)
 {
     Instance.addHandler(handler);
 }
コード例 #6
0
ファイル: MessageSystem.cs プロジェクト: brkdyh/Interview
 static string Handler2Identiry(IMessageSystemHandler handler)
 {
     return(handler.getMessageUid + "+" + handler.GetHashCode());
 }