diff -r 0920c6a9b6c8 -r 8b8b34fa9751 activityfw/activitydatabase/hsactivitydbserver/src/afsession.cpp --- a/activityfw/activitydatabase/hsactivitydbserver/src/afsession.cpp Tue Jun 29 10:20:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ -#include "afsession.h" -#include "aftask.h" -#include "activitycmd.h" - -#include "afstorageasynctask.h" -#include "afstoragesynctask.h" -#include "afobservertask.h" -#include "afbroadcasttask.h" -#include "afdataprovidertask.h" -#include "afthumbnailtask.h" - -_LIT(KTaskAlreadyExists, "Activity task exists"); - -// ----------------------------------------------------------------------------- -/** - * Constructor for performing 1st stage construction - * @param fileSession - initialized file system session - * @param taskStorage - global observers storage - * @param storage - data storage - */ - -CAfSession::CAfSession(RFs& fileSession, - MAfTaskStorage& taskStorage, - CAfStorage& storage) -: -mFileSession(fileSession), -mTasksStorage(taskStorage), -mStorage(storage) -{ - // No implementation required -} - -// ----------------------------------------------------------------------------- -/** - * Destructor. - */ -CAfSession::~CAfSession() -{ - RemoveNotValidTasks(this); - mTasksStorage.RemoveNotValidTasks(this); -} - -// ----------------------------------------------------------------------------- -/** - * Two-phased constructor. - * @param fileSession - initialized file system session - * @param taskStorage - global observers storage - * @param storage - data storage - */ -CAfSession* CAfSession::NewL(RFs& fileSession, - MAfTaskStorage& taskStorage, - CAfStorage& storage) -{ - CAfSession* self = new (ELeave) CAfSession(fileSession, - taskStorage, - storage); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; -} - -// ----------------------------------------------------------------------------- -/** - * EPOC default constructor for performing 2nd stage construction - */ -void CAfSession::ConstructL() -{ -} - -// ----------------------------------------------------------------------------- -/** - * Implements interface - * @see void CSession2::ServiceL(const RMessage2&) - */ -void CAfSession::ServiceL(const RMessage2& message) -{ - switch (message.Function()) { - case AddActivity: - case UpdateActivity: - case RemoveActivity: - case RemoveApplicationActivities: - AfStorageSyncTask::ExecuteL(mTasksStorage, mStorage, message); - break; - - case ApplicationActivity: - case Activities: - case ApplicationActivities: - CAfStorageAsyncTask::ExecuteLD(*this, mStorage, message); - break; - - case WaitActivity: - case NotifyChange: - CAfObserverTask::ExecuteLD(mTasksStorage, *this, message); - break; - - case GetThumbnail: - CAfThumbnailTask::ExecuteLD(*this, message); - break; - - case LaunchActivity: - case CancelWait: - case CancelNotify: - AfBroadcastTask::ExecuteL(mTasksStorage, message); - break; - - case GetData: - AfDataProviderTask::ExecuteL(*this,message); - break; - - default: - message.Complete(CServer2::EBadMessageNumber); - break; - } -} - -// ----------------------------------------------------------------------------- -/** - * Interface implementation - * @see MAfTaskStorage::PushL(CAfTask *) - */ -void CAfSession::PushL(CAfTask * task) -{ - (KErrNotFound == mRunningTasks.Find(task)) ? - mRunningTasks.AppendL(task) : - User::Panic(KTaskAlreadyExists, KErrAlreadyExists); -} - -// ----------------------------------------------------------------------------- -/** - * Interface implementation - * @see MAfTaskStorage::Pop(CAfTask *) - */ -void CAfSession::Pop(CAfTask *task) -{ - const TInt offset(mRunningTasks.Find(task)); - if (KErrNotFound != offset) { - mRunningTasks.Remove(offset); - } -} - -// ----------------------------------------------------------------------------- -/** - * Interface implementation - * @see MAfTaskStorage::StorageData() - */ -const RPointerArray& CAfSession::StorageData() const -{ - return mRunningTasks; -} - -// ----------------------------------------------------------------------------- -/** - * Removes not valid task - */ -void CAfSession::RemoveNotValidTasks(const CSession2* session) -{ - if (session == this) { - mRunningTasks.ResetAndDestroy(); - } -}