Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool PatchJob::Update()
- {
- //Log.Debug("AutoPatcher","Updating PatchJob...");
- // don't update unless the write buffer is empty
- m_client->BurstBegin();
- if(m_client->writeBuffer.GetSize()!= 0)
- {
- Log.Debug("AutoPatcher","Ending 1.");
- m_client->BurstEnd();
- return true;
- }
- // send 1500 byte chunks
- TransferDataPacket header;
- bool result;
- header.cmd = 0x31;
- header.chunk_size = static_cast<uint16>( (m_bytesLeft>1500)?1500:m_bytesLeft );
- //Log.Debug("PatchJob", "Sending %u byte chunk", header.chunk_size);
- result = m_client->BurstSend((const uint8*)&header,sizeof(TransferDataPacket));
- if(result)
- {
- result = m_client->BurstSend(m_dataPointer, header.chunk_size);
- if(result)
- {
- m_dataPointer += header.chunk_size;
- m_bytesSent += header.chunk_size;
- m_bytesLeft -= header.chunk_size;
- }
- }
- if(result)
- m_client->BurstPush();
- Log.Debug("AutoPatcher", "End 2.");
- m_client->BurstEnd();
- // no need to check the result here, could just be a full buffer and not necessarily a fatal error.
- return (m_bytesLeft>0)?true:false;
- }
Advertisement
Add Comment
Please, Sign In to add comment