public int DoDecode(Session session, OnPackageRev handler) { int rs = Decodable(session); if (rs == OK) { rs = DeCode(session, handler); } else if (rs == NOT_OK) { if (logReport != null) { logReport.OnWarningReport("decode not ok,protocal erro"); } } else if (rs == NEED_DATA) { if (logReport != null) { logReport.OnDebugReport("decode not all,protocal need data"); } } else if (rs == NO_DATA) { if (logReport != null) { logReport.OnDebugReport("decode not all,protocal no data"); } } return(rs); }
public int DeCode(Session session, OnPackageRev handler) { try { IoBuffer buffer = session.ReceiveBuffer; IoBufferReader reader = new IoBufferReader(buffer); reader.readInt(); int cmd = reader.readInt(); Dictionary <object, object> param = (Dictionary <object, object>)reader.Read(); Msg msg = new Msg(cmd); msg.ParamMap = param; handler(msg); return(OK); } catch (Exception e) { logReport.OnWarningReport("decode not ok,protocal erro,ex:" + e.StackTrace); return(NOT_OK); } }