示例#1
0
//============================================================
// <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;
}
示例#2
0
//============================================================
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;
}