Index: src/libchcore/TSQLiteSerializerFactory.cpp =================================================================== diff -u -N -r2fe97a93f21771d75901d4b6559057d1ea055104 -rcdb4c898156398dd4f4bf8abd7c854eff42f6ae2 --- src/libchcore/TSQLiteSerializerFactory.cpp (.../TSQLiteSerializerFactory.cpp) (revision 2fe97a93f21771d75901d4b6559057d1ea055104) +++ src/libchcore/TSQLiteSerializerFactory.cpp (.../TSQLiteSerializerFactory.cpp) (revision cdb4c898156398dd4f4bf8abd7c854eff42f6ae2) @@ -22,6 +22,7 @@ #include #include #include +#include #include "TSQLiteTaskSchema.h" #include "TSQLiteSerializer.h" #include "TSQLiteTaskManagerSchema.h" @@ -39,71 +40,60 @@ { } -ISerializerPtr TSQLiteSerializerFactory::CreateSerializer(EObjectType eObjType, const TString& strNameHint, bool bForceRecreate) +chcore::ISerializerPtr TSQLiteSerializerFactory::CreateTaskManagerSerializer(bool bForceRecreate) { - switch(eObjType) + TSmartPath pathTaskManager = m_pathSerializeDir + PathFromString(_T("tasks.sqlite")); + + if (bForceRecreate) { - case ISerializerFactory::eObj_Task: + if (!DeleteFile(pathTaskManager.ToString())) { - TString strName(strNameHint); - if(strName.IsEmpty()) - { - boost::uuids::random_generator gen; - boost::uuids::uuid u = gen(); - strName = boost::lexical_cast(u).c_str(); - } + DWORD dwLastError = GetLastError(); + if (dwLastError != ERROR_FILE_NOT_FOUND) + THROW_CORE_EXCEPTION_WIN32(eErr_CannotDeleteFile, dwLastError); + } + } - TSmartPath pathTask = PathFromWString(strName); - if(!pathTask.HasFileRoot()) - { - if(!strName.EndsWithNoCase(_T(".sqlite"))) - strName += _T(".sqlite"); + TSQLiteSerializerPtr spSerializer(boost::make_shared( + pathTaskManager, + boost::make_shared())); - pathTask = m_pathSerializeDir; - pathTask += PathFromWString(strName); - } + return spSerializer; +} - if(bForceRecreate) - { - if(!DeleteFile(pathTask.ToString())) - { - DWORD dwLastError = GetLastError(); - if(dwLastError != ERROR_FILE_NOT_FOUND) - THROW_CORE_EXCEPTION_WIN32(eErr_CannotDeleteFile, dwLastError); - } - } +chcore::ISerializerPtr TSQLiteSerializerFactory::CreateTaskSerializer(const TString& strNameHint, bool bForceRecreate) +{ + TString strName(strNameHint); + if (strName.IsEmpty()) + { + boost::uuids::random_generator gen; + boost::uuids::uuid u = gen(); + strName = boost::lexical_cast(u).c_str(); + } - TSQLiteSerializerPtr spSerializer(new TSQLiteSerializer( - pathTask, - TSQLiteTaskSchemaPtr(new TSQLiteTaskSchema))); + TSmartPath pathTask = PathFromWString(strName); + if (!pathTask.HasFileRoot()) + { + if (!strName.EndsWithNoCase(_T(".sqlite"))) + strName += _T(".sqlite"); - return spSerializer; - } + pathTask = m_pathSerializeDir; + pathTask += PathFromWString(strName); + } - case ISerializerFactory::eObj_TaskManager: + if (bForceRecreate) + { + if (!DeleteFile(pathTask.ToString())) { - TSmartPath pathTaskManager = m_pathSerializeDir + PathFromString(_T("tasks.sqlite")); - - if(bForceRecreate) - { - if(!DeleteFile(pathTaskManager.ToString())) - { - DWORD dwLastError = GetLastError(); - if(dwLastError != ERROR_FILE_NOT_FOUND) - THROW_CORE_EXCEPTION_WIN32(eErr_CannotDeleteFile, dwLastError); - } - } - - TSQLiteSerializerPtr spSerializer(new TSQLiteSerializer( - pathTaskManager, - TTaskManagerSchemaPtr(new TSQLiteTaskManagerSchema))); - - return spSerializer; + DWORD dwLastError = GetLastError(); + if (dwLastError != ERROR_FILE_NOT_FOUND) + THROW_CORE_EXCEPTION_WIN32(eErr_CannotDeleteFile, dwLastError); } - - default: - THROW_CORE_EXCEPTION(eErr_InvalidArgument); } + + TSQLiteSerializerPtr spSerializer(boost::make_shared(pathTask, boost::make_shared())); + + return spSerializer; } END_CHCORE_NAMESPACE