stoneharry

Untitled

Apr 23rd, 2012
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. bool PatchJob::Update()
  2. {
  3.     //Log.Debug("AutoPatcher","Updating PatchJob...");
  4.     // don't update unless the write buffer is empty
  5.     m_client->BurstBegin();
  6.     if(m_client->writeBuffer.GetSize()!= 0)
  7.     {
  8.         Log.Debug("AutoPatcher","Ending 1.");
  9.         m_client->BurstEnd();
  10.         return true;
  11.     }
  12.  
  13.     // send 1500 byte chunks
  14.     TransferDataPacket header;
  15.     bool result;
  16.     header.cmd = 0x31;
  17.     header.chunk_size = static_cast<uint16>( (m_bytesLeft>1500)?1500:m_bytesLeft );
  18.     //Log.Debug("PatchJob", "Sending %u byte chunk", header.chunk_size);
  19.  
  20.     result = m_client->BurstSend((const uint8*)&header,sizeof(TransferDataPacket));
  21.     if(result)
  22.     {
  23.         result = m_client->BurstSend(m_dataPointer, header.chunk_size);
  24.         if(result)
  25.         {
  26.             m_dataPointer += header.chunk_size;
  27.             m_bytesSent += header.chunk_size;
  28.             m_bytesLeft -= header.chunk_size;
  29.         }
  30.     }
  31.  
  32.     if(result)
  33.         m_client->BurstPush();
  34.  
  35.     Log.Debug("AutoPatcher", "End 2.");
  36.     m_client->BurstEnd();
  37.  
  38.     // no need to check the result here, could just be a full buffer and not necessarily a fatal error.
  39.     return (m_bytesLeft>0)?true:false;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment