diff -r 000000000000 -r 8466d47a6819 meetingrequest/mrdb/src/cesmrcaldbnormal.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/meetingrequest/mrdb/src/cesmrcaldbnormal.cpp Thu Dec 17 08:39:21 2009 +0200 @@ -0,0 +1,169 @@ +/* +* Copyright (c) 2005 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: This file implements class CESMRCalDbNormal. +* +*/ + + +//INCLUDE FILES +#include "emailtrace.h" +#include "cesmrcaldbnormal.h" + +// From System +#include +#include +#include +#include +#include +#include + +// CONSTANTS +/// Unnamed namespace for local definitions +namespace { + +#ifdef _DEBUG + +// Cal db normal panic text +_LIT( KESMRCalDbNormalTxt, "CESMRCalDbNormal" ); + +// Cal db normal panic codes +enum TESMRCalDbNormalPanicCode + { + EESMRCalDbNormalUnexpectedCalEngStatus = 1 + }; + +void Panic( TESMRCalDbNormalPanicCode aReason ) + { + User::Panic( KESMRCalDbNormalTxt, aReason ); + } + +#endif + +} // namespace + + +// ======== MEMBER FUNCTIONS ======== + +// ---------------------------------------------------------------------------- +// CESMRCalDbNormal::CESMRCalDbNormal +// ---------------------------------------------------------------------------- +// +CESMRCalDbNormal::CESMRCalDbNormal( + CCalSession& aCalSession, + MESMRCalDbObserver& aDbObserver, + MCalProgressCallBack& aCmdObserver ) + : CESMRCalDbBase( aDbObserver, aCmdObserver ) + { + FUNC_LOG; + // This subclass of CMRUtilsCalDbBase doesn't own the session + iCalSession = &aCalSession; + } + +// ---------------------------------------------------------------------------- +// CESMRCalDbNormal::~CESMRCalDbNormal +// +// Destructor. +// ---------------------------------------------------------------------------- +// +CESMRCalDbNormal::~CESMRCalDbNormal() + { + FUNC_LOG; + delete iCalEntryView; + delete iCalInstanceView; + } + +// ---------------------------------------------------------------------------- +// CESMRCalDbNormal::NewL +// ---------------------------------------------------------------------------- +// +CESMRCalDbNormal* CESMRCalDbNormal::NewL( + CCalSession& aCalSession, + MESMRCalDbObserver& aDbObserver, + MCalProgressCallBack& aCmdObserver ) + { + FUNC_LOG; + + CESMRCalDbNormal* self = + new( ELeave ) CESMRCalDbNormal( aCalSession, + aDbObserver, + aCmdObserver ); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); + + + return self; + } + +// ---------------------------------------------------------------------------- +// CESMRCalDbNormal::ConstructL +// ---------------------------------------------------------------------------- +// +void CESMRCalDbNormal::ConstructL() + { + FUNC_LOG; + + iCalEntryView = CCalEntryView::NewL( *iCalSession, *this ); + iDbStatus = MESMRCalDbObserver::EInitEntryView; + // See Completed() for continuation... + + } + +// ---------------------------------------------------------------------------- +// CESMRCalDbNormal::Completed +// ---------------------------------------------------------------------------- +// +void CESMRCalDbNormal::Completed( TInt aError ) + { + FUNC_LOG; + + if ( aError == KErrNone ) + { + if ( iDbStatus == MESMRCalDbObserver::EInitEntryView ) + { // Entry view successfully initialized, create instance view next + + TRAPD( err, iCalInstanceView = + CCalInstanceView::NewL( *iCalSession, *this ) ); + if ( err == KErrNone ) + { // Instance view initialization started: + iDbStatus = MESMRCalDbObserver::EInitInstanceView; + } + else + { // Instance view creation failed, cal engine not usable: + iDbStatus = MESMRCalDbObserver::EFinishedError; + } + } + else + { // Instance view successfully initialized + __ASSERT_DEBUG( iDbStatus == MESMRCalDbObserver::EInitInstanceView, + Panic( EESMRCalDbNormalUnexpectedCalEngStatus ) ); + iDbStatus = MESMRCalDbObserver::EFinishedOk; + } + } + else + { // Initialization error has occurred, cal engine not usable: + iDbStatus = MESMRCalDbObserver::EFinishedError; + } + + // If either of the final states has been reached, then notify observer: + if ( iDbStatus == MESMRCalDbObserver::EFinishedOk || + iDbStatus == MESMRCalDbObserver::EFinishedError ) + { + iDbObserver.HandleCalDbStatus( this, iDbStatus ); + } + + } + +// End of file +