diff -r ea65f74e6de4 -r 8e5f6eea9c9f engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h Tue Aug 31 15:14:51 2010 +0300 @@ -0,0 +1,140 @@ +/* +* Copyright (c) 2008-2009 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 GLXDATASOURCETASKMDSTHUMBNAIL_H_ +#define GLXDATASOURCETASKMDSTHUMBNAIL_H_ + +/** + * @author Simon Brooks, Alex Birkett + */ + +#include "glxdatasourcetaskmdsattribute.h" + +#ifdef USE_S60_TNM +#include "mthumbnailfetchrequestobserver.h" +#endif + +#include +#include + +/** + * CGlxDataSourceTaskMdeThumnail class + * Services thumbnail requests + */ +NONSHARABLE_CLASS(CGlxDataSourceTaskMdeThumbnail) : public CGlxDataSourceTaskMde +#ifdef USE_S60_TNM + , public MThumbnailFetchRequestObserver +#else + , public MGlxtnThumbnailCreatorClient +#endif + { +public: + /** + * Constructor + * @param aRequest thumbnail request to service + * @param aObserver observer + * @param aDataSource data source + */ + CGlxDataSourceTaskMdeThumbnail(CGlxThumbnailRequest* aRequest, + MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource); + + /** + * Destructor + */ + ~CGlxDataSourceTaskMdeThumbnail(); + +private: // From CGlxDataSourceTask + /** + * See @ref CGlxDataSourceTask::ExecuteRequestL + */ + void ExecuteRequestL(); + /** + * See @ref CGlxDataSourceTask::HandleRequestComplete + */ + void HandleRequestComplete(TInt aError); + +private: // From CGlxDataSourceTaskMde + /** + * See @ref CGlxDataSourceTaskMde::DoHandleQueryCompletedL + */ + void DoHandleQueryCompletedL(CMdEQuery& aQuery); + +#ifdef USE_S60_TNM +private: //MThumbnailFetchRequestObserver + void ThumbnailFetchComplete(TInt aError, TBool aQuality); + void FetchFileInfoL(); +#endif + +private: // From MGlxtnThumbnailCreatorClient + /** + * See @ref MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete + */ + void ThumbnailFetchComplete(const TGlxMediaId& aItemId, + TGlxThumbnailQuality aQuality, TInt aErrorCode); + + /** + * See @ref MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete + */ + void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode); + + /** + * See @ref MGlxtnThumbnailCreatorClient::FilterAvailableComplete + */ + void FilterAvailableComplete(const RArray& aIdArray, TInt aErrorCode); + + /** + * See @ref MGlxtnThumbnailCreatorClient::FetchFileInfoL + */ + void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId, + TRequestStatus* aStatus); + + /** + * See @ref MGlxtnThumbnailCreatorClient::CancelFetchUri + */ + void CancelFetchUri(const TGlxMediaId& aItemId); + + /** + * See @ref MGlxtnThumbnailCreatorClient::ThumbnailStorage + */ + MGlxtnThumbnailStorage* ThumbnailStorage(); + +private: + void HandleThumbnailFetchCompleteL(const TGlxMediaId& aId, + TGlxThumbnailQuality aQuality); + + void DoHandleContainerFirstItemQueryCompletedL(); + + void CompleteFetchFileInfoL(CMdEObject* aItem); + +private: + void CompleteThumbnailRequest(TInt aError); + +private: + CGlxtnFileInfo* iTnFileInfo; + + TRequestStatus* iTnRequestStatus; + + TBool iTnRequestInProgress; +#ifdef _DEBUG + TTime iStartTime; + TTime iStopTime; +#endif + }; + +#endif // GLXDATASOURCETASKMDSTHUMBNAIL_H_