Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -N -r6c41e7b3cf7711c6f5027c0c0154013f50f08e7b -rb941384e121190b6107f1c99b3233667e3daf4ce --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 6c41e7b3cf7711c6f5027c0c0154013f50f08e7b) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision b941384e121190b6107f1c99b3233667e3daf4ce) @@ -391,11 +391,11 @@ }; std::array arrHandles = { rThreadController.GetKillThreadHandle(), - tReaderWriter.GetEventWriteFinishedHandle(), - tReaderWriter.GetEventWriteFailedHandle(), - tReaderWriter.GetEventWritePossibleHandle(), - tReaderWriter.GetEventReadFailedHandle(), - tReaderWriter.GetEventReadPossibleHandle() + tReaderWriter.GetWriter()->GetEventWriteFinishedHandle(), + tReaderWriter.GetWriter()->GetEventWriteFailedHandle(), + tReaderWriter.GetWriter()->GetEventWritePossibleHandle(), + tReaderWriter.GetReader()->GetEventReadFailedHandle(), + tReaderWriter.GetReader()->GetEventReadPossibleHandle() }; bool bStopProcessing = false; @@ -410,11 +410,8 @@ case WAIT_OBJECT_0 + eKillThread: { // log - TString strFormat; - strFormat = _T("Kill request while main copying file %srcpath -> %dstpath"); - strFormat.Replace(_T("%srcpath"), pData->spSrcFile->GetFullFilePath().ToString()); - strFormat.Replace(_T("%dstpath"), pData->pathDstFile.ToString()); - LOG_INFO(m_spLog) << strFormat.c_str(); + LOG_INFO(m_spLog) << L"Kill request while main copying file " << pData->spSrcFile->GetFullFilePath().ToString() << + L" -> " << pData->pathDstFile.ToString(); eResult = TSubTaskBase::eSubResult_KillRequest; bStopProcessing = true; @@ -423,19 +420,19 @@ case WAIT_OBJECT_0 + eReadPossible: { - TOverlappedDataBuffer* pBuffer = tReaderWriter.GetEmptyBuffer(); + TOverlappedDataBuffer* pBuffer = tReaderWriter.GetReader()->GetEmptyBuffer(); if (!pBuffer) throw TCoreException(eErr_InternalProblem, L"Read was possible, but no buffer is available", LOCATION); eResult = srcFileWrapper.ReadFileFB(*pBuffer, bSkip); if(eResult != TSubTaskBase::eSubResult_Continue) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); bStopProcessing = true; } else if(bSkip) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); AdjustProcessedSizeForSkip(pData->spSrcFile); @@ -446,22 +443,22 @@ } case WAIT_OBJECT_0 + eReadFailed: { - TOverlappedDataBuffer* pBuffer = tReaderWriter.GetFailedReadBuffer(); + TOverlappedDataBuffer* pBuffer = tReaderWriter.GetReader()->GetFailedReadBuffer(); if (!pBuffer) throw TCoreException(eErr_InternalProblem, L"Cannot retrieve failed read buffer", LOCATION); // read error encountered - handle it eResult = HandleReadError(spFeedbackHandler, *pBuffer, pData->spSrcFile->GetFullFilePath(), bSkip); if(eResult == TSubTaskBase::eSubResult_Retry) - tReaderWriter.AddEmptyBuffer(pBuffer, true); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, true); else if(eResult != TSubTaskBase::eSubResult_Continue) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); bStopProcessing = true; } else if(bSkip) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); AdjustProcessedSizeForSkip(pData->spSrcFile); @@ -473,19 +470,19 @@ } case WAIT_OBJECT_0 + eWritePossible: { - TOverlappedDataBuffer* pBuffer = tReaderWriter.GetWriteBuffer(); + TOverlappedDataBuffer* pBuffer = tReaderWriter.GetWriter()->GetWriteBuffer(); if (!pBuffer) throw TCoreException(eErr_InternalProblem, L"Write was possible, but no buffer is available", LOCATION); eResult = dstFileWrapper.WriteFileFB(*pBuffer, bSkip); if(eResult != TSubTaskBase::eSubResult_Continue) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); bStopProcessing = true; } else if(bSkip) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); AdjustProcessedSizeForSkip(pData->spSrcFile); @@ -498,21 +495,21 @@ case WAIT_OBJECT_0 + eWriteFailed: { - TOverlappedDataBuffer* pBuffer = tReaderWriter.GetFailedWriteBuffer(); + TOverlappedDataBuffer* pBuffer = tReaderWriter.GetWriter()->GetFailedWriteBuffer(); if (!pBuffer) throw TCoreException(eErr_InternalProblem, L"Failed to retrieve write failed buffer", LOCATION); eResult = HandleWriteError(spFeedbackHandler, *pBuffer, pData->pathDstFile, bSkip); if(eResult == TSubTaskBase::eSubResult_Retry) - tReaderWriter.AddFailedWriteBuffer(pBuffer); + tReaderWriter.GetWriter()->AddFailedWriteBuffer(pBuffer); else if(eResult != TSubTaskBase::eSubResult_Continue) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); bStopProcessing = true; } else if(bSkip) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); AdjustProcessedSizeForSkip(pData->spSrcFile); @@ -525,7 +522,7 @@ case WAIT_OBJECT_0 + eWriteFinished: { - TOverlappedDataBuffer* pBuffer = tReaderWriter.GetFinishedWriteBuffer(); + TOverlappedDataBuffer* pBuffer = tReaderWriter.GetWriter()->GetFinishedBuffer(); if (!pBuffer) throw TCoreException(eErr_InternalProblem, L"Write finished was possible, but no buffer is available", LOCATION); @@ -534,13 +531,13 @@ eResult = dstFileWrapper.FinalizeFileFB(*pBuffer, bSkip); if (eResult != TSubTaskBase::eSubResult_Continue) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); bStopProcessing = true; break; } else if (bSkip) { - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); AdjustProcessedSizeForSkip(pData->spSrcFile); @@ -559,7 +556,7 @@ bStopProcessing = pBuffer->IsLastPart(); if(bStopProcessing) { - tReaderWriter.MarkFinishedBufferAsComplete(pBuffer); + tReaderWriter.GetWriter()->MarkAsFinalized(pBuffer); // this is the end of copying of src file - in case it is smaller than expected fix the stats so that difference is accounted for AdjustFinalSize(pData->spSrcFile, fileSrc); @@ -568,7 +565,7 @@ m_tSubTaskStats.ResetCurrentItemProcessedSize(); } - tReaderWriter.AddEmptyBuffer(pBuffer, false); + tReaderWriter.GetReader()->AddEmptyBuffer(pBuffer, false); break; }