Index: src/libchcore/TSubTaskDelete.h =================================================================== diff -u -N -r835e0344e9677ff02eb3b539061c48c9f3a616ce -rbebda797ec6983535a8940f8f9f15453fe6b1785 --- src/libchcore/TSubTaskDelete.h (.../TSubTaskDelete.h) (revision 835e0344e9677ff02eb3b539061c48c9f3a616ce) +++ src/libchcore/TSubTaskDelete.h (.../TSubTaskDelete.h) (revision bebda797ec6983535a8940f8f9f15453fe6b1785) @@ -28,13 +28,53 @@ BEGIN_CHCORE_NAMESPACE +class TReadBinarySerializer; +class TWriteBinarySerializer; + +namespace details +{ + /////////////////////////////////////////////////////////////////////////// + // TDeleteProgressInfo + + class TDeleteProgressInfo : public TSubTaskProgressInfo + { + public: + TDeleteProgressInfo(); + virtual ~TDeleteProgressInfo(); + + 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; + }; +} + +/////////////////////////////////////////////////////////////////////////// +// TSubTaskDelete + class LIBCHCORE_API TSubTaskDelete : public TSubTaskBase { public: TSubTaskDelete(TSubTaskContext& rContext); virtual ESubOperationResult Exec(); virtual ESubOperationType GetSubOperationType() const { return eSubOperation_Deleting; } + + virtual TSubTaskProgressInfo& GetProgressInfo() { return m_tProgressInfo; } + +private: +#pragma warning(push) +#pragma warning(disable: 4251) + details::TDeleteProgressInfo m_tProgressInfo; +#pragma warning(pop) }; END_CHCORE_NAMESPACE