--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmde.h Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-/*
-* Copyright (c) 2006 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:
-*
-*/
-
-
-
-#ifndef _C_GLXDATASOURCETASKMDE_H_
-#define _C_GLXDATASOURCETASKMDE_H_
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-// INCLUDES
-#include <e32cmn.h>
-#include <glxdatasource.h>
-#include <glxdatasourcetask.h>
-#include <glxfilterproperties.h>
-#include <mdccommon.h>
-#include <mdequery.h>
-#include <mglxtnthumbnailcreatorclient.h>
-#include <mpxfilter.h>
-
-// FORWARD DECLARATIONS
-class CGlxDataSourceMde;
-class CGlxRequest;
-class CGlxtnThumbnailCreator;
-class CMdEObjectDef;
-class CMdEObjectQuery;
-class CMdESession;
-
-
-/**
- * Query types supported by subclasses of CGlxDataSourceTaskMde
- */
-enum TGlxQueryType
- {
- EContainerFirstItemQuery, // CGlxDataSourceTaskMdeThumbnail+
- EIdListQuery, // GlxDataSourceTaskMdeIdList
- EAttributeQuery, // CGlxDataSourceTaskMdeAttribute
- ELocationAttributeQuery, // CGlxDataSourceTaskMdeAttribute
- EImageVideoQuery, // CGlxDataSourceTaskMdeAttribute (but should be general)
- ECommandRemoveFromContainer, // CGlxDataSourceTaskMdeCommand
- ECommandAddToContainer, // CGlxDataSourceTaskMdeCommand
- ECommandRemoveLocation, // CGlxDataSourceTaskMdeCommand
- ECommandAddContainer, // CGlxDataSourceTaskMdeCommand adds a container
- ECommandDeleteContainers, // CGlxDataSourceTaskMdeCommand deletes containers objects
- ECommandDeleteItems, // CGlxDataSourceTaskMdeCommand deletes containers objects
- ECommandRenameContainer,
- ECommandRename
- };
-
-/**
- * CGlxDataSourceTaskMde class
- * Base class for mde tasks: provides task generic functionality.
- */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMde) : public CGlxDataSourceTask, public MMdEQueryObserver
- {
-public:
- /**
- * Constructor.
- * @param aRequest request to be executed.
- * @param aObserver observer to be informed when task has completed.
- * @param aDataSource data source to be used by this object.
- */
- CGlxDataSourceTaskMde(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver,
- CGlxDataSource* aDataSource);
-
- /**
- * Destructor.
- */
- ~CGlxDataSourceTaskMde();
-
- /**
- * Second stage constructor
- */
- virtual void ConstructL();
-
-protected: // to be implemented by deriving classes
- /**
- * See @ref CGlxDataSourceTask::ExecuteRequestL
- */
- virtual void ExecuteRequestL() = 0;
-
- /**
- * Must be implemented by deriving classes. To handle query completion
- * @param aQuery Query that has been completed.
- */
- virtual void DoHandleQueryCompletedL(CMdEQuery& aQuery) = 0;
-
- /**
- * Optionally implemented by deriving classes. Used if the deriving class has
- * to run more than one query. Should start the next query or call HandleRequestComplete()
- * if no futher queries are required to be run. If the deriving class only has a single query,
- * HandleRequestComplete() can be called from DoHandleQueryCompletedL()
- */
- virtual void DoNextQueryL() {}
-
-public: // From CGlxDataSourceTask
- /**
- * See @ref CGlxDataSourceTask::CancelRequest
- */
- void CancelRequest();
-
-private: // from MMdEQueryObserver
- /**
- * See @ref MMdEQueryObserver::HandleQueryNewResults
- */
- void HandleQueryNewResults( CMdEQuery& aQuery,
- TInt aFirstNewItemIndex,
- TInt aNewItemCount );
- /**
- * See @ref MMdEQueryObserver::HandleQueryNewResults
- */
- void HandleQueryNewResults( CMdEQuery& aQuery,
- TInt aNewObjectItemCount,
- TInt aNewRelationItemCount,
- TInt aNewEventItemCount);
- /**
- * See @ref MMdEQueryObserver::HandleQueryCompleted
- */
- void HandleQueryCompleted( CMdEQuery& aQuery, TInt aError);
-
-protected:
-
- /**
- * Returns a pointer to the CGlxDataSourceMde object passed in on instantiation.
- * @return a pointer to the CGlxDataSourceMde object passed in on instantiation.
- */
- CGlxDataSourceMde* DataSource();
-
- void AddMonthFilterL(const TGlxMediaId& aContainerId, TGlxFilterProperties& aFilterProperties);
-
- void AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& aFilterProperties);
-
- /**
- * Set query contditions by container id and filter properties.
- * @param aLogicCondition logic condition to add conditions to
- * @param aContainerId Id of the container
- * @param aContainerIsLeft. This should be set to to ETrue if the container is on the left side of the releation, or
- * EFalse if the container is on the right side of the relation
- *
- */
- void SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef);
-
- void SetQueryFilterConditionsL(CMdELogicCondition& aLogicCondition, CMdEObjectDef& aObjectDef, const TGlxFilterProperties& aFilterProperties);
-
- void SetSortOrderL(CMdEQuery& aQuery, CMdEObjectDef& aObjectDef, const TGlxFilterProperties& aFilterProperties);
-
- /**
- * Returns the maximum number of items that a query should find.
- * @return Maximum number of results
- */
- TInt MaxQueryResultsCount(const TGlxFilterProperties& aFilterProperties) const;
-
- /**
- * Removes and destroys the oldest query in iQueries.
- */
- void RemoveQuery();
-
- void DoQueryL(CMdEObjectDef& aObjectDef, TBool aIsContent, TGlxQueryType aQueryType, TQueryResultMode aResultMode, const TGlxMediaId& aContainerId);
-
- /**
- * Adds queries for images and or videos to the query queue. The queries will return objects
- * of type image or video that have ids specified by aObjectIds.
- * @param aObjectIds A list of the ids of the required objects.
- * @param aFilterProperties TGlxFilterProperties.iItemType is used to determine if only
- * image or video queries are required if iItemType is not set to EGlxFilterImage or
- * EGlxFitlerVideo a query for images will be queued first followed by a query for videos.
- */
- void QueueImageVideoObjectQueriesL(const RArray<TItemId>& aObjectIds, const TGlxFilterProperties& aFilterProperties);
-
- /**
- * Adds a query for tag objects that have ids specified by aObjectIds
- * to the query queue.
- * @param aObjectIds A list of the ids of the required objects.
- */
- void QueueTagObjectQueryL(const RArray<TItemId>& aObjectIds);
-
- /**
- * Adds a query for album objects that have ids specified by aObjectIds
- * to the query queue.
- * @param aObjectIds A list of the ids of the required objects.
- */
- void QueueAlbumObjectQueryL(const RArray<TItemId>& aObjectIds);
-
- /**
- * Adds a query for "month" objects that have ids specified by aObjectIds
- * to the query queue.
- * @param aObjectIds A list of the ids of the required objects.
- */
- void QueueMonthObjectQueryL(const RArray<TItemId>& aObjectIds);
-
- /**
- * Adds a query for objects of type specified by aObjectDef
- * that have ids specified by aObjectIds to the query queue.
- * @param aObjectDef type of objects required.
- * @param aObjectIds A list of the ids of the required objects.
- * @param aQueryType The query type.
- */
- void QueueObjectQueryL(CMdEObjectDef& aObjectDef,
- const RArray<TItemId>& aObjectIds, const TGlxQueryType& aQueryType);
-
- /**
- * Appends a query to the query queue. (the ownership of the query is transferred)
- * @param aQuery query to append to the query queue ownership is transferred to
- * the query queue. It is expected that aQuery is not on the cleanupstack before the
- * call to AppendQueryL is made
- * @param aQueryType the query type.
- */
- void AppendQueryL(CMdEQuery* aQuery, const TGlxQueryType& aQueryType);
-
- /**
- * Executes the query at ordinal 0 in the
- * query list implementation can be overidden by
- * deriving classes.
- */
- virtual void ExecuteQueryL();
-
-private:
- /*
- * Helper function TRAPed and called by HandleQueryCompleted()
- * @param aQuery the query that has been completed
- */
- void HandleQueryCompletedL(CMdEQuery& aQuery);
-
- /**
- * Removes the observer from any existing queries, cancels and destroys them
- */
- void DestroyQueries();
-
-private:
- /**
- * Default namespace def (not owned)
- */
- CMdENamespaceDef* iDefaultNameSpaceDef;
-
-protected:
- /**
- * Outstanding queries array (owned)
- */
- RPointerArray <CMdEQuery> iQueries;
-
- /**
- * Query types array (owned)
- */
- RArray <TGlxQueryType> iQueryTypes;
-
- /**
- * Filter properties
- */
- TGlxFilterProperties iFilterProperties;
- };
-
-#endif //_C_GLXDATASOURCETASKMDE_H_
\ No newline at end of file