private void DecodeInsertTablePacket(byte[] resPacket, out PDBErrorCode retVal) { ProtoHeader proHdr = new ProtoHeader(resPacket); InsertResult.Clear(); SuccessCount = 0; retVal = (PDBErrorCode)proHdr.GetReturnVal(); if (retVal == PDBErrorCode.PdbE_OK) { SuccessCount = (int)proHdr.GetRecordCnt(); for (int i = 0; i < SuccessCount; i++) { InsertResult.Add(PDBErrorCode.PdbE_OK); } } else if (retVal == PDBErrorCode.PdbE_INSERT_PART_ERROR) { int offset = ProtoHeader.kHeadLen; int recCnt = (int)proHdr.GetRecordCnt(); for (int i = 0; i < recCnt; i++) { long recErrVal = IntTool.DecodeZigZag64(IntTool.ReadRawVarint64(resPacket, ref offset)); PDBErrorCode recErrCode = (PDBErrorCode)(recErrVal); if (recErrCode == PDBErrorCode.PdbE_OK) { SuccessCount++; } InsertResult.Add(recErrCode); } } }
private void DecodeInsertPacket(byte[] resPacket, out PDBErrorCode retVal) { ProtoHeader proHdr = new ProtoHeader(resPacket); if (resPacket.Count() != ProtoHeader.kHeadLen) { retVal = PDBErrorCode.PdbE_PACKET_ERROR; return; } SuccessCount = (int)proHdr.GetRecordCnt(); InsertResult.Clear(); for (int i = 0; i < SuccessCount; i++) { InsertResult.Add(PDBErrorCode.PdbE_OK); } retVal = (PDBErrorCode)proHdr.GetReturnVal(); if (retVal != PDBErrorCode.PdbE_OK) { InsertResult.Add(retVal); } }