diff -r 45459746d5e8 -r 27f2d7aec52a engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp Mon Sep 27 15:13:20 2010 +0530 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,663 +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: -* -*/ - - - -/** - * @internal reviewed 11/07/2007 by M Byrne - * @internal reviewed 24/07/2007 by K Hoikka, SCO 403-8472 removal of all view - */ - - -#include "glxdatasourcetaskmde.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "glxdatasourcemde.h" -#include "glxdatasourcemde.hrh" - -// CONSTANTS -_LIT(KPropertyDefNameCreationDate, "CreationDate"); -_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate"); -_LIT(KPropertyDefNameTitle, "Title"); -_LIT(KPropertyDefNameDRM, "DRM"); -_LIT(KPropertyDefNameUsageCount, "UsageCount"); -_LIT(KPropertyDefNameFrameCount, "FrameCount"); -_LIT(KPropertyDefNameOrigin, "Origin"); - -// ---------------------------------------------------------------------------- -// Constructor -// ---------------------------------------------------------------------------- -// -CGlxDataSourceTaskMde:: CGlxDataSourceTaskMde(CGlxRequest* aRequest, - MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource) - : CGlxDataSourceTask(aRequest, aObserver, aDataSource) - { - GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMde::CGlxDataSourceTaskMde()"); - // No implementation required - } - -// ---------------------------------------------------------------------------- -// Destructor -// ---------------------------------------------------------------------------- -// -CGlxDataSourceTaskMde::~CGlxDataSourceTaskMde() - { - GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMde::~CGlxDataSourceTaskMde()"); - DestroyQueries(); - } - -// ---------------------------------------------------------------------------- -// Second stage constructor -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::ConstructL() - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::ConstructL()"); - CreateResponseL(); - DataSource()->ThumbnailCreator().CancelRequest( TGlxMediaId(0) ); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::CancelRequest -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::CancelRequest() - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::CancelRequest()"); - DestroyQueries(); - iCancelled = ETrue; - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::HandleQueryNewResults -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::HandleQueryNewResults( CMdEQuery& /*aQuery*/, - TInt /*aFirstNewItemIndex*/, - TInt /*aNewItemCount*/ ) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryNewResults()"); - // Not used. - } - - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::HandleQueryNewResults -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::HandleQueryNewResults( CMdEQuery& /*aQuery*/, - TInt /*aNewObjectItemCount*/, - TInt /*aNewRelationItemCount*/, - TInt /*aNewEventItemCount*/) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryNewResults()"); - // Not used. - } - - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::HandleQueryCompleted -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::HandleQueryCompleted(CMdEQuery& aQuery, TInt aError) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryCompleted()"); - __ASSERT_ALWAYS(&aQuery == iQueries[0], Panic(EGlxPanicQueryLogicError)); - - TInt err = aError; - if (err == KErrNone) - { - TRAP(err, HandleQueryCompletedL(aQuery)); - } - - if (err != KErrNone) - { - HandleRequestComplete(err); - } - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::DataSource -// ---------------------------------------------------------------------------- -// -CGlxDataSourceMde* CGlxDataSourceTaskMde::DataSource() - { - GLX_LOG_ENTRY_EXIT("CGlxDataSourceMde* CGlxDataSourceTaskMde::DataSource()"); - return static_cast(iDataSource); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::AddMonthFilterL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::AddMonthFilterL(const TGlxMediaId& aContainerId, TGlxFilterProperties& aFilterProperties) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AddMonthFilterL()"); - CMdEObject* month = DataSource()->Session().GetObjectL(aContainerId.Value()); - if( !month ) - { - User::Leave(KErrNotFound); - } - CleanupStack::PushL(month); - - AddMonthFilterL(month, aFilterProperties); - - CleanupStack::PopAndDestroy(month); - } - - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::AddMonthFilterL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& aFilterProperties) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AddMonthFilterL()"); - CMdEPropertyDef* creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameCreationDate); - if (!creationDateDef || creationDateDef->PropertyType() != EPropertyTime) - { - User::Leave(KErrCorrupt); - } - - CMdEPropertyDef* lmDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameLastModifiedDate); - if (!lmDateDef || lmDateDef->PropertyType() != EPropertyTime) - { - User::Leave(KErrCorrupt); - } - - CMdEProperty* startDate; - TInt startDateIndex = aMonth->Property(*creationDateDef, startDate); - if( KErrNotFound == startDateIndex) - { - User::Leave(KErrCorrupt); - } - aFilterProperties.iStartDate = static_cast(startDate)->Value(); - - CMdEProperty* endDate; - TInt endDateIndex = aMonth->Property(*lmDateDef, endDate); - if( KErrNotFound == endDateIndex) - { - User::Leave(KErrCorrupt); - } - aFilterProperties.iEndDate = static_cast(endDate)->Value(); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::SetQueryConditionsL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryConditionsL()"); - CMdELogicCondition& rootCondition = aQuery.Conditions(); - CMdEObjectDef* objectDef = &aObjectDef; - - SetQueryFilterConditionsL(rootCondition, *objectDef, aFilterProperties); - SetSortOrderL(aQuery, aObjectDef, aFilterProperties); - - if( KGlxCollectionRootId != aContainerId.Value() ) - { - CMdELogicCondition* containerCondition = NULL; - CMdERelationCondition* relationCondition = NULL; - objectDef = &DataSource()->ObjectDef(); - if( DataSource()->ContainerIsLeft(aObjectDef) ) - { - relationCondition = &rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideRight); - containerCondition = &relationCondition->LeftL(); - } - else - { - relationCondition = &rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft); - containerCondition = &relationCondition->RightL(); - } - containerCondition->AddObjectConditionL(aContainerId.Value()); - } - - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::SetQueryFilterConditionsL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::SetQueryFilterConditionsL(CMdELogicCondition& - aLogicCondition, CMdEObjectDef& aObjectDef, - const TGlxFilterProperties& aFilterProperties) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryFilterConditionsL()"); - - if( aFilterProperties.iUri ) - { - aLogicCondition.AddObjectConditionL(EObjectConditionCompareUri, - *aFilterProperties.iUri); - } - - if( 0 == aObjectDef.Compare(DataSource()->ObjectDef()) ) - { - // Filter on content type - if ( EGlxFilterVideoAndImages == aFilterProperties.iItemType ) - { - CMdELogicCondition& logicCondition = - aLogicCondition.AddLogicConditionL(ELogicConditionOperatorOr); - logicCondition.AddObjectConditionL( DataSource()->ImageDef() ); - logicCondition.AddObjectConditionL( DataSource()->VideoDef() ); - } - } - - if( ( aFilterProperties.iMinCount > 0 ) && ( CGlxDataSource::EContainerTypeNotAContainer != DataSource()->ContainerType(&aObjectDef) ) ) - { - CMdEPropertyDef* itemCountProperty = - aObjectDef.GetPropertyDefL(KPropertyDefNameUsageCount); - aLogicCondition.AddPropertyConditionL(*itemCountProperty, - TMdEIntGreaterEqual(aFilterProperties.iMinCount)); - } - - if( 0 != aFilterProperties.iContainsItem.Value() ) - { - - if( DataSource()->ContainerIsLeft(aObjectDef) ) - { - CMdERelationCondition& relationCondition = - aLogicCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft); - relationCondition.RightL().AddObjectConditionL(aFilterProperties.iContainsItem.Value()); - } - else - { - CMdERelationCondition& relationCondition = aLogicCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideRight); - relationCondition.LeftL().AddObjectConditionL(aFilterProperties.iContainsItem.Value()); - } - } - - if( EGlxFilterOriginNotUsed != aFilterProperties.iOrigin ) - { - CMdEPropertyDef* originProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameOrigin); - if(originProperty) - { - if( EGlxFilterOriginDownload == aFilterProperties.iOrigin ) - { -#ifdef GLX_NO_ALL_VIEW - // The download collection shows all but captured items - aLogicCondition.AddPropertyConditionL(*originProperty, TMdEUintNotEqual(MdeConstants::Object::ECamera)); -#else - // The download collection shows only downloaded items - aLogicCondition.AddPropertyConditionL(*originProperty, TMdEUintEqual(MdeConstants::Object::EDownloaded)); -#endif - } - } - } - - if( aFilterProperties.iExcludeAnimation ) - { - //__ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic(EGlxPanicIllegalArgument)); - // Exclude any image with a frame count > 1 - const TInt excludeAllImagesAboveOrEqualToThisFrameCount = 2; - CMdEPropertyDef* frameCountProperty = DataSource()->ImageDef().GetPropertyDefL(KPropertyDefNameFrameCount); - if( frameCountProperty ) - { - aLogicCondition.AddPropertyConditionL(*frameCountProperty, TMdEIntLess(excludeAllImagesAboveOrEqualToThisFrameCount)); - } - } - - if( aFilterProperties.iNoDRM ) - { - __ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic(EGlxPanicIllegalArgument)); - // Exclude any image which is DRM protected - CMdEPropertyDef* drmProperty = DataSource()->ImageDef().GetPropertyDefL(KPropertyDefNameDRM); - if( drmProperty ) - { - aLogicCondition.AddPropertyConditionL(*drmProperty, EFalse); - } - } - - if( aFilterProperties.iPath ) // If this is set. Then we need to filter on the Ids it supplies - { - TArray selection = aFilterProperties.iPath->Selection(); - TInt selectionCount = selection.Count(); - RArray itemList; - CleanupClosePushL(itemList); - GLX_DEBUG2("Reading Ids from Path, count = %d", selectionCount); - if( selectionCount ) - { - for( TInt i = 0; i < selectionCount; i++ ) - { - const TMPXItemId& itemId = aFilterProperties.iPath->IdOfIndex(selection[i]); - itemList.AppendL(itemId); - } - aLogicCondition.AddObjectConditionL(itemList); - } - CleanupStack::Pop(&itemList); - } - - if( !aFilterProperties.iIncludeCameraAlbum ) - { - CMdEObjectCondition& objectCondition = aLogicCondition.AddObjectConditionL(DataSource()->CameraAlbumId().Value()); - objectCondition.SetNegate(ETrue); - } - - if( TTime(0) != aFilterProperties.iStartDate ) - { - CMdEPropertyDef* creationDateDef = aObjectDef.GetPropertyDefL(KPropertyDefNameCreationDate); - if (!creationDateDef || creationDateDef->PropertyType() != EPropertyTime) - { - User::Leave(KErrCorrupt); - } - - aLogicCondition.AddPropertyConditionL(*creationDateDef, TMdETimeBetween(aFilterProperties.iStartDate, aFilterProperties.iEndDate)); - } - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::SetSortOrderL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::SetSortOrderL(CMdEQuery& aQuery, CMdEObjectDef& aObjectDef, - const TGlxFilterProperties& aFilterProperties) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetSortOrderL()"); - switch(aFilterProperties.iSortOrder) - { - case EGlxFilterSortOrderAlphabetical: - { - CMdEPropertyDef* titleProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameTitle); - TMdEOrderRule orderRule(*titleProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - orderRule.SetType(EOrderRuleTypeProperty); - orderRule.SetCaseSensitive(EFalse); - aQuery.AppendOrderRuleL(orderRule); - break; - } - case EGlxFilterSortOrderItemCount: - { - CMdEPropertyDef* itemCountProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameUsageCount); - TMdEOrderRule orderRule(*itemCountProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - orderRule.SetType(EOrderRuleTypeProperty); - aQuery.AppendOrderRuleL(orderRule); - break; - } - case EGlxFilterSortOrderCaptureDate: - { - CMdEPropertyDef* creationDateProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameCreationDate); - TMdEOrderRule orderRule(*creationDateProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - orderRule.SetType(EOrderRuleTypeProperty); - aQuery.AppendOrderRuleL(orderRule); - TMdEOrderRule orderRule2(EOrderRuleTypeItemID, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - aQuery.AppendOrderRuleL(orderRule2); - break; - } - case EGlxFilterSortOrderModifiedDate: - { - CMdEPropertyDef* modifiedDateProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameLastModifiedDate); - TMdEOrderRule orderRule(*modifiedDateProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - orderRule.SetType(EOrderRuleTypeProperty); - aQuery.AppendOrderRuleL(orderRule); - TMdEOrderRule orderRule2(EOrderRuleTypeItemID, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending); - aQuery.AppendOrderRuleL(orderRule2); - break; - } - case EGlxFilterSortOrderNotUsed: - { - break; - } - } - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::MaxQueryResultsCount -// ---------------------------------------------------------------------------- -// -TInt CGlxDataSourceTaskMde::MaxQueryResultsCount(const TGlxFilterProperties& aFilterProperties) const - { - GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceTaskMde::MaxQueryResultsCount()"); - TInt ret = KMdEQueryDefaultMaxCount; - if (aFilterProperties.iLastCaptureDate) - { - ret = 1; - } - return ret; - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::RemoveQuery -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::RemoveQuery() - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::RemoveQuery()"); - CMdEQuery* query = iQueries[0]; - iQueryTypes.Remove(0); - iQueries.Remove(0); - query->RemoveObserver(*this); - delete query; - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::DoQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::DoQueryL(CMdEObjectDef& aObjectDef, - TBool aIsContent, TGlxQueryType aQueryType, TQueryResultMode aResultMode, - const TGlxMediaId& aContainerId) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::DoQueryL()"); - - CMdEObjectDef* queryBaseObject = &aObjectDef; - if( aIsContent ) - { - switch(iFilterProperties.iItemType) - { - case EGlxFilterImage: - { - queryBaseObject = &DataSource()->ImageDef(); - break; - } - case EGlxFilterVideo: - { - queryBaseObject = &DataSource()->VideoDef(); - break; - } - default: - { - queryBaseObject = &DataSource()->ObjectDef(); - break; - } - } - } - - CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), *queryBaseObject, this); - CleanupStack::PushL(query); - - SetQueryConditionsL(*query, iFilterProperties, aContainerId, aObjectDef); - query->SetResultMode(aResultMode); - - CleanupStack::Pop(query); - - AppendQueryL(query, aQueryType); - - query->FindL(MaxQueryResultsCount(iFilterProperties)); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTask::QueueImageVideoObjectQueriesL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::QueueImageVideoObjectQueriesL(const RArray& aObjectIds, - const TGlxFilterProperties& aFilterProperties) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueImageVideoObjectQueriesL()"); - if (aFilterProperties.iItemType == EGlxFilterImage) - { - // Only perform the image query - QueueObjectQueryL(DataSource()->ImageDef(), aObjectIds, EImageVideoQuery); - } - else if (aFilterProperties.iItemType == EGlxFilterVideo) - { - // Only perform the video query - QueueObjectQueryL(DataSource()->VideoDef(), aObjectIds, EImageVideoQuery); - } - else - { - QueueObjectQueryL(DataSource()->ImageDef(), aObjectIds, EImageVideoQuery); - QueueObjectQueryL(DataSource()->VideoDef(), aObjectIds, EImageVideoQuery); - // Perform both the image and video queries - } - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTask::QueueTagObjectQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::QueueTagObjectQueryL(const RArray& aObjectIds) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueTagObjectQueryL()"); - QueueObjectQueryL(DataSource()->TagDef(), aObjectIds, EImageVideoQuery); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTask::QueueAlbumObjectQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::QueueAlbumObjectQueryL(const RArray& aObjectIds) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueAlbumObjectQueryL()"); - QueueObjectQueryL(DataSource()->AlbumDef(), aObjectIds, EImageVideoQuery); - } - - -void CGlxDataSourceTaskMde::QueueMonthObjectQueryL(const RArray& aObjectIds) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueMonthObjectQueryL()"); - QueueObjectQueryL(DataSource()->MonthDef(), aObjectIds, EImageVideoQuery); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTask::QueueObjectQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::QueueObjectQueryL(CMdEObjectDef& aObjectDef, - const RArray& aObjectIds, const TGlxQueryType& aQueryType) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueObjectQueryL()"); - CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), aObjectDef, this); - CleanupStack::PushL(query); - - CMdELogicCondition& lc = query->Conditions(); - lc.AddObjectConditionL(aObjectIds); - - query->SetResultMode(EQueryResultModeObjectWithoutFreetexts); - - CleanupStack::Pop(query); - AppendQueryL(query, aQueryType); - - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::AppendQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::AppendQueryL(CMdEQuery* aQuery, const TGlxQueryType& aQueryType) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AppendQueryL()"); - CleanupStack::PushL(aQuery); - - TInt err = iQueryTypes.Append(aQueryType); - - if (KErrNone == err) - { - iQueries.AppendL(aQuery); - CleanupStack::Pop(aQuery); - } - else - { - User::Leave(err); - } - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::ExecuteQueryL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::ExecuteQueryL() - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::ExecuteQueryL()"); - __ASSERT_DEBUG(iQueries.Count(), Panic(EGlxPanicQueryLogicError)); - iQueries[0]->FindL(); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::HandleQueryCompletedL -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::HandleQueryCompletedL(CMdEQuery& aQuery) - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryCompletedL()"); - DoHandleQueryCompletedL(aQuery); - RemoveQuery(); - DoNextQueryL(); - } - -// ---------------------------------------------------------------------------- -// CGlxDataSourceTaskMde::DestroyQueries -// ---------------------------------------------------------------------------- -// -void CGlxDataSourceTaskMde::DestroyQueries() - { - GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::DestroyQueries()"); - for (TInt i = 0; i < iQueries.Count(); i++) - { - // Ensure that there are not any running queries - iQueries[i]->RemoveObserver(*this); - iQueries[i]->Cancel(); - } - iQueries.ResetAndDestroy(); - iQueryTypes.Close(); - } - - -