diff -r 000000000000 -r e686773b3f54 phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CDefaultAttributeOperation.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines/VirtualPhonebook/VPbkCntModel/inc/CDefaultAttributeOperation.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,106 @@ +/* +* Copyright (c) 2004-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: The virtual phonebook default attribute operation +* +*/ + + +#ifndef CDEFAULTATTRIBUTEOPERATION_H +#define CDEFAULTATTRIBUTEOPERATION_H + +#include +#include +#include "MContactFilterObserver.h" + +// FORWARD DECLARATIONS +class MVPbkStoreContactField; +class CVPbkDefaultAttribute; +class MVPbkSetAttributeObserver; +class MVPbkContactFindObserver; + +namespace VPbkEngUtils { class CVPbkAsyncOperation; } + +namespace VPbkCntModel { + +class CContactStore; +class CContactFilter; + +NONSHARABLE_CLASS( CDefaultAttributeOperation ) + : public CBase, + public MVPbkContactOperation, + public MContactFilterObserver + { + public: + static CDefaultAttributeOperation* NewSetLC( + CContactStore& aContactStore, + MVPbkStoreContactField& aField, + const CVPbkDefaultAttribute& aAttribute, + MVPbkSetAttributeObserver& aObserver); + + static CDefaultAttributeOperation* NewRemoveLC( + CContactStore& aContactStore, + MVPbkStoreContactField& aField, + const CVPbkDefaultAttribute& aAttribute, + MVPbkSetAttributeObserver& aObserver); + + static CDefaultAttributeOperation* NewListLC( + CContactStore& aContactStore, + const CVPbkDefaultAttribute& aAttribute, + MVPbkContactFindObserver& aObserver); + + ~CDefaultAttributeOperation(); + + public: // From MVPbkContactOperation + void StartL(); + void Cancel(); + + public: // from MContactFilterObserver + TBool IsIncluded(MVPbkStoreContact& aContact); + void FilteringDoneL(MVPbkContactLinkArray* aLinkArray); + void FilteringError(TInt aError); + + private: // Implementation + enum TOperationMode { ESet, ERemove, EList }; + + CDefaultAttributeOperation( + TOperationMode aOperationMode, + CContactStore& aContactStore, + MVPbkStoreContactField& aField, + MVPbkSetAttributeObserver& aObserver); + CDefaultAttributeOperation( + TOperationMode aOperationMode, + CContactStore& aContactStore, + MVPbkContactFindObserver& aObserver); + void ConstructL(const CVPbkDefaultAttribute& aAttribute); + void DoSetOperationL(MVPbkSetAttributeObserver& aObserver); + void SetOperationError(MVPbkSetAttributeObserver& aObserver, TInt aError); + void DoListOperationL(MVPbkContactFindObserver& aObserver); + void ListOperationError(MVPbkContactFindObserver& aObserver, TInt aError); + + private: // Data + TOperationMode iOperationMode; + CContactStore& iContactStore; + MVPbkStoreContactField* iField; + CVPbkDefaultAttribute* iAttribute; + MVPbkSetAttributeObserver* iSetObserver; + MVPbkContactFindObserver* iFindObserver; + VPbkEngUtils::CVPbkAsyncOperation* iAsyncOperation; + CContactFilter* iContactFilter; + }; + +} // namespace VPbkCntModel + +#endif // CDEFAULTATTRIBUTEOPERATION_H + +// End of File