diff -r e0aa398e6810 -r 3ab5c078b490 activityfw/storage/server/src/afstorage.cpp --- a/activityfw/storage/server/src/afstorage.cpp Wed Aug 18 10:05:49 2010 +0300 +++ b/activityfw/storage/server/src/afstorage.cpp Thu Sep 02 20:45:03 2010 +0300 @@ -19,6 +19,7 @@ #include #include +#include "afdatabasecleaner.h" #include "afqueries.h" #include "afentry.h" @@ -49,6 +50,7 @@ */ CAfStorage::~CAfStorage() { + delete mDatabaseCleaner; mActDb.Close(); delete mFileStore; } @@ -83,7 +85,10 @@ BaflUtils::FileExists(mFsSession, path) ? OpenDbL(path) : CreateDbL(path); CleanupStack::PopAndDestroy(&path); + mDatabaseCleaner = new (ELeave) CAfDatabaseCleaner(mActDb); + DeleteNonPersistentActivitiesL(); + RequestCleanup(); } // ----------------------------------------------------------------------------- @@ -659,3 +664,27 @@ CleanupStack::PopAndDestroy(md5); return buf; } + +// ----------------------------------------------------------------------------- +/** + * Cancel ongoing cleanup if one is in progress. + * @return ETrue if the database cleanup was in progress, EFalse otherwise + */ +TBool CAfStorage::InterruptCleanup() +{ + if (mDatabaseCleaner->IsActive()) { + mDatabaseCleaner->Cancel(); + return ETrue; + } else { + return EFalse; + } +} + +// ----------------------------------------------------------------------------- +/** + * Start database cleanup + */ +void CAfStorage::RequestCleanup() +{ + mDatabaseCleaner->StartCleanup(); +}