Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -N -r081055369d6b332ef1651877756657973b1b2d9c -rfc67a825635691930b3ac00dc95b16e59f3d2fae --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 081055369d6b332ef1651877756657973b1b2d9c) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision fc67a825635691930b3ac00dc95b16e59f3d2fae) @@ -122,9 +122,10 @@ } } - void TCopyMoveProgressInfo::InitLoader(IColumnsDefinition& rColumns) + void TCopyMoveProgressInfo::InitColumns(IColumnsDefinition& rColumns) { - rColumns % _T("current_index") % _T("cf_processed_size"); + rColumns.AddColumn(_T("current_index"), IColumnsDefinition::eType_sizet); + rColumns.AddColumn(_T("cf_processed_size"), IColumnsDefinition::eType_ulonglong); } void TCopyMoveProgressInfo::Load(const ISerializerRowReaderPtr& spRowReader) @@ -1318,6 +1319,8 @@ void TSubTaskCopyMove::Store(const ISerializerPtr& spSerializer) const { ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtask_copymove")); + InitColumns(spContainer); + ISerializerRowDataPtr spRow; if(m_tProgressInfo.WasSerialized()) @@ -1333,12 +1336,7 @@ { ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtask_copymove")); - IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition(); - if(rColumns.IsEmpty()) - { - details::TCopyMoveProgressInfo::InitLoader(rColumns); - TSubTaskStatsInfo::InitLoader(rColumns); - } + InitColumns(spContainer); ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader(); if(spRowReader->Next()) @@ -1348,4 +1346,14 @@ } } +void TSubTaskCopyMove::InitColumns(const ISerializerContainerPtr& spContainer) const +{ + IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition(); + if(rColumns.IsEmpty()) + { + details::TCopyMoveProgressInfo::InitColumns(rColumns); + TSubTaskStatsInfo::InitColumns(rColumns); + } +} + END_CHCORE_NAMESPACE