Esempio n. 1
0
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);
	}
}