Index: src/libchcore/TSubTaskArray.h
===================================================================
diff -u -rbebda797ec6983535a8940f8f9f15453fe6b1785 -r12a1725bfd04b0f55fd0fda302975fdcd4174943
--- src/libchcore/TSubTaskArray.h	(.../TSubTaskArray.h)	(revision bebda797ec6983535a8940f8f9f15453fe6b1785)
+++ src/libchcore/TSubTaskArray.h	(.../TSubTaskArray.h)	(revision 12a1725bfd04b0f55fd0fda302975fdcd4174943)
@@ -26,6 +26,7 @@
 #include "libchcore.h"
 #include <boost/tuple/tuple.hpp>
 #include "TSubTaskBase.h"
+#include "TTaskLocalStats.h"
 
 BEGIN_CHCORE_NAMESPACE
 
@@ -73,13 +74,17 @@
 class LIBCHCORE_API TSubTasksArray
 {
 public:
-	TSubTasksArray();
-	TSubTasksArray(const TOperationPlan& rOperationPlan, TSubTaskContext& rSubTaskContext);
+	TSubTasksArray(TTaskLocalStatsInfo& rLocalStats);
+	TSubTasksArray(const TOperationPlan& rOperationPlan, TSubTaskContext& rSubTaskContext, TTaskLocalStatsInfo& rLocalStats);
 	~TSubTasksArray();
 
 	void Init(const TOperationPlan& rOperationPlan, TSubTaskContext& rSubTaskContext);
-	void ResetProgress();
 
+	// Stats handling
+	void GetTaskStats(TTaskStatsSnapshot& rSnapshot) const;
+	void ResetProgressAndStats();
+
+	// progress handling
 	void SerializeProgress(TReadBinarySerializer& rSerializer);
 	void SerializeProgress(TWriteBinarySerializer& rSerializer) const;
 
@@ -89,14 +94,20 @@
 	TSubTasksArray(const TSubTasksArray& rSrc);
 	TSubTasksArray& operator=(const TSubTasksArray& rSrc);
 
+	void AddSubTask(const TSubTaskBasePtr& spOperation, int iPercent, bool bIsPartOfEstimation);
+
 private:
 	TSubTaskContext* m_pSubTaskContext;
+	TTaskLocalStatsInfo& m_rLocalStats;
 
 #pragma warning(push)
 #pragma warning(disable: 4251)
-	std::vector<boost::tuples::tuple<TSubTaskBasePtr, double, bool> > m_vSubTasks;	// pointer to the subtask object / part of the whole process / is this the part of estimation?
+	std::vector<boost::tuples::tuple<TSubTaskBasePtr, int, bool> > m_vSubTasks;	// pointer to the subtask object / part of the whole process / is this the part of estimation?
+
 	details::TTaskBasicProgressInfo m_tProgressInfo;
 #pragma warning(pop)
+
+	friend class TTaskProcessingGuard;
 };
 
 END_CHCORE_NAMESPACE