Пример #1
0
        public object ReceiveSync(Message msg)
        {
            if (msg != null)
            {
                if (MsgHandlers.ContainsKey(msg.Msg))
                {
                    return(MsgHandlers[msg.Msg](msg));
                }

                if (MsgMethodInfos.ContainsKey(msg.Msg))
                {
                    return(MsgMethodInfos[msg.Msg].Invoke(new object[] { msg }));
                }
            }

            return(null);
        }
Пример #2
0
 public void SendMsg(MessageArgs msg, string handler, object[] parameters)//发送消息方法
 {
     //msg.Source = notifiedObject;
     if (!MsgHandlers.ContainsKey(handler))
     {
         MsgHandlers.Add(handler, FrameManager.CreateInstence <IMsgHandler>(handler, null));
     }
     MsgHandlers[handler].StartOperation(msg, parameters);
 }
Пример #3
0
        public void RegisteMsgHandler(uint msg, MsgAction <Message> action)
        {
            if (MsgHandlers.ContainsKey(msg))
            {
                //log.ErrorFormat("{0} 消息已存在处理函数,无法注册.", msg);
                //return;
                throw new Exception(msg + " 消息已存在处理函数,无法注册.");
            }

            MsgHandlers[msg] = action;
        }
Пример #4
0
        public void RemoveMsgHandler(uint msg)
        {
            if (MsgHandlers.ContainsKey(msg))
            {
                MsgHandlers.Remove(msg);
            }

            if (MsgMethodInfos.ContainsKey(msg))
            {
                MsgMethodInfos.Remove(msg);
            }
        }
Пример #5
0
        public void ClearHandlers()
        {
            foreach (uint msg in MsgHandlers.Keys)
            {
                RemoveReceiveMsg(msg);
            }

            foreach (uint msg in MsgMethodInfos.Keys)
            {
                RemoveReceiveMsg(msg);
            }

            MsgHandlers.Clear();
            MsgMethodInfos.Clear();
        }
Пример #6
0
 public void RegistMsg(string msg, MsgEventHandler handlerEvent, string handler = AppConst.MsgHandler_Common)
 {
     if (!MsgHandlers.ContainsKey(handler))
     {
         MsgHandlers.Add(handler, FrameManager.CreateInstence <IMsgHandler>(handler, null));
     }
     if (MsgHandlers[handler].MsgEventHandlers.ContainsKey(msg))
     {
         MsgHandlers[handler].MsgEventHandlers[msg] = handlerEvent;
     }
     else
     {
         MsgHandlers[handler].MsgEventHandlers.Add(msg, handlerEvent);
     }
     FrameManager.GetInstence <MsgManager>(notifiedObject.MsgStstem).RegistMsg(this, msg);
 }
Пример #7
0
 public bool AllowReceiveMsg(uint msg)
 {
     return(MsgHandlers.ContainsKey(msg));
 }