diff -r d189ee25cf9d -r 3533d4323edc meetingrequest/mrtasks/src/cesmrtaskextensionimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrtasks/src/cesmrtaskextensionimpl.cpp Wed Sep 01 12:28:57 2010 +0100 @@ -0,0 +1,270 @@ +/* +* Copyright (c) 2007-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: ESMR task extension implementation +* +*/ + +#include "emailtrace.h" +#include "cesmrtaskextensionimpl.h" + +#include +#include "esmrinternaluid.h" +// +#include "cesmrpolicymanager.h" +// +#include "mesmrmeetingrequestentry.h" +#include "cesmrtaskfactory.h" +#include "mesmrtask.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::CESMRTaskExtenstionImpl +// --------------------------------------------------------------------------- +// +CESMRTaskExtenstionImpl::CESMRTaskExtenstionImpl( MESMRTaskFactory& aTaskFactory ) + : iTaskFactory( aTaskFactory ) + { + FUNC_LOG; + //do nothing + } + + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::~CESMRTaskExtenstionImpl +// --------------------------------------------------------------------------- +// +EXPORT_C CESMRTaskExtenstionImpl::~CESMRTaskExtenstionImpl() + { + FUNC_LOG; + //do nothing + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::NewL +// --------------------------------------------------------------------------- +// +EXPORT_C CESMRTaskExtenstionImpl* CESMRTaskExtenstionImpl::NewL( + MESMRTaskFactory& aTaskFactory ) + { + FUNC_LOG; + CESMRTaskExtenstionImpl* self = + new (ELeave) CESMRTaskExtenstionImpl( aTaskFactory ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::ConstructL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::ConstructL() + { + FUNC_LOG; + //do nothing + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::SendAndStoreResponseL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::SendAndStoreResponseL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // First do possible command conversion + + switch ( aCommand ) + { + case EESMRAcceptWithoutAttachmentCheck: + { + aCommand = EESMRCmdAcceptMR; + break; + } + case EESMRTentativeWithoutAttachmentCheck: + { + aCommand = EESMRCmdTentativeMR; + break; + } + case EESMRDeclineWithoutAttachmentCheck: + { + aCommand = EESMRCmdDeclineMR; + break; + } + default: + { + break; + } + } + + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::SendAndStoreMRL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::SendAndStoreMRL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::SendAndStoreMRL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::DeleteAndSendMRL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And execute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::StoreEntryToLocalDBL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::StoreEntryToLocalDBL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::ForwardMRAsEmailL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::ForwardMRAsEmailL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::ReplyAsEmailL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::ReplyAsEmailL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::DeleteEntryFromLocalDBL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::DeleteEntryFromLocalDBL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::MarkTodoAsDoneL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::MarkTodoAsDoneL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And execute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::MarkTodoAsNotDoneL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::MarkTodoAsNotDoneL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( aCommand, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::MoveEntryToCurrentDBL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::MoveEntryToCurrentDBL( + TESMRCommand /*aCommand*/, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + + // Create And exexute task + CreateAndExecuteTaskL( EESMRCmdCalendarChange, aEntry ); + } + +// --------------------------------------------------------------------------- +// CESMRTaskExtenstionImpl::CreateAndExecuteTaskL +// --------------------------------------------------------------------------- +// +void CESMRTaskExtenstionImpl::CreateAndExecuteTaskL( + TESMRCommand aCommand, + MESMRCalEntry& aEntry ) + { + FUNC_LOG; + MESMRTask* task = iTaskFactory.CreateTaskL( aCommand, aEntry ); + + if (task ) + { + CleanupDeletePushL( task ); + task->ExecuteTaskL(); + CleanupStack::PopAndDestroy( task ); // task; + } + else + { + // Task cannot be constructed --> Leave + + User::Leave( KErrNotSupported ); + } + } + +//EOF +