diff -r 000000000000 -r ff3acec5bc43 mpxplugins/serviceplugins/collectionplugins/inc/mpxdbtable.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpxplugins/serviceplugins/collectionplugins/inc/mpxdbtable.h Thu Dec 17 08:45:05 2009 +0200 @@ -0,0 +1,383 @@ +/* +* Copyright (c) 2007 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: Base class for all table classes. +* +*/ + + +#ifndef MPXDBTABLE_H +#define MPXDBTABLE_H + +// INCLUDES +#include +#include +#include "mpxtable.h" + +// CLASS FORWARDS +class CMPXDbManager; +class RSqlStatement; +class CMPXMedia; +class CMPXMediaArray; + +// CONSTANTS +const TInt KMPXTableDefaultIndex = 0; + +// CLASS DECLARATION + +/** +* Base class for all table classes +* +* @lib MPXDbPlugin.lib +*/ +class CMPXDbTable : + public CBase, + public MMPXTable + { + protected: + + /** + * C++ constructor + * @param aDbManager database manager instance + */ + IMPORT_C CMPXDbTable(CMPXDbManager& aDbManager); + + /** + * Safely construct things that can leave + */ + IMPORT_C void BaseConstructL(); + + /** + * Destructor + */ + IMPORT_C virtual ~CMPXDbTable(); + + protected: + + /** + * Update the media from the table. To be implemeted by derived classes, the default + * implemetation does nothing. + * @param aRecord table view + * @param aAttrs the attributes to return + * @param aMedia updated with the table info + */ + IMPORT_C virtual void UpdateMediaL(RSqlStatement& aRecord, const TArray& aAttrs, + CMPXMedia& aMedia); + + /** + * Executes a query that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery); + + /** + * Executes a query that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aAsc if the block is in ascending order + * @param aQuery query to be executed + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TBool aAsc, const TDesC& aQuery); + + /** + * Executes a query with an int parameter that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, TInt aValue); + + /** + * Executes a query with one parameter that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, const TDesC& aValue); + + /** + * Executes a query with two int parameters that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 integer parameter + * @param aValue2 integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, TInt aValue1, TInt aValue2); + + /** + * Executes a query with two parameters that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, const TDesC& aValue1, TInt aValue2); + + /** + * Executes a query with two parameters that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 string parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, const TDesC& aValue1, const TDesC& aValue2); + + /** + * Executes a query with four parameters that retrieves information in a media array. + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 integer parameter + * @param aValue3 string parameter + * @param aValue4 integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery, + const TDesC& aValue1, TInt aValue2, + const TDesC& aValue3, TInt aValue4); + + /** + * Executes a query that retrieves information in a media item. + * @param aAttrs the attributes to return + * @param aMedia on return contains the result + * @param aQuery query to be executed + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, CMPXMedia& aMedia, + const TDesC& aQuery); + + /** + * Executes a query with an int that retrieves information in a media item. + * @param aAttrs the attributes to return + * @param aMedia on return contains the result + * @param aQuery query to be executed + * @param aValue integer parameter + */ + IMPORT_C void ExecuteMediaQueryL(const TArray& aAttrs, CMPXMedia& aMedia, + const TDesC& aQuery, TInt aValue); + + /** + * Executes a query that returns an int field. + * @param aQuery query to be executed + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(const TDesC& aQuery); + + /** + * Executes a query with an int parameter that returns an int field. + * @param aQuery query to be executed + * @param aValue integer parameter + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(const TDesC& aQuery, TUint32 aValue); + + /** + * Executes a query with a string parameter that returns an int field. + * @param aQuery query to be executed + * @param aValue string parameter + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(const TDesC& aQuery, const TDesC& aValue); + + /** + * Executes a query with a string and an int parameter that returns an int field. + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 int parameter + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(const TDesC& aQuery, const TDesC& aValue1, TUint32 aValue2); + + /** + * Executes a query with two int parameters that returns an int field. + * @param aQuery query to be executed + * @param aValue1 int parameter + * @param aValue2 int parameter + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(const TDesC& aQuery, TUint32 aValue1, TUint32 aValue2); + + /** + * Executes a query that returns an int field. + * @param aDriveID drive identifier + * @param aQuery query to be executed + * @return returned field value + */ + IMPORT_C TUint32 ExecuteIntQueryL(TInt aDriveID,const TDesC& aQuery); + + /** + * Executes a query that returns one or multiple records with one int field each. + * The int values are summed and the result returned. + * @param aQuery query to be executed + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery); + + /** + * Executes a sum query with an int parameter. + * @param aQuery query to be executed + * @param aValue int parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, TUint32 aValue); + + /** + * Executes a sum query with two int parameters. + * @param aQuery query to be executed + * @param aValue1 int parameter + * @param aValue2 int parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, + TUint32 aValue1, TUint32 aValue2); + + /** + * Executes a sum query with a string and an int parameter. + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 int parameter + * @return sum of int values + */ + IMPORT_C TUint32 ExecuteSumQueryL(const TDesC& aQuery, + const TDesC& aValue1, TUint32 aValue2); + + /** + * Executes a sum query with three int parameters. + * @param aQuery query to be executed + * @param aValue1 int parameter + * @param aValue2 int parameter + * @param aValue3 int parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, + TUint32 aValue1, TUint32 aValue2, TUint32 aValue3); + + /** + * Executes a sum query with a string and an int parameter. + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 string parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, + const TDesC& aValue1, const TDesC& aValue2); + + /** + * Executes a sum query with a string and an int parameter. + * @param aQuery query to be executed + * @param aValue string parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, const TDesC& aValue); + + /** + * Executes a sum query with a string and an int parameter. + * @param aQuery query to be executed + * @param aValue1 string parameter + * @param aValue2 int parameter + * @param aValue3 string parameter + * @param aValue4 int parameter + * @return sum of int values + */ + IMPORT_C TInt ExecuteSumQueryL(const TDesC& aQuery, + const TDesC& aValue1, TUint32 aValue2, const TDesC& aValue3, TUint32 aValue4); + + + /** + * Executes a media query that is bound to a specific query id. + * If the query has not been prepared it will be prepared + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 TInt value to be bound to the query + * @param aValue2 TInt value to be bound to the query + * @param aQueryId unique ID to identify the query + */ + IMPORT_C void ExecuteMediaQueryL( const TArray& aAttrs, + CMPXMediaArray& aMediaArray, + const TDesC& aQuery, + TInt aValue1, + TInt aValue2, + TUint aQueryId ); + + /** + * Executes a media query that is bound to a specific query id. + * If the query has not been prepared it will be prepared + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aValue1 value to be bound to the query + * @param aValue2 value to be bound to the query + * @param aAsc ascending or descending data retrival + * @param aQueryId unique ID to identify the query + */ + IMPORT_C void ExecuteMediaQueryL( const TArray& aAttrs, + CMPXMediaArray& aMediaArray, + const TDesC& aQuery, + const TDesC& aTitle, + TInt aCount, + TBool aAsc, + TUint aQueryId ); + + /** + * Checks that the specified query can be executed. + * @param aDatabase database to execute the query on + * @param aQuery query to execute + * @return ETrue if the query can be executed, EFalse otherwise + */ + IMPORT_C TBool DoCheckTable(RSqlDatabase& aDatabase, const TDesC& aQuery); + + /** + * Executes a query with four parameters that retrieves information in a media array. + * @param aDrive integer parameter + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + * @param aPlaylistId string parameter + */ + IMPORT_C void ExecuteMediaQueryL(TInt aDrive, const TArray& aAttrs, + CMPXMediaArray& aMediaArray,const TDesC& aQuery,TInt aPlaylistId); + + /** + * Executes a query with an int parameter that retrieves information in a media array. + * @param aDrive integer parameter + * @param aAttrs the attributes to return + * @param aMediaArray on return contains the results + * @param aQuery query to be executed + */ + IMPORT_C void ExecuteMediaQueryOnDriveL(TInt aDrive,const TArray& aAttrs, + CMPXMediaArray& aMediaArray, const TDesC& aQuery); + + protected: // Data + + CMPXDbManager& iDbManager; + }; + +#endif // MPXDBTABLE_H + +// End of File