diff -r 8173571d354e -r 1fc85118c3ae locationdataharvester/mylocationsengine/inc/lookupmaptiledb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationdataharvester/mylocationsengine/inc/lookupmaptiledb.h Tue Aug 31 15:09:25 2010 +0300 @@ -0,0 +1,148 @@ +/* +* 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: Maptile database lookup table header. +* +*/ + +#ifndef __LOOKUPMAPTILEDB_H__ +#define __LOOKUPMAPTILEDB_H__ + +//Headers needed +#include //RFs +#include //RDbNamedDatabase,RDbView + +#include "mylocationsdefines.h" + +/** + * CLookupMapTileDatabase class. + * This class handles all the operations related to maptile lookup database. + * + */ + +class CLookupMapTileDatabase : public CBase +{ +public: + // Two phase constructors + + /** + * This is a static function, which creates and returns an instance of this class. + */ + static CLookupMapTileDatabase* NewL( const TDesC& aLookupTableName ); + + /** + * This is a static function, which creates and returns an instance of this class. Pushes the created object + * to the cleanup stack. + */ + static CLookupMapTileDatabase* NewLC( const TDesC& aLookupTableName ); + + /** + * Destructor + */ + ~CLookupMapTileDatabase(); + +public: + + /** + * Opens the lookup database. + */ + TInt Open(); + + /** + * Closes the lookup database. + */ + void Close(); + + /** + * Creates an entry in the lookup table. + * @param[in] aLookupItem The lookup item to be created in the database. + */ + void CreateEntryL( const TLookupItem& aLookupItem ); + + /** + * Updates an entry in the lookup table. + * @param[in] aLookupItem The lookup item to be updated in the database. + */ + void UpdateEntryL( const TLookupItem& aLookupItem ); + + /** + * Deletes an entry from the lookup table. + * @param[in] aLookupItem The lookup item to be deleted from the database. + */ + void DeleteEntryL( TLookupItem& aLookupItem ); + + /** + * Deletes maptile from the repository if the ref to that maptile in the db reaches one + * @param[in] aLookupItem The lookup item containing the path to the maptile + */ + void DeleteMapTileL( const TLookupItem& aLookupItem ); + + /** + * Finds an entry in the lookup table. + * @param[in/out] aLookupItem The lookup item to be found in the database. The source iUid is passed + * in the lookup item + * @return ETrue if found, else EFalse + */ + TBool FindEntryL( TLookupItem& aLookupItem); + + /** + * Finds an entry in the lookup table for the given maptile name. + * @param[in] aFilePath The lookup item to be found in the database. maptile file path is passed + * @return ETrue if found, else EFalse + */ + TBool FindEntryByFilePathL(const TDesC& aFilePath); + + void FindEntriesByMapTileFetchingStateL(const TUint32 aFetchingState, + RArray& aLookupItemArray); + + /** + * Gets the list of calendar ids. + * @param[out] aIdArray Calendar id list + */ + void GetAllCalendarIdsL( RArray& aIdArray ); + + /** + * ReSet the entry in the lookup table , with null value + * @param aLookupItem The lookup item entry to be reseted in the database, + * get the used maptile path as part of lookupItem filepath , to free the resource + */ + void ReSetEntryL( TLookupItem &aLookupItem ); +private: + + // default constructor + CLookupMapTileDatabase(); + + // Second phase constructor + void ConstructL( const TDesC& aLookupTableName ); + + // Creates a lookup table in the lookup database. + void CreateTableL(RDbDatabase& aDatabase); + +private: + + // Handle to the items database + RDbNamedDatabase iItemsDatabase; + + // handle to the file session + RFs iFsSession; + + // holds the database file name + TFileName iDbFileName; + +}; + + +#endif // __LOOKUPMAPTILEDB_H__ + +// End of file +