void NetController::ProcessPacket()

in GomokuClient/GomokuClient/NetController.cpp [139:191]


void NetController::ProcessPacket()
{

    while (true)
    {
        PacketHeader header;

        if (false == mRecvBuffer.Peek((char*)&header, sizeof(PacketHeader)))
            break;


        if (header.mSize > mRecvBuffer.GetStoredSize())
            break;


        switch (header.mType)
        {

        case PKT_SC_START:
        {
            GameStartBroadcast recvData;
            bool ret = mRecvBuffer.Read((char*)&recvData, recvData.mSize);
            assert(ret);

            if (mPlayerId == std::string(recvData.mFirstPlayerId))
            {

                GGuiController->OnGameStart(StoneType::STONE_BLACK, std::string(recvData.mOpponentName));
            }
            else
            {
                GGuiController->OnGameStart(StoneType::STONE_WHITE, std::string(recvData.mOpponentName));
            }
        }
        break;

        case PKT_SC_BOARD_STATUS:
        {
            BoardStatusBroadcast recvData;
            bool ret = mRecvBuffer.Read((char*)&recvData, recvData.mSize);
            assert(ret);

            GGuiController->OnStatusChange(recvData);
        }
        break;

        default:
            assert(false);
        }

    }

}