diff -r 793f76d9ab0c -r b3dd5ec3089d locationdataharvester/maptileservice/inc/maptiledblookuptable.h --- a/locationdataharvester/maptileservice/inc/maptiledblookuptable.h Thu Sep 02 20:20:42 2010 +0300 +++ b/locationdataharvester/maptileservice/inc/maptiledblookuptable.h Mon Oct 04 00:10:56 2010 +0300 @@ -19,73 +19,142 @@ #ifndef __MAPTILEDBLOOKUPTABLE_H__ #define __MAPTILEDBLOOKUPTABLE_H__ -//Headers needed -#include //RFs -#include //RDbNamedDatabase,RDbView +// DLL_EXPORT macro definition +#ifdef MAPTILESERVICEDLL +#define MAPTILESERVICE_EXPORT Q_DECL_EXPORT +#else +#define MAPTILESERVICE_EXPORT Q_DECL_IMPORT +#endif -#include "mylocationsdefines.h" +#include + +// forward declarations +class QSqlDatabase; + + + /** - * CLookupMapTileDatabase class. + * LookupMapTileDatabase class. * This class handles all the operations related to maptile lookup database. * */ -class CLookupMapTileDatabase : public CBase +class MAPTILESERVICE_EXPORT LookupMapTileDatabase : public QObject { public: /** - * This is a static function, which creates and returns an instance of this class. + * Constructor */ - 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 ); + LookupMapTileDatabase( QObject *parent = 0 ); /** * Destructor */ - ~CLookupMapTileDatabase(); + ~LookupMapTileDatabase(); + + /** + * Opens the lookup database. + */ + bool open(); + + /** + * Closes the lookup database. + */ + void close(); + public: + + + /** + * Creates an entry in the lookup table. + * @param[in] aLookupItem The lookup item to be created in the database. + */ + void createEntry( const MaptileLookupItem& aLookupItem ); + + /** + * Updates an entry in the lookup table. + * @param[in] aLookupItem The lookup item to be updated in the database. + */ + void updateEntry( const MaptileLookupItem& aLookupItem ); + + /** + * Updates the user setting of an calendar entry in the lookup table. + * @param[in] aLookupItem The lookup item to be updated in the database. + */ + void updateUserSetting( const MaptileLookupItem& aLookupItem ); + /** + * Deletes an entry from the lookup table. + * @param[in] aLookupItem The lookup item to be deleted from the database. + */ + void deleteEntry( MaptileLookupItem& 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 deleteMapTile( const MaptileLookupItem& aLookupItem ); + + + /** + * Gets an entry from the lookup table. + * @param[in/out] aLookupItem The lookup item to be fetched from the database. + * The source iUid and type is passed in the lookup item. If the item is found the aLookupItem remaining fields are updated. + * @return true if the item is found. + */ + bool getEntry( MaptileLookupItem& aLookupItem ); + + /** + * Gets the list of calendar ids. + * @param[out] aIdArray Calendar id list + */ + void getAllCalendarIds( QList& 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 resetEntry( MaptileLookupItem &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 + * @param[in] aLookupItem The lookup item to be found in the database. + * The source iUid and type is passed in the lookup item + * @return true if the item is found. */ - void FindEntryL( TLookupItem& aLookupItem ); + bool findEntry( const MaptileLookupItem& aLookupItem ); /** * Finds the number of address present in db associated with the aId. * @param id, entry (calendar/contact) uid. * @return Number of address a contact has. */ - int FindNumberOfAddressL( int& aId ); + int findNumberOfAddress( int& aId ); -private: - - // default constructor - CLookupMapTileDatabase(); - - // Second phase constructor - void ConstructL( const TDesC& aLookupTableName ); + /** + * 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 + */ + bool findEntryByFilePath(const QString& aFilePath); + + /** + * Get all the entries in the lookup table for a given fetching status. + * @param[in] aFetchingState The fetching status to be found in the database. + * @param[out] aLookupItemArray List of lookup items having the fetching status as aFetchingState. + */ + void findEntriesByMapTileFetchingState(const quint32 aFetchingState, + QList& aLookupItemArray); private: // Handle to the items database - RDbNamedDatabase iItemsDatabase; - - // handle to the file session - RFs iFsSession; - - // holds the database file name - TFileName iDbFileName; - - // holds the info about database existence. - TBool iDatabaseExists; + QSqlDatabase *mDb; + + + // Flag to indicate if db is open + bool mDbOpen; };