void CHtSuUnitEx::RecvCallback(Ht::ERecvType recvType) { switch (recvType) { case Ht::eRecvHostData: { if (recvDataCnt == 0) { assert(!dataCntQue.Empty()); recvDataCnt = dataCntQue.Front(); dataCntQue.Pop(); printf("eRecvHostData - recvDataCnt = %d\n", recvDataCnt); } assert(recvDataCnt > 1); recvDataCnt -= RecvHostData(recvDataCnt - 1, recvArr); } break; case Ht::eRecvHostDataMarker: { if (recvDataCnt == 0) { assert(!dataCntQue.Empty()); recvDataCnt = dataCntQue.Front(); dataCntQue.Pop(); printf("eRecvDataMarker - recvDataCnt = %d\n", recvDataCnt); } assert(recvDataCnt == 1); bool bMarker = RecvHostDataMarker(); assert(bMarker); recvDataCnt = 0; markerCnt += 1; } break; case Ht::eRecvReturn: { uint16_t recvDataCnt; RecvReturn_echo(recvDataCnt); rtnCnt += 1; } break; default: assert(0); } }