Index: src/libchcore/TOverlappedReaderFB.cpp =================================================================== diff -u -N -re7ca9e2c6306cd94e5e5caecc9cfdb3b562d3cdf -rc0d9a798f9fbbeda239b84721ed864f9727e1ddc --- src/libchcore/TOverlappedReaderFB.cpp (.../TOverlappedReaderFB.cpp) (revision e7ca9e2c6306cd94e5e5caecc9cfdb3b562d3cdf) +++ src/libchcore/TOverlappedReaderFB.cpp (.../TOverlappedReaderFB.cpp) (revision c0d9a798f9fbbeda239b84721ed864f9727e1ddc) @@ -49,61 +49,36 @@ m_spReader->ReleaseBuffers(); } - TSubTaskBase::ESubOperationResult TOverlappedReaderFB::OnReadPossible(bool& bStopProcessing, bool& bProcessedFlag) + TSubTaskBase::ESubOperationResult TOverlappedReaderFB::OnReadPossible() { TOverlappedDataBuffer* pBuffer = m_spReader->GetEmptyBuffer(); if(!pBuffer) throw TCoreException(eErr_InternalProblem, L"Read was possible, but no buffer is available", LOCATION); - bool bSkip = false; - TSubTaskBase::ESubOperationResult eResult = m_spSrcFile->ReadFileFB(*pBuffer, bSkip); + TSubTaskBase::ESubOperationResult eResult = m_spSrcFile->ReadFileFB(*pBuffer); if(eResult != TSubTaskBase::eSubResult_Continue) - { m_spReader->AddEmptyBuffer(pBuffer, false); - bStopProcessing = true; - } - else if(bSkip) - { - m_spReader->AddEmptyBuffer(pBuffer, false); - m_spStats->AdjustProcessedSize(m_spStats->GetCurrentItemProcessedSize(), m_spSrcFileInfo->GetLength64()); - - bProcessedFlag = false; - bStopProcessing = true; - } - return eResult; } - TSubTaskBase::ESubOperationResult TOverlappedReaderFB::OnReadFailed(bool& bStopProcessing, bool& bProcessedFlag) + TSubTaskBase::ESubOperationResult TOverlappedReaderFB::OnReadFailed() { TOverlappedDataBuffer* pBuffer = m_spReader->GetFailedReadBuffer(); if(!pBuffer) throw TCoreException(eErr_InternalProblem, L"Cannot retrieve failed read buffer", LOCATION); // read error encountered - handle it - bool bSkip = false; - TSubTaskBase::ESubOperationResult eResult = m_spSrcFile->HandleReadError(*pBuffer, bSkip); + TSubTaskBase::ESubOperationResult eResult = m_spSrcFile->HandleReadError(*pBuffer); if(eResult == TSubTaskBase::eSubResult_Retry) { m_spSrcFile->Close(); m_spReader->AddEmptyBuffer(pBuffer, true); + eResult = TSubTaskBase::eSubResult_Continue; } else if(eResult != TSubTaskBase::eSubResult_Continue) - { m_spReader->AddEmptyBuffer(pBuffer, false); - bStopProcessing = true; - } - else if(bSkip) - { - m_spReader->AddEmptyBuffer(pBuffer, false); - m_spStats->AdjustProcessedSize(m_spStats->GetCurrentItemProcessedSize(), m_spSrcFileInfo->GetLength64()); - - bProcessedFlag = false; - bStopProcessing = true; - } - return eResult; } }