Index: src/libchcore/TSubTaskStatsInfo.h =================================================================== diff -u -N -r79399818d01f20d3a83766543e98ef5f0ee3de38 -r7d59ab9183c933f2fc2682a95fb5d26cf2f952d7 --- src/libchcore/TSubTaskStatsInfo.h (.../TSubTaskStatsInfo.h) (revision 79399818d01f20d3a83766543e98ef5f0ee3de38) +++ src/libchcore/TSubTaskStatsInfo.h (.../TSubTaskStatsInfo.h) (revision 7d59ab9183c933f2fc2682a95fb5d26cf2f952d7) @@ -34,30 +34,16 @@ #include "TSharedModificationTracker.h" #include #include "CommonDataTypes.h" +#include "IRunningTimeControl.h" BEGIN_CHCORE_NAMESPACE class TSubTaskStatsInfo; class TSubTaskStatsSnapshot; -// class used to guard scope of the subtask processing ( -class TSubTaskProcessingGuard +class TSubTaskStatsInfo : public IRunningTimeControl { -public: - TSubTaskProcessingGuard(TSubTaskStatsInfo& rStats); - ~TSubTaskProcessingGuard(); - private: - TSubTaskProcessingGuard(const TSubTaskProcessingGuard&); - TSubTaskProcessingGuard& operator=(const TSubTaskProcessingGuard&); - -private: - TSubTaskStatsInfo& m_rStats; -}; - -class TSubTaskStatsInfo -{ -private: static const unsigned long long DefaultSpeedTrackTime = 1000; // in miliseconds static const unsigned long long DefaultSpeedSampleTime = 100; // in miliseconds @@ -120,16 +106,17 @@ void Load(const ISerializerRowReaderPtr& spRowReader); private: - TSubTaskStatsInfo(const TSubTaskStatsInfo&); - TSubTaskStatsInfo& operator=(const TSubTaskStatsInfo&); + TSubTaskStatsInfo(const TSubTaskStatsInfo&) = delete; + TSubTaskStatsInfo& operator=(const TSubTaskStatsInfo&) = delete; // is running? - void MarkAsRunning(); - void MarkAsNotRunning(); + virtual void MarkAsRunning() override; + virtual void MarkAsNotRunning() override; // time tracking - void EnableTimeTracking(); - void DisableTimeTracking(); + virtual void EnableTimeTracking() override; + virtual void DisableTimeTracking() override; + void UpdateTime(boost::upgrade_lock& lock) const; private: