diff -r 1fc85118c3ae -r 870918037e16 locationdataharvester/maptileservice/src/maptiledblookuptable.cpp --- a/locationdataharvester/maptileservice/src/maptiledblookuptable.cpp Tue Aug 31 15:09:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,228 +0,0 @@ -/* -* Copyright (c) 2010 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: -* Retrieving maptile path from lookup db implementation -* -*/ - -#include -#include -#include "maptiledblookuptable.h" - -// select all from -_LIT( KSelectAllFrom, "SELECT * FROM " ); - -// string 'where' -_LIT( KStringWhere, " WHERE " ); - -// string ' = ' -_LIT( KStringEqual, " = " ); - -// string 'And' -_LIT( KStringAnd, " AND " ); - - -_LIT(KQueryByMaptileState,"SELECT * FROM cntmaptilelookuptable WHERE cntuid = %d AND ( fetchingstatus = %d OR fetchingstatus = %d )"); - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::CLookupMapTileDatabase() -// Default constructor. -// ----------------------------------------------------------------------------- -// -CLookupMapTileDatabase::CLookupMapTileDatabase() -{ -} - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::~CLookupMapTileDatabase() -// Destructor. -// ----------------------------------------------------------------------------- -// -CLookupMapTileDatabase::~CLookupMapTileDatabase() -{ - - // close the database - iItemsDatabase.Close(); - - // close the file session - iFsSession.Close(); -} - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::~CLookupMapTileDatabase() -// Creates an object of this class and pushes to cleanup stack. -// ----------------------------------------------------------------------------- -// -CLookupMapTileDatabase* CLookupMapTileDatabase::NewLC( const TDesC& aLookupTableName ) -{ - - CLookupMapTileDatabase* self = new (ELeave) CLookupMapTileDatabase; - CleanupStack::PushL(self); - self->ConstructL( aLookupTableName ); - return self; -} - - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::NewL() -// Creates an object of this class. -// ----------------------------------------------------------------------------- -// -CLookupMapTileDatabase* CLookupMapTileDatabase::NewL( const TDesC& aLookupTableName ) -{ - CLookupMapTileDatabase* self = CLookupMapTileDatabase::NewLC( aLookupTableName ); - CleanupStack::Pop( self ); - return self; -} - - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::ConstructL() -// 2nd phase contructor. -// ----------------------------------------------------------------------------- -// -void CLookupMapTileDatabase::ConstructL( const TDesC& aLookupTableName ) -{ - - User::LeaveIfError( iFsSession.Connect() ); - - iDbFileName.Copy( KLookupDbPath ); - iDbFileName.Append( aLookupTableName ); - - iDatabaseExists = EFalse; - - if( BaflUtils::FileExists( iFsSession, iDbFileName ) ) - { - // database exists - iDatabaseExists = ETrue; - } -} - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::FindNumberOfAddressL() -// find the number of address associated with the aId. -// ----------------------------------------------------------------------------- -// -int CLookupMapTileDatabase::FindNumberOfAddressL( int& aId ) -{ - int count = 0; - - // Create a query to find the item. - TFileName queryBuffer; - queryBuffer.Format( KQueryByMaptileState,aId, - MapTileService::MapTileFetchingInProgress, - MapTileService::MapTileFetchingNetworkError ); - - TInt ret = iItemsDatabase.Open( iFsSession, iDbFileName ); - - if( ret != KErrNone ) - { - //if already opened , close and open again - iItemsDatabase.Close(); - User::LeaveIfError( iItemsDatabase.Open( iFsSession, iDbFileName ) ); - } - - User::LeaveIfError( iItemsDatabase.Begin() ); - // Create a view of the table with the above query. - RDbView myView; - myView.Prepare( iItemsDatabase, TDbQuery( queryBuffer ) ); - CleanupClosePushL( myView ); - myView.EvaluateAll(); - myView.FirstL(); - - - while (myView.AtRow()) - { - count++; - myView.NextL(); - } - - CleanupStack::PopAndDestroy( &myView ); // myView - - //Close the database - iItemsDatabase.Close(); - - return count; -} - -// ----------------------------------------------------------------------------- -// CLookupMapTileDatabase::FindEntryL() -// Finds an entry in the lookup table. -// ----------------------------------------------------------------------------- -// -void CLookupMapTileDatabase::FindEntryL( TLookupItem& aLookupItem ) -{ - - // used to check whether entry available or not - TBool entryAvailable = EFalse; - - if ( iDatabaseExists ) - { - - // Create a query to find the item. - TFileName queryBuffer; - queryBuffer.Copy( KSelectAllFrom ); - queryBuffer.Append( KMapTileLookupTable ); - queryBuffer.Append( KStringWhere ); - queryBuffer.Append( NCntColUid ); - queryBuffer.Append( KStringEqual ); - queryBuffer.AppendNum( aLookupItem.iUid ); - queryBuffer.Append( KStringAnd ); - queryBuffer.Append( NColSource ); - queryBuffer.Append( KStringEqual ); - queryBuffer.AppendNum( aLookupItem.iSource ); - - TInt ret = iItemsDatabase.Open( iFsSession, iDbFileName ); - - if( ret != KErrNone ) - { - //if already opened , close and open again - iItemsDatabase.Close(); - User::LeaveIfError( iItemsDatabase.Open( iFsSession, iDbFileName ) ); - } - User::LeaveIfError( iItemsDatabase.Begin() ); - // Create a view of the table with the above query. - RDbView myView; - myView.Prepare( iItemsDatabase, TDbQuery( queryBuffer ) ); - CleanupClosePushL( myView ); - myView.EvaluateAll(); - myView.FirstL(); - - if( myView.AtRow() ) - { - // Item found. get the details. - myView.GetL(); - if( aLookupItem.iUid == myView.ColUint( KColumnUid ) ) - { - aLookupItem.iFilePath.Copy( myView.ColDes16( KColumnFilePath ) ); - aLookupItem.iFetchingStatus = myView.ColUint( KColumnMapTileFetchingStatus ); - entryAvailable = ETrue; - } - } - - CleanupStack::PopAndDestroy( &myView ); // myView - - //Close the database - iItemsDatabase.Close(); - } - - //No entry found - if( !entryAvailable ) - { - User::Leave( KErrNotFound ); - } -} - -// End of file -