Example #1
0
MsgStatus CMessage2Parser::_ParserHead(CMessage* pMsg, const CBufferMessage& pBuf)
{
    uint8* pData = pBuf.GetBuffer();
    uint8 NumByte[4] = {0};
    if (!pData)
    {
        return MsgStatus_Err;
    }

    for (int index = 0; index < MSG_CLASS_LEN; index++)
    {
        NumByte[index] = pData[MSG_PACKSIZE_INDEX + index];
    }
    if (pBuf.GetSize() != _ByteToInt(NumByte))
    {
        return MsgStatus_Err;
    }
    memset(NumByte,0,4);
    for (int index = 0; index < MSG_CLASS_COMMAND; index++)
    {
        NumByte[index] = pData[MSG_COMMAND_INDEX + index];
    }
    m_MsgId = _ByteToInt(NumByte);
    return MsgStatus_Ok;
}
Example #2
0
MsgStatus CMessage2Parser::_ParserTail(CMessage* pMsg, const CBufferMessage& pBuf)
{
    uint8* pData = pBuf.GetBuffer();
    if (pData[CMessage2Parser::GetMessageLen(pBuf.GetBuffer(), pBuf.GetSize()) - 1] != MSG_END)
    {
        return MsgStatus_Err;
    }
    return MsgStatus_Ok;
}
Example #3
0
void CNetCenter::OnPackReady(const CBufferMessage &buffer )
{
	Global->Logf(LogFile_Net,_T("OnPackReady, size:%d\n"),buffer.GetSize());
	CMessage2Parser parser;
	CMessage msg(parser.GetMsgType(buffer));
	if(parser.Parser(&msg, buffer) == MsgStatus_Ok)
	{
		_DispatchMessage(msg);
	}
}