summaryrefslogtreecommitdiff
path: root/process_callback.h
diff options
context:
space:
mode:
Diffstat (limited to 'process_callback.h')
-rw-r--r--process_callback.h22
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 ?
bgstack15