diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/mce/src/MceConnectMailboxTimer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/mce/src/MceConnectMailboxTimer.cpp Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,101 @@ +/* +* Copyright (c) 2002 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: +* Active object for timing "Connect" query for Remote mailbox. +* +*/ + + + +// INCLUDE FILES +#include // KMsvNullIndexEntryId +#include "MceConnectMailboxTimer.h" +#include "mceui.h" + +// LOCAL CONSTANTS AND MACROS +const TInt KMceRemoteMailboxConnectionTimeout = 3000000; // 3 seconds + +// ================= MEMBER FUNCTIONS ======================= + +// C++ constructor can NOT contain any code that +// might leave. +// +CMceConnectMailboxTimer::CMceConnectMailboxTimer( CMceUi& aMceUi ) : + CActive( EPriorityStandard ), + iMceUi( aMceUi ), + iAccountId( KMsvNullIndexEntryId ) + { + } + + +// Symbian OS default constructor can leave. +void CMceConnectMailboxTimer::ConstructL() + { + User::LeaveIfError( iTimer.CreateLocal() ); + CActiveScheduler::Add( this ); + } + +// Two-phased constructor. +CMceConnectMailboxTimer* CMceConnectMailboxTimer::NewL( + CMceUi& aMceUi ) + { + CMceConnectMailboxTimer* self = + new (ELeave) CMceConnectMailboxTimer( + aMceUi ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + return self; + } + + +// Destructor +CMceConnectMailboxTimer::~CMceConnectMailboxTimer() + { + Cancel(); + iTimer.Close(); + } + +// ---------------------------------------------------- +// CMceConnectMailboxTimer::SetTimer +// ---------------------------------------------------- +void CMceConnectMailboxTimer::SetTimer( TMsvId aAccountId ) + { + const TTimeIntervalMicroSeconds32 timeInterval = KMceRemoteMailboxConnectionTimeout; + iAccountId = aAccountId; + Cancel(); + iTimer.After( iStatus, timeInterval ); + SetActive(); + } + +// ---------------------------------------------------- +// CMceConnectMailboxTimer::RunL +// ---------------------------------------------------- +void CMceConnectMailboxTimer::RunL() + { + iMceUi.GoOnlineWithQueryL( iAccountId ); + } + +// ---------------------------------------------------- +// CMceConnectMailboxTimer::DoCancel +// ---------------------------------------------------- +void CMceConnectMailboxTimer::DoCancel() + { + iTimer.Cancel(); + } + + +// End of File