diff options
Diffstat (limited to 'process_callback.h')
-rw-r--r-- | process_callback.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/process_callback.h b/process_callback.h index 0f540df6..036ad79a 100644 --- a/process_callback.h +++ b/process_callback.h @@ -34,16 +34,20 @@ struct ProcessCallback //note: this one must NOT throw in order to properly allow undoing setting of statistics! //it is in general paired with a call to requestUiRefresh() to compensate! - virtual void updateProcessedData(int objectsDelta, zen::Int64 dataDelta) = 0; //throw()!! + virtual void updateProcessedData(int objectsDelta, zen::Int64 dataDelta) = 0; //noexcept!! virtual void updateTotalData (int objectsDelta, zen::Int64 dataDelta) = 0; // - /*the estimated total may change *during* sync: - 1. move file -> fallback to copy + delete - 2. file copy, actual size changed after comparison or file contains significant ADS data - 3. auto-resolution for failed create operations due to missing source - 4. directory deletion: may contain more items than scanned by FFS: excluded by filter - 5. delete directory to recycler or move to user-defined dir on same volume: no matter how many sub-elements exist, this is only 1 object to process! - 6. user-defined deletion directory on different volume: full file copy required (instead of move) - 7. Copy sparse files */ + /*the estimated and actual total workload may change *during* sync: + 1. detected file can be moved -> fallback to copy + delete + 2. file copy, actual size changed after comparison + 3. file contains significant ADS data, is sparse or compressed + 4. auto-resolution for failed create operations due to missing source + 5. directory deletion: may contain more items than scanned by FFS (excluded by filter) or less (contains followed symlinks) + 6. delete directory to recycler: no matter how many child-elements exist, this is only 1 item to process! + 7. file/directory already deleted externally: nothing to do, 0 logical operations and data + 8. user-defined deletion directory on different volume: full file copy required (instead of move) + 9. Binary file comparison: if files differ at the first few bytes, the result is already known + 10. Error during file copy, retry: bytes were copied => increases total workload! + */ //opportunity to abort must be implemented in a frequently executed method like requestUiRefresh() virtual void requestUiRefresh() = 0; //throw ? |