diff -r 522cd55cc3d7 -r 13ae750350c9 landmarksui/engine/src/CLmkParseAllWrapper.cpp --- a/landmarksui/engine/src/CLmkParseAllWrapper.cpp Tue Feb 02 00:16:03 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ -/* -* 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: LandmarksUi Content File - -* -*/ - - -// INCLUDE FILES -#include "EPos_CPosLandmarkDatabase.h" -#include -#include "CLmkParseAllWrapper.h" -#include -#include -#include -#include -#include "CLmkAOOperation.h" -#include "CLmkLandMarkCategoriesName.h" -#include - -#if defined(_DEBUG) -// CONSTANTS -/// Unnamed namespace for local definitions -namespace { - -_LIT( KPanicMsg, "CLmkParseAllWrapper" ); - -void Panic( TPanicCode aReason ) - { - User::Panic( KPanicMsg, aReason ); - } -} // namespace -#endif -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::CLmkParseAllWrapper -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CLmkParseAllWrapper::CLmkParseAllWrapper( - CPosLandmarkParser& aParser, - MLmkAOOperationObserver& aObserver, - CPosLandmarkDatabase& aDb ) - : iParser( aParser ), - iObserver( aObserver), - iDb(aDb) - { - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CLmkParseAllWrapper::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CLmkParseAllWrapper* CLmkParseAllWrapper::NewL( - CPosLandmarkParser& aParser, - MLmkAOOperationObserver& aObserver, - CPosLandmarkDatabase& aDb ) - { - CLmkParseAllWrapper* self = - new ( ELeave ) CLmkParseAllWrapper( aParser, aObserver, aDb ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::~CLmkParseAllWrapper -// ----------------------------------------------------------------------------- -// -CLmkParseAllWrapper::~CLmkParseAllWrapper() - { - iLmkLandmarks.ResetAndDestroy(); - iCategoriesNames.ResetAndDestroy(); - delete iAOOperation; - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::ParseAllL -// ----------------------------------------------------------------------------- -// -void CLmkParseAllWrapper::ParseAllL() - { - CPosLmOperation* operation = iParser.ParseContentL(); - - __ASSERT_DEBUG( !iAOOperation, Panic( KLmkPanicAlreadyActive ) ); - - iAOOperation = - CLmkAOOperation::NewL( operation, - *this, - MLmkAOOperationObserver::EParse, - ETrue ); - iAOOperation->StartOperation(); - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::LandmarkLC -// ----------------------------------------------------------------------------- -// -CPosLandmark* CLmkParseAllWrapper::LandmarkLC( TUint aLandmarkIndex ) - { - __ASSERT_DEBUG( aLandmarkIndex < TUint( iLmkLandmarks.Count() ), - Panic( KLmkPanicInvalidIndex ) ); - - CLmkLandmark* lmkLandmarks = iLmkLandmarks[aLandmarkIndex]; - CPosLandmark* landmark = lmkLandmarks->PosLandmark(); - return CPosLandmark::NewLC( *landmark ); - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::CategoryNameLC -// ----------------------------------------------------------------------------- -// -CLmkLandMarkCategoriesName* CLmkParseAllWrapper::CategoryNameLC( TUint aLandmarkIndex ) - { - __ASSERT_DEBUG( aLandmarkIndex < TUint( iCategoriesNames.Count() ), - Panic( KLmkPanicInvalidIndex ) ); - - CLmkLandMarkCategoriesName* category = CLmkLandMarkCategoriesName::NewL( *iCategoriesNames[aLandmarkIndex]); - CleanupStack::PushL(category); - return category; - } -// CLmkParseAllWrapper::HandleOperationL -// ----------------------------------------------------------------------------- -// -void CLmkParseAllWrapper::HandleOperationL( - TOperationTypes aType, - TReal32 aProgress, - TInt aStatus ) - { - __ASSERT_DEBUG( aType == EParse, Panic( KLmkPanicUnknownOperation ) ); - - if ( aStatus == KPosLmOperationNotComplete || - aStatus == KErrNone ) - { - CPosLandmark* landmark = iParser.LandmarkLC(); - CLmkLandMarkCategoriesName* categoryNames = CLmkLandMarkCategoriesName::NewL(); - CleanupStack::PushL(categoryNames); - - RArray* categoryIdArray = new(ELeave) RArray; - CleanupClosePushL(*categoryIdArray); - landmark->GetCategoriesL( *categoryIdArray ); - HBufC* catName = HBufC::NewLC( KPosLmMaxCategoryNameLength ); - TPtrC categoryPtr(catName->Des()); - RPointerArray* categories = new(ELeave) RPointerArray; - CleanupClosePushL(*categories); - for( TInt cnt = 0; cnt < categoryIdArray->Count(); cnt++ ) - { - CPosLandmarkCategory *category = iParser.LandmarkCategoryLC((*categoryIdArray)[cnt]); - category->GetCategoryName( categoryPtr ); - /* - * For predefined category, find the name from local database and - * display the localised names to the user - * If received predefined category does not exist in the local db, - * then treat is as a newly received category - */ - if ( category->GlobalCategory() != KPosLmNullGlobalCategory ) // global category - { - // Get the name from db (localised name for predefined category is stored in db) - HBufC* globCatName = NULL; - CPosLmCategoryManager* categoryMgr = CPosLmCategoryManager::NewL( iDb ); - CleanupStack::PushL( categoryMgr ); - globCatName = categoryMgr->GlobalCategoryNameL( category->GlobalCategory() ); - if ( globCatName == NULL ) - { - categoryNames->AddCategoryName( categoryPtr ); - } - else - { - CleanupStack::PushL( globCatName ); - if ( globCatName->Length() > 0 ) - { - // Add it to categories to be shown - categoryNames->AddCategoryName( *globCatName ); - } - CleanupStack::PopAndDestroy( globCatName ); - } - CleanupStack::PopAndDestroy( categoryMgr ); - } - else // User defined categories - { - categoryNames->AddCategoryName( categoryPtr ); - } - User::LeaveIfError(categories->Append(category)); - CleanupStack::Pop(category); - } - //categoryIdArray->Close(); - CLmkLandmark* lmkLandmarks = CLmkLandmark::NewL(landmark,*categories); - CleanupStack::PushL(lmkLandmarks); - User::LeaveIfError( iLmkLandmarks.Append( lmkLandmarks ) ); - User::LeaveIfError( iCategoriesNames.Append( categoryNames ) ); //Owner ship transferred to array - CleanupStack::Pop();//lmkLandmarks - CleanupStack::Pop( );//categories - categories->ResetAndDestroy(); - delete categories; - CleanupStack::PopAndDestroy( 2 ); //catName,categoryIdArray - delete categoryIdArray; - CleanupStack::Pop();//categoryNames - CleanupStack::PopAndDestroy();//landmark - - } - - if ( aStatus != KPosLmOperationNotComplete ) - { // parsing finished or error occured - __ASSERT_DEBUG( iAOOperation, Panic( KLmkPanicNullMember ) ); - - delete iAOOperation; - iAOOperation = NULL; - - iObserver.HandleOperationL( aType, aProgress, aStatus ); - } - } - -// ----------------------------------------------------------------------------- -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::NumOfLandmarks -// ----------------------------------------------------------------------------- -// -TInt CLmkParseAllWrapper::NumOfLandmarks() - { - return iLmkLandmarks.Count(); - } - -// ----------------------------------------------------------------------------- -// CLmkParseAllWrapper::LmkLandmarkLC -// ----------------------------------------------------------------------------- -// -CLmkLandmark* CLmkParseAllWrapper::LmkLandmarkLC( TInt aLandmarkIndex ) - { - __ASSERT_DEBUG( aLandmarkIndex < TUint( iLmkLandmarks.Count() ), - Panic( KLmkPanicInvalidIndex ) ); - - CLmkLandmark* landmark = iLmkLandmarks[aLandmarkIndex]; - CLmkLandmark* lmkLandmarks = CLmkLandmark::NewL( *landmark ); - CleanupStack::PushL(lmkLandmarks); - return lmkLandmarks; - } -// End of File