//============================================================ // <T>存储消息数据到路由数据。</T> // // @return 处理结果 //============================================================ TBool TNetRouter::StoreMessage(TNetMessageBuffer& buffer){ // 设置头信息 TNetHead& netHead = buffer.NetHead(); netHead.SetLength(_netHead.Length()); netHead.SetSign(_netHead.Sign()); netHead.SetHash(_netHead.Hash()); buffer.MessageHead().Assign(_messageHead); // 设置数据 if(_dataLength > 0){ buffer.AssignData(_pData, _dataLength); } return ETrue; }
//============================================================ TBool FNetMessageMachine::ProcessMessage(){ TNetMessageBuffer message; if(_pConnection->PopupMessage(&message)){ // 处理消息 TInt code = message.MessageHead().Code(); FNetMessageHandles* pHandles = _pHanldess->Get(code); if(NULL != pHandles){ // 有注册的消息处理器情况 pHandles->Process(_pConnection, &message); }else{ // 未处理消息 TChar dump[MO_FS_DUMP_LENGTH]; MO_ERROR("Unknown message. (%s)", message.Dump(dump, MO_FS_DUMP_LENGTH)); } return ETrue; } return ETrue; }