Index: src/libchcore/TTask.cpp =================================================================== diff -u -N -r458af7bf8c35950fdeb4b906950437596324aea1 -r73583f2ca01fa1b2eae49bbc63bce46b9ecff5db --- src/libchcore/TTask.cpp (.../TTask.cpp) (revision 458af7bf8c35950fdeb4b906950437596324aea1) +++ src/libchcore/TTask.cpp (.../TTask.cpp) (revision 73583f2ca01fa1b2eae49bbc63bce46b9ecff5db) @@ -147,13 +147,16 @@ bool bResult = spRowReader->Next(); if(bResult) { - spRowReader->GetValue(_T("name"), m_strTaskName); - spRowReader->GetValue(_T("log_path"), m_pathLog); - spRowReader->GetValue(_T("current_state"), *(int*)(ETaskCurrentState*)&m_eCurrentState); - spRowReader->GetValue(_T("destination_path"), m_pathDestinationPath); + spRowReader->GetValue(_T("name"), m_strTaskName.Value()); + spRowReader->GetValue(_T("log_path"), m_pathLog.Value()); + spRowReader->GetValue(_T("current_state"), *(int*)(ETaskCurrentState*)&m_eCurrentState.Value()); + spRowReader->GetValue(_T("destination_path"), m_pathDestinationPath.Value()); } else THROW_CORE_EXCEPTION(eErr_SerializeLoadError); + + spContainer = m_spSerializer->GetContainer(_T("base_paths")); + m_vSourcePaths.Load(spContainer); } m_bBaseDataChanged = false; @@ -170,6 +173,7 @@ ISerializerContainerPtr spContainer = m_spSerializer->GetContainer(_T("task")); ISerializerRowDataPtr spRow; + // base data if(!m_bWasSerialized || m_bBaseDataChanged) { if(m_bWasSerialized) @@ -182,12 +186,17 @@ % TRowData(_T("log_path"), m_pathLog) % TRowData(_T("current_state"), m_eCurrentState) % TRowData(_T("destination_path"), m_pathDestinationPath); + + m_bBaseDataChanged = false; + m_bWasSerialized = true; } + + // base paths + spContainer = m_spSerializer->GetContainer(_T("base_paths")); + m_vSourcePaths.Store(spContainer); } m_spSerializer->Flush(); - m_bBaseDataChanged = false; - m_bWasSerialized = true; } void TTask::KillThread()