Index: src/libchcore/TSubTaskFastMove.h =================================================================== diff -u -N -rd88274a4bbfd4ef005d44c4d179b7596cb627486 -rbebda797ec6983535a8940f8f9f15453fe6b1785 --- src/libchcore/TSubTaskFastMove.h (.../TSubTaskFastMove.h) (revision d88274a4bbfd4ef005d44c4d179b7596cb627486) +++ src/libchcore/TSubTaskFastMove.h (.../TSubTaskFastMove.h) (revision bebda797ec6983535a8940f8f9f15453fe6b1785) @@ -30,7 +30,35 @@ BEGIN_CHCORE_NAMESPACE class TFileFiltersArray; +class TReadBinarySerializer; +class TWriteBinarySerializer; +namespace details +{ + /////////////////////////////////////////////////////////////////////////// + // TFastMoveProgressInfo + + class TFastMoveProgressInfo : public TSubTaskProgressInfo + { + public: + TFastMoveProgressInfo(); + virtual ~TFastMoveProgressInfo(); + + virtual void Serialize(TReadBinarySerializer& rSerializer); + virtual void Serialize(TWriteBinarySerializer& rSerializer) const; + + virtual void ResetProgress(); + + void SetCurrentIndex(size_t stIndex); + void IncreaseCurrentIndex(); + size_t GetCurrentIndex() const; + + private: + size_t m_stCurrentIndex; + mutable boost::shared_mutex m_lock; + }; +} + /////////////////////////////////////////////////////////////////////////// // TSubTaskFastMove @@ -43,8 +71,16 @@ virtual ESubOperationResult Exec(); virtual ESubOperationType GetSubOperationType() const { return eSubOperation_Scanning; } + virtual TSubTaskProgressInfo& GetProgressInfo() { return m_tProgressInfo; } + private: int ScanDirectory(TSmartPath pathDirName, size_t stSrcIndex, bool bRecurse, bool bIncludeDirs, TFileFiltersArray& afFilters); + +private: +#pragma warning(push) +#pragma warning(disable: 4251) + details::TFastMoveProgressInfo m_tProgressInfo; +#pragma warning(pop) }; END_CHCORE_NAMESPACE