Index: src/ch/TTaskConfiguration.cpp =================================================================== diff -u -N -rb7709acbab26fdb108b77d3e08d3872f54248af2 -r044d0e17cdedf3055202486a2235e1a3c8dd6e56 --- src/ch/TTaskConfiguration.cpp (.../TTaskConfiguration.cpp) (revision b7709acbab26fdb108b77d3e08d3872f54248af2) +++ src/ch/TTaskConfiguration.cpp (.../TTaskConfiguration.cpp) (revision 044d0e17cdedf3055202486a2235e1a3c8dd6e56) @@ -34,10 +34,33 @@ { } +TSubTaskCommonConfig::TSubTaskCommonConfig(const TSubTaskCommonConfig& rSrc) : + m_nPriority(THREAD_PRIORITY_NORMAL), + m_bDeleteAllFilesAfterAllCopyings(true), + m_bIgnoreReadOnlyAttributes(false) +{ + *this = rSrc; +} + TSubTaskCommonConfig::~TSubTaskCommonConfig() { } +TSubTaskCommonConfig& TSubTaskCommonConfig::operator=(const TSubTaskCommonConfig& rSrc) +{ + if(this != &rSrc) + { + boost::shared_lock src_lock(rSrc.m_lock); + boost::unique_lock lock(m_lock); + + m_nPriority = rSrc.m_nPriority; + m_bDeleteAllFilesAfterAllCopyings = rSrc.m_bDeleteAllFilesAfterAllCopyings; + m_bIgnoreReadOnlyAttributes = rSrc.m_bIgnoreReadOnlyAttributes; + } + + return *this; +} + void TSubTaskCommonConfig::SetPriority(int iPriority) { boost::unique_lock lock(m_lock); @@ -77,14 +100,34 @@ //////////////////////////////////////////////////////////////////////////// // class TSubTaskScanDirectoriesConfig -TSubTaskScanDirectoriesConfig::TSubTaskScanDirectoriesConfig() +TSubTaskScanDirectoriesConfig::TSubTaskScanDirectoriesConfig() : + m_afFilters() { } +TSubTaskScanDirectoriesConfig::TSubTaskScanDirectoriesConfig(const TSubTaskScanDirectoriesConfig& rSrc) : + m_afFilters() +{ + *this = rSrc; +} + TSubTaskScanDirectoriesConfig::~TSubTaskScanDirectoriesConfig() { } +TSubTaskScanDirectoriesConfig& TSubTaskScanDirectoriesConfig::operator=(const TSubTaskScanDirectoriesConfig& rSrc) +{ + if(this != &rSrc) + { + boost::shared_lock src_lock(rSrc.m_lock); + boost::unique_lock lock(m_lock); + + m_afFilters = rSrc.m_afFilters; + } + + return *this; +} + void TSubTaskScanDirectoriesConfig::SetFilters(const CFiltersArray& rFilters) { boost::unique_lock lock(m_lock); @@ -111,10 +154,39 @@ m_bsSizes.m_bOnlyDefault = false; } +TSubTaskCopyMoveConfig::TSubTaskCopyMoveConfig(const TSubTaskCopyMoveConfig& rSrc) : + m_bDisableSystemBuffering(false), + m_ullMinSizeToDisableBuffering(0), + m_bPreserveFileDateTime(false), + m_bPreserveFileAttributes(false), + m_bIgnoreDirectories(false), + m_bCreateEmptyFiles(false), + m_bCreateOnlyDirectories(false) +{ + *this = rSrc; +} + TSubTaskCopyMoveConfig::~TSubTaskCopyMoveConfig() { } +TSubTaskCopyMoveConfig& TSubTaskCopyMoveConfig::operator=(const TSubTaskCopyMoveConfig& rSrc) +{ + if(this != &rSrc) + { + m_bDisableSystemBuffering = rSrc.m_bDisableSystemBuffering; + m_ullMinSizeToDisableBuffering = rSrc.m_ullMinSizeToDisableBuffering; + m_bPreserveFileDateTime = rSrc.m_bPreserveFileDateTime; + m_bPreserveFileAttributes = rSrc.m_bPreserveFileAttributes; + m_bIgnoreDirectories = rSrc.m_bIgnoreDirectories; + m_bCreateEmptyFiles = rSrc.m_bCreateEmptyFiles; + m_bCreateOnlyDirectories = rSrc.m_bCreateOnlyDirectories; + m_bsSizes = rSrc.m_bsSizes; + } + + return *this; +} + void TSubTaskCopyMoveConfig::SetDisableSystemBuffering(bool bDisableBuffering) { boost::unique_lock lock(m_lock);