Exemple #1
0
        public static IMsgProcess GetInstance(MpTypeEnum type)
        {
            IMsgProcess instance = null;

            if (_instanceDic.ContainsKey(type))
            {
                instance = _instanceDic[type];
            }
            else
            {
                switch (type)
                {
                case MpTypeEnum.ClientConn:
                    instance = new ClientConnMsgProcessImpl();
                    break;

                case MpTypeEnum.NewMsgPush:
                    instance = new NewMsgPushProcessImpl();
                    break;

                case MpTypeEnum.GloableMsg:
                    instance = new GloableMsgProcessImpl();
                    break;
                }

                if (!_instanceDic.ContainsKey(type))
                {
                    _instanceDic.TryAdd(type, instance);
                }
            }

            return(instance);
        }
Exemple #2
0
 public void Send(ClientMsgPackEntity pack)
 {
     if (pack != null)
     {
         IMsgProcess msgOp = MsgProcessFactory.GetInstance(pack.mp_type);
         msgOp.MsgProcess(pack, Clients, this.Context.ConnectionId);
     }
 }
Exemple #3
0
 /// <summary>
 /// 是否存在
 /// </summary>
 /// <returns></returns>
 protected bool HasExtend(IMsgProcess ProcessData)
 {
     foreach (IMsgProcess msgdata in this.processList.Keys)
     {
         if (Lemon.GetObjType(msgdata) == Lemon.GetObjType(ProcessData))
         {
             return(true);
         }
     }
     return(false);
 }
Exemple #4
0
 /// <summary>
 /// 移除一个消息总线的处理器
 /// </summary>
 public bool RemoveProcess(IMsgProcess ProcessData)
 {
     if (this.processList.ContainsKey(ProcessData))
     {
         IProcessor process = this.processList[ProcessData];
         MessageFactory.GetMegBus().RemoveProcessor(process);
         this.processList.Remove(ProcessData);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #5
0
 /// <summary>
 /// 添加一个消息总线的处理器
 /// </summary>
 public bool AddProcess(IMsgProcess ProcessData)
 {
     if (!HasExtend(ProcessData))
     {
         IProcessor process = new LemnadeProcessorTemplate(ProcessData);
         MessageFactory.GetMegBus().AddProcessor(process);
         this.processList.Add(ProcessData, process);
         return(true);
     }
     else
     {
         return(false);
     }
 }
 /// <summary>
 /// Lemonade消息总线的消息处理器
 /// </summary>
 public LemnadeProcessorTemplate(IMsgProcess ProcessData)
 {
     this.processdata = ProcessData;
 }
Exemple #7
0
 /// <summary>
 /// 删除参数指定的消息处理对象到消息总线中
 /// </summary>
 /// <param name="ProcessData"></param>
 public static bool RemoveMsgProcess(IMsgProcess ProcessData)
 {
     return(ProcessFactory.GetInit().RemoveProcess(ProcessData));
 }
Exemple #8
0
 /// <summary>
 /// 添加参数指定的消息处理对象到消息总线中
 /// </summary>
 /// <param name="ProcessData"></param>
 public static bool AddMsgProcess(IMsgProcess ProcessData)
 {
     return(ProcessFactory.GetInit().AddProcess(ProcessData));
 }
Exemple #9
0
 private void button1_Click(object sender, EventArgs e)
 {
     process = new CustomErrorProcess(this);
     Lemon.AddMsgProcess(process);
 }