diff -r 000000000000 -r c53acadfccc6 metadataengine/client/src/mdequeryimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/metadataengine/client/src/mdequeryimpl.cpp Mon Jan 18 20:34:07 2010 +0200 @@ -0,0 +1,265 @@ +/* +* Copyright (c) 2005-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: Implementation of object, relation and event query +* +*/ + + +#include "mdequeryimpl.h" + +#include "mdesessionimpl.h" +#include "mdeasynchronousfindao.h" +#include "mdeobject.h" +#include "mderelation.h" +#include "mdeevent.h" + + + +CMdEObjectQueryImpl* CMdEObjectQueryImpl::NewL( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, CMdEObjectDef& aObjectDef, + RPointerArray* aObjectDefs, RMdEEngineSession& aSession ) + { + CMdEObjectQueryImpl* self = CMdEObjectQueryImpl::NewLC( aSessionImpl, aNamespaceDef, + aObjectDef, aObjectDefs, aSession ); + CleanupStack::Pop( self ); + return self; + } + +CMdEObjectQueryImpl* CMdEObjectQueryImpl::NewLC( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, CMdEObjectDef& aObjectDef, + RPointerArray* aObjectDefs, RMdEEngineSession& aSession ) + { + CMdEObjectQueryImpl* self = new ( ELeave ) CMdEObjectQueryImpl( aSessionImpl, aNamespaceDef, + aObjectDef, aObjectDefs ); + CleanupStack::PushL( self ); + self->ConstructL( aSessionImpl, aSession ); + return self; + } + +CMdEObjectQueryImpl::CMdEObjectQueryImpl( + CMdESessionImpl& aSessionImpl, CMdENamespaceDef& aNamespaceDef, + CMdEObjectDef& aObjectDef, RPointerArray* aObjectDefs ) + : CMdEObjectQuery( aSessionImpl, aNamespaceDef, aObjectDef, aObjectDefs ) + { + } + + +void CMdEObjectQueryImpl::ConstructL( CMdESessionImpl& aSessionImpl, + RMdEEngineSession& aSession ) + { + ObjectQueryConstructL(); + iAsyncFind = CMdEAsynchronousFindAO::NewL( *this, aSessionImpl, aSession ); + } + + +CMdEObjectQueryImpl::~CMdEObjectQueryImpl() + { + if( iAsyncFind ) + { + iAsyncFind->Cancel(); + + delete iAsyncFind; + } + } + + +void CMdEObjectQueryImpl::DoFindL( TUint aMaxCount, TUint aNotifyCount ) + { + iAsyncFind->DoFindL( aMaxCount, aNotifyCount ); + SetState( EStateSearching ); + } + + +void CMdEObjectQueryImpl::DoCancel() + { + // Stop searching. + iAsyncFind->Cancel(); + SetState( EStateError ); + } + + +void CMdEObjectQueryImpl::DoNotifyResultsL( RPointerArray& aResultList ) + { + NotifyNewResultsL( aResultList ); + } + + +void CMdEObjectQueryImpl::DoNotifyResultsL( RArray& aResultIdList ) + { + NotifyNewResultsL( aResultIdList ); + } + +void CMdEObjectQueryImpl::DoNotifyResultsL( CDesCArray& aResults ) + { + NotifyNewResultsL( aResults ); + } + +void CMdEObjectQueryImpl::DoNotifyResults( TInt aResultCount ) + { + NotifyNewResults( aResultCount ); + } + +void CMdEObjectQueryImpl::DoNotifyCompleted( TInt aError ) + { + SetState( aError ? EStateError : EStateCompleted ); + NotifyCompleted( aError ); + } + + +CMdERelationQueryImpl* CMdERelationQueryImpl::NewL( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, RMdEEngineSession& aSession ) + { + CMdERelationQueryImpl* self = CMdERelationQueryImpl::NewLC( aSessionImpl, + aNamespaceDef, aSession ); + CleanupStack::Pop( self ); + return self; + } + +CMdERelationQueryImpl* CMdERelationQueryImpl::NewLC( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, RMdEEngineSession& aSession ) + { + CMdERelationQueryImpl* self = new ( ELeave ) CMdERelationQueryImpl( aSessionImpl, aNamespaceDef ); + CleanupStack::PushL( self ); + self->ConstructL( aSessionImpl, aSession ); + return self; + } + +CMdERelationQueryImpl::CMdERelationQueryImpl( CMdESessionImpl& aSessionImpl, CMdENamespaceDef& aNamespaceDef ) + : CMdERelationQuery( aSessionImpl, aNamespaceDef ) + { + } + + +void CMdERelationQueryImpl::ConstructL( CMdESessionImpl& aSessionImpl, + RMdEEngineSession& aSession ) + { + RelationQueryConstructL(); + iAsyncFind = CMdEAsynchronousFindAO::NewL( *this, aSessionImpl, aSession ); + } + + +CMdERelationQueryImpl::~CMdERelationQueryImpl() + { + delete iAsyncFind; + } + + +void CMdERelationQueryImpl::DoFindL( TUint aMaxCount, TUint aNotifyCount ) + { + iAsyncFind->DoFindL( aMaxCount, aNotifyCount ); + SetState( EStateSearching ); + } + + +void CMdERelationQueryImpl::DoCancel() + { + // Stop searching. + iAsyncFind->Cancel(); + SetState( EStateError ); + } + +void CMdERelationQueryImpl::DoNotifyResultsL( RPointerArray& aResultList ) + { + NotifyNewResultsL( aResultList ); + } + +void CMdERelationQueryImpl::DoNotifyResultsL( RArray& aResultIdList ) + { + NotifyNewResultsL( aResultIdList ); + } + +void CMdERelationQueryImpl::DoNotifyResults( TUint32 aResultCount ) + { + NotifyNewResults( aResultCount ); + } + +void CMdERelationQueryImpl::DoNotifyCompleted( TInt aError ) + { + SetState( aError ? EStateError : EStateCompleted ); + NotifyCompleted( aError ); + } + + +CMdEEventQueryImpl::CMdEEventQueryImpl( CMdESessionImpl& aSessionImpl, CMdENamespaceDef& aNamespaceDef ) + : CMdEEventQuery( aSessionImpl, aNamespaceDef ) + { + } + + +CMdEEventQueryImpl* CMdEEventQueryImpl::NewL( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, RMdEEngineSession& aSession ) + { + CMdEEventQueryImpl* self = CMdEEventQueryImpl::NewLC( aSessionImpl, + aNamespaceDef, aSession ); + CleanupStack::Pop( self ); + return self; + } + +CMdEEventQueryImpl* CMdEEventQueryImpl::NewLC( CMdESessionImpl& aSessionImpl, + CMdENamespaceDef& aNamespaceDef, RMdEEngineSession& aSession ) + { + CMdEEventQueryImpl* self = new ( ELeave ) CMdEEventQueryImpl( aSessionImpl, aNamespaceDef ); + CleanupStack::PushL( self ); + self->ConstructL( aSessionImpl, aSession ); + return self; + } + +void CMdEEventQueryImpl::ConstructL( CMdESessionImpl& aSessionImpl, + RMdEEngineSession& aSession ) + { + EventQueryConstructL(); + iAsyncFind = CMdEAsynchronousFindAO::NewL( *this, aSessionImpl, aSession ); + } + + +CMdEEventQueryImpl::~CMdEEventQueryImpl() + { + delete iAsyncFind; + } + + +void CMdEEventQueryImpl::DoFindL( TUint aMaxCount, TUint aNotifyCount ) + { + iAsyncFind->DoFindL( aMaxCount, aNotifyCount ); + SetState( EStateSearching ); + } + + +void CMdEEventQueryImpl::DoCancel() + { + // Stop searching. + iAsyncFind->Cancel(); + SetState( EStateError ); + } + +void CMdEEventQueryImpl::DoNotifyResultsL( RPointerArray& aResultList ) + { + NotifyNewResultsL( aResultList ); + } + +void CMdEEventQueryImpl::DoNotifyResultsL( RArray& aResultIdList ) + { + NotifyNewResultsL( aResultIdList ); + } + +void CMdEEventQueryImpl::DoNotifyResults( TUint32 aResultCount ) + { + NotifyNewResults( aResultCount ); + } + +void CMdEEventQueryImpl::DoNotifyCompleted( TInt aError ) + { + SetState( aError ? EStateError : EStateCompleted ); + NotifyCompleted( aError ); + }