internal void DispatchRealData(Msg msg) { int cmd = msg.Cmd; if (cmdCallbackMap.ContainsKey(cmd)) { CmdCallback callback = cmdCallbackMap [cmd]; if (callback != null) { callback(msg); } cmdCallbackMap.Remove(cmd); } else if (cmdCallbackWraperMap.ContainsKey(cmd)) { CmdCallbackWraper cmdCallbackWraper = cmdCallbackWraperMap[cmd]; if (cmdCallbackWraper != null) { cmdCallbackWraper.proc(msg); cmdCallbackWraperMap.Remove(cmd); } } else { if (onMsgPush != null) { onMsgPush(msg); } } }
public void AddCmdCallbackMap(Msg msg, Object callback) { if (callback == null) { return; } if (callback is CmdCallback) { cmdCallbackMap[msg.Cmd] = callback as CmdCallback; AddSendDataMap(msg); } else if (callback is CmdCallbackWraper) { CmdCallbackWraper cmdCallbackWraper = callback as CmdCallbackWraper; if (cmdCallbackWraper.IsCallback()) { AddSendDataMap(msg); cmdCallbackWraperMap[msg.Cmd] = callback as CmdCallbackWraper; } } }