Index: src/libchcore/TSubTaskBase.cpp =================================================================== diff -u -re8f31b0f922b402878356e130c866c4f3682a7f5 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskBase.cpp (.../TSubTaskBase.cpp) (revision e8f31b0f922b402878356e130c866c4f3682a7f5) +++ src/libchcore/TSubTaskBase.cpp (.../TSubTaskBase.cpp) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -23,7 +23,6 @@ #include "stdafx.h" #include "TSubTaskBase.h" #include "TBasePathData.h" -#include "TLocalFilesystem.h" #include "TSubTaskContext.h" #include "TTaskConfiguration.h" #include Index: src/libchcore/TSubTaskContext.h =================================================================== diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskContext.h (.../TSubTaskContext.h) (revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae) +++ src/libchcore/TSubTaskContext.h (.../TSubTaskContext.h) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -36,7 +36,6 @@ class log_file; class TWorkerThreadController; class TTaskConfigTracker; - class TLocalFilesystem; class TConfig; class TFileFiltersArray; Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -rbe569bc86280887eeebb8d3e9489f6fc17c570e6 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision be569bc86280887eeebb8d3e9489f6fc17c570e6) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -24,7 +24,6 @@ #include "TSubTaskCopyMove.h" #include "TSubTaskContext.h" #include "TTaskConfiguration.h" -#include "TLocalFilesystem.h" #include "TTaskLocalStats.h" #include "TTaskConfigTracker.h" #include "TWorkerThreadController.h" @@ -279,19 +278,19 @@ TSmartPath pathSource = spFileInfo->GetFullFilePath(); TSmartPath pathDestination = GetContext().GetDestinationPath(); - TLocalFilesystem::EPathsRelation eRelation = GetContext().GetLocalFilesystem()->GetPathsRelation(pathSource, pathDestination); + IFilesystem::EPathsRelation eRelation = GetContext().GetLocalFilesystem()->GetPathsRelation(pathSource, pathDestination); switch(eRelation) { - case TLocalFilesystem::eRelation_Network: + case IFilesystem::eRelation_Network: return TBufferSizes::eBuffer_LAN; - case TLocalFilesystem::eRelation_CDRom: + case IFilesystem::eRelation_CDRom: return TBufferSizes::eBuffer_CD; - case TLocalFilesystem::eRelation_TwoPhysicalDisks: + case IFilesystem::eRelation_TwoPhysicalDisks: return TBufferSizes::eBuffer_TwoDisks; - case TLocalFilesystem::eRelation_SinglePhysicalDisk: + case IFilesystem::eRelation_SinglePhysicalDisk: return TBufferSizes::eBuffer_OneDisk; //case eRelation_Other: Index: src/libchcore/TSubTaskCopyMove.h =================================================================== diff -u -rcb4e9d4b60d62b25ae2cf556c0642601af56c787 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskCopyMove.h (.../TSubTaskCopyMove.h) (revision cb4e9d4b60d62b25ae2cf556c0642601af56c787) +++ src/libchcore/TSubTaskCopyMove.h (.../TSubTaskCopyMove.h) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -31,7 +31,6 @@ namespace chcore { - class TLocalFilesystemFile; typedef boost::shared_ptr TFileInfoPtr; struct CUSTOM_COPY_PARAMS; Index: src/libchcore/TSubTaskDelete.cpp =================================================================== diff -u -rbe569bc86280887eeebb8d3e9489f6fc17c570e6 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskDelete.cpp (.../TSubTaskDelete.cpp) (revision be569bc86280887eeebb8d3e9489f6fc17c570e6) +++ src/libchcore/TSubTaskDelete.cpp (.../TSubTaskDelete.cpp) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -25,7 +25,6 @@ #include "TSubTaskContext.h" #include "TWorkerThreadController.h" #include "TTaskConfiguration.h" -#include "TLocalFilesystem.h" #include "IFeedbackHandler.h" #include #include "TFileInfoArray.h" Index: src/libchcore/TSubTaskFastMove.cpp =================================================================== diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TSubTaskFastMove.cpp (.../TSubTaskFastMove.cpp) (revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae) +++ src/libchcore/TSubTaskFastMove.cpp (.../TSubTaskFastMove.cpp) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -25,7 +25,6 @@ #include #include "TSubTaskContext.h" #include "TTaskConfiguration.h" -#include "TLocalFilesystem.h" #include "IFeedbackHandler.h" #include "TBasePathData.h" #include "TWorkerThreadController.h" Index: src/libchcore/TTask.cpp =================================================================== diff -u -rda877d1e0007d3dffa60111c79a1d8927174e6e9 -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TTask.cpp (.../TTask.cpp) (revision da877d1e0007d3dffa60111c79a1d8927174e6e9) +++ src/libchcore/TTask.cpp (.../TTask.cpp) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -40,6 +40,7 @@ #include "TTaskConfigBufferSizes.h" #include "log.h" #include +#include "TLocalFilesystem.h" namespace chcore { Index: src/libchcore/TTask.h =================================================================== diff -u -ra27d1acf1bda3c25b6dcce0d0eb0278009ce63ae -rfb881f503caba7b2ade610ba7fc1a36a5aea5d01 --- src/libchcore/TTask.h (.../TTask.h) (revision a27d1acf1bda3c25b6dcce0d0eb0278009ce63ae) +++ src/libchcore/TTask.h (.../TTask.h) (revision fb881f503caba7b2ade610ba7fc1a36a5aea5d01) @@ -27,7 +27,6 @@ #include "TBasePathData.h" #include "TSubTaskBase.h" #include "TTaskLocalStats.h" -#include "TLocalFilesystem.h" #include "TSubTaskArray.h" #include "TSubTaskContext.h" #include "TTaskStatsSnapshot.h" @@ -36,6 +35,7 @@ #include "TEvent.h" #include #include "log.h" +#include "IFilesystem.h" namespace chcore { @@ -169,17 +169,18 @@ // other helpers chcore::log_file m_log; ///< Log file where task information will be stored - // Local filesystem access - TLocalFilesystem m_fsLocal; - /// Thread controlling object TWorkerThreadController m_workerThread; /// Mutex for locking concurrent access to members of this class #pragma warning(push) #pragma warning(disable: 4251) - TTaskLocalStatsInfo m_tLocalStats; // local statistics + // Local filesystem access + IFilesystemPtr m_fsLocal; + // local statistics + TTaskLocalStatsInfo m_tLocalStats; + mutable boost::shared_mutex m_lock; #pragma warning(pop)