Index: src/libchcore/TSubTaskContext.h =================================================================== diff -u -r9ba9390b8f79c7a3fd1f9d6d9e92038d92222621 -rc6d96d4152aab0785a5f850b5ed9eb4a3584fd91 --- src/libchcore/TSubTaskContext.h (.../TSubTaskContext.h) (revision 9ba9390b8f79c7a3fd1f9d6d9e92038d92222621) +++ src/libchcore/TSubTaskContext.h (.../TSubTaskContext.h) (revision c6d96d4152aab0785a5f850b5ed9eb4a3584fd91) @@ -26,6 +26,8 @@ #include "libchcore.h" #include "TPath.h" #include "EOperationTypes.h" +#include "IFeedbackHandler.h" +#include "TBasePathData.h" namespace icpf { @@ -34,57 +36,53 @@ BEGIN_CHCORE_NAMESPACE -class IFeedbackHandler; class TWorkerThreadController; -class TBasePathDataContainer; class TTaskConfigTracker; class TLocalFilesystem; -class TTaskLocalStatsInfo; -class TTaskBasicProgressInfo; class TFileInfoArray; class TConfig; +class TFileFiltersArray; /////////////////////////////////////////////////////////////////////////// // TSubTaskContext class LIBCHCORE_API TSubTaskContext { public: - TSubTaskContext(TConfig& rConfig, - TBasePathDataContainer& rBasePathDataContainer, TFileInfoArray& rFilesCache, - TTaskConfigTracker& rCfgTracker, icpf::log_file& rLog, - IFeedbackHandler* piFeedbackHandler, TWorkerThreadController& rThreadController, TLocalFilesystem& rfsLocal); + TSubTaskContext(TConfig& rConfig, const TBasePathDataContainerPtr& spBasePaths, + const TFileFiltersArray& rFilters, TFileInfoArray& rFilesCache, + TTaskConfigTracker& rCfgTracker, icpf::log_file& rLog, const IFeedbackHandlerPtr& spFeedbackHandler, + TWorkerThreadController& rThreadController, TLocalFilesystem& rfsLocal); ~TSubTaskContext(); - TConfig& GetConfig() { return m_rConfig; } - const TConfig& GetConfig() const { return m_rConfig; } + TConfig& GetConfig(); + const TConfig& GetConfig() const; - chcore::EOperationType GetOperationType() const { return m_eOperationType; } - void SetOperationType(chcore::EOperationType eOperationType) { m_eOperationType = eOperationType; } + chcore::EOperationType GetOperationType() const; + void SetOperationType(chcore::EOperationType eOperationType); - TBasePathDataContainer& GetBasePathDataContainer() { return m_rBasePathDataContainer; } - const TBasePathDataContainer& GetBasePathDataContainer() const { return m_rBasePathDataContainer; } + TBasePathDataContainerPtr GetBasePaths() const; - TFileInfoArray& GetFilesCache() { return m_rFilesCache; } - const TFileInfoArray& GetFilesCache() const { return m_rFilesCache; } + const TFileFiltersArray& GetFilters() const; + TFileInfoArray& GetFilesCache(); + const TFileInfoArray& GetFilesCache() const; - TSmartPath GetDestinationPath() const { return m_pathDestination; } - void SetDestinationPath(const TSmartPath& pathDestination) { m_pathDestination = pathDestination; } + TSmartPath GetDestinationPath() const; + void SetDestinationPath(const TSmartPath& pathDestination); - TTaskConfigTracker& GetCfgTracker() { return m_rCfgTracker; } - const TTaskConfigTracker& GetCfgTracker() const { return m_rCfgTracker; } + TTaskConfigTracker& GetCfgTracker(); + const TTaskConfigTracker& GetCfgTracker() const; - icpf::log_file& GetLog() { return m_rLog; } - const icpf::log_file& GetLog() const { return m_rLog; } + icpf::log_file& GetLog(); + const icpf::log_file& GetLog() const; - IFeedbackHandler* GetFeedbackHandler() { return m_piFeedbackHandler; } - const IFeedbackHandler* GetFeedbackHandler() const { return m_piFeedbackHandler; } + IFeedbackHandlerPtr GetFeedbackHandler(); - TWorkerThreadController& GetThreadController() { return m_rThreadController; } - const TWorkerThreadController& GetThreadController() const { return m_rThreadController; } + TWorkerThreadController& GetThreadController(); + const TWorkerThreadController& GetThreadController() const; - TLocalFilesystem& GetLocalFilesystem() { return m_rfsLocal; } - const TLocalFilesystem& GetLocalFilesystem() const { return m_rfsLocal; } + TLocalFilesystem& GetLocalFilesystem(); + const TLocalFilesystem& GetLocalFilesystem() const; private: TSubTaskContext(const TSubTaskContext& rSrc); @@ -96,8 +94,13 @@ EOperationType m_eOperationType; // information about input paths - TBasePathDataContainer& m_rBasePathDataContainer; +#pragma warning(push) +#pragma warning(disable: 4251) + TBasePathDataContainerPtr m_spBasePaths; +#pragma warning(pop) + const TFileFiltersArray& m_rFilters; + // data on which to operate TFileInfoArray& m_rFilesCache; @@ -113,7 +116,10 @@ icpf::log_file& m_rLog; // feedback handling - IFeedbackHandler* m_piFeedbackHandler; +#pragma warning(push) +#pragma warning(disable: 4251) + IFeedbackHandlerPtr m_spFeedbackHandler; +#pragma warning(pop) // thread control TWorkerThreadController& m_rThreadController;