Index: src/libchengine/TTaskStatsSnapshot.cpp =================================================================== diff -u -N -r9ddf8fdd5f641491dd30c49eb90f8f740314b6af -r178e776294cbc8e3a5a33b355a314e0db94b214b --- src/libchengine/TTaskStatsSnapshot.cpp (.../TTaskStatsSnapshot.cpp) (revision 9ddf8fdd5f641491dd30c49eb90f8f740314b6af) +++ src/libchengine/TTaskStatsSnapshot.cpp (.../TTaskStatsSnapshot.cpp) (revision 178e776294cbc8e3a5a33b355a314e0db94b214b) @@ -41,6 +41,7 @@ m_iThreadPriority(0), m_strDestinationPath(), m_filters(), + m_feedbackRules(), m_eTaskState(eTaskState_None), m_strTaskID(), m_eOperationType(eOperation_None), @@ -67,19 +68,23 @@ m_iThreadPriority = 0; m_strDestinationPath.Clear(); m_filters.Clear(); + m_feedbackRules.Clear(); m_eTaskState = eTaskState_None; m_strTaskID.Clear(); m_eOperationType = eOperation_None; m_bIgnoreDirectories = false; m_bCreateEmptyFiles = false; + m_bExcludeEmptyDirectories = false; m_ullCurrentBufferSize = 0; m_bCacheFilled = false; m_ullProcessedCount = 0; m_ullTotalCount = 0; m_ullProcessedSize = 0; m_ullTotalSize = 0; m_dTaskCountSpeed = 0.0; + m_dTaskAvgCountSpeed = 0.0; m_dTaskSizeSpeed = 0.0; + m_dTaskAvgSizeSpeed = 0.0; m_dCombinedProgress = 0.0; m_uiBufferCount = 0; } @@ -92,9 +97,13 @@ m_ullProcessedSize = 0; m_ullTotalSize = 0; m_dTaskCountSpeed = 0.0; + m_dTaskAvgCountSpeed = 0.0; m_dTaskSizeSpeed = 0.0; + m_dTaskAvgSizeSpeed = 0.0; m_dCombinedProgress = 0.0; + auto currentSubtask = m_tSubTasksStats.GetCurrentSubtaskIndex(); + size_t stCount = m_tSubTasksStats.GetSubTaskSnapshotCount(); for (size_t stIndex = 0; stIndex < stCount; ++stIndex) { @@ -103,13 +112,18 @@ m_ullProcessedCount += spSubtaskStats->GetProcessedCount(); m_ullTotalCount += spSubtaskStats->GetTotalCount(); - m_ullProcessedSize += spSubtaskStats->GetProcessedSize(); - m_ullTotalSize += spSubtaskStats->GetTotalSize(); + if(!spSubtaskStats->GetIgnoreSizeInAggregateStats()) + { + m_ullProcessedSize += spSubtaskStats->GetProcessedSize(); + m_ullTotalSize += spSubtaskStats->GetTotalSize(); + } - if(IsTaskRunning()) + if(stIndex == currentSubtask) { m_dTaskCountSpeed += spSubtaskStats->GetCountSpeed(); m_dTaskSizeSpeed += spSubtaskStats->GetSizeSpeed(); + m_dTaskAvgCountSpeed = spSubtaskStats->GetAvgCountSpeed(); + m_dTaskAvgSizeSpeed = spSubtaskStats->GetAvgSizeSpeed(); } } @@ -196,21 +210,15 @@ if (!m_bCacheFilled) CalculateProgressAndSpeeds(); - if (m_ullTimeElapsed) - return Math::Div64(m_ullProcessedCount, m_ullTimeElapsed / 1000.0); - - return 0.0; + return m_dTaskAvgCountSpeed; } double TTaskStatsSnapshot::GetAvgSizeSpeed() const { if (!m_bCacheFilled) CalculateProgressAndSpeeds(); - if (m_ullTimeElapsed) - return Math::Div64(m_ullProcessedSize, m_ullTimeElapsed / 1000.0); - - return 0.0; + return m_dTaskAvgSizeSpeed; } unsigned long long TTaskStatsSnapshot::GetEstimatedTotalTime() const