diff -r 000000000000 -r e686773b3f54 phonebookui/Phonebook2/USIMExtension/inc/CPsu2ContactCopyPolicy.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookui/Phonebook2/USIMExtension/inc/CPsu2ContactCopyPolicy.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,188 @@ +/* +* Copyright (c) 2002-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: A copy policy for copying to sim store +* +*/ + + +#ifndef CPSU2CONTACTCOPYPOLICY_H +#define CPSU2CONTACTCOPYPOLICY_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CPbk2FieldPropertyArray; +class CPsu2CopyToSimFieldInfoArray; +class CPsu2SimContactProcessor; +class CPbk2SortOrderManager; +class MPbk2ContactNameFormatter; + +// CLASS DECLARATION + +/** +* A copy policy for copying to sim store +* +*/ +class CPsu2ContactCopyPolicy : public CVPbkContactCopyPolicy + { + public: // Constructors and destructor + /** + * Two-phased constructor. + * @param aParam parameters defined in virtual phonebook + * @return a new instance of this class + */ + static CPsu2ContactCopyPolicy* NewL(TParam* aParam); + + /** + * Destructor. + */ + ~CPsu2ContactCopyPolicy(); + + public: // New functions + + /** + * Returns the phonebook2 field properties + * @return the phonebook2 field properties + */ + inline CPbk2FieldPropertyArray& FieldProperties() const; + + /** + * Returns the copy to sim field information + * @return the copy to sim field information + */ + inline CPsu2CopyToSimFieldInfoArray& SimFieldInfos() const; + + /** + * Returns the sim contact processor + * @return the sim contact processor + */ + inline CPsu2SimContactProcessor& SimContactProcessor() const; + + public: // Functions from base classes + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* AddFieldToContactL( + MVPbkStoreContact& aContact, + const MVPbkFieldType& aFieldType, + const TDateTime& aFieldData, + const TDesC* aFieldLabel, + const MVPbkContactAttribute* aContactAttribute, + MVPbkContactFieldCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* AddFieldToContactL( + MVPbkStoreContact& aContact, + const MVPbkFieldType& aFieldType, + const TDesC& aFieldData, + const TDesC* aFieldLabel, + const MVPbkContactAttribute* aContactAttribute, + MVPbkContactFieldCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* AddFieldToContactL( + MVPbkStoreContact& aContact, + const MVPbkFieldType& aFieldType, + const TDesC8& aFieldData, + const TDesC* aFieldLabel, + const MVPbkContactAttribute* aContactAttribute, + MVPbkContactFieldCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* CopyTitleFieldsL( + const MVPbkStoreContact& aSourceContact, + MVPbkStoreContact& aTargetContact, + MVPbkContactFieldsCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* CommitContactL( + MVPbkStoreContact* aContact, + MVPbkContactCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* CopyContactL( + MVPbkStoreContact& aContact, + MVPbkContactStore& aTargetStore, + MVPbkContactCopyObserver& aCopyObserver); + + /** + * From MVPbkContactCopyPolicy + */ + TBool SupportsContactMerge() const; + + /** + * From MVPbkContactCopyPolicy + */ + MVPbkContactOperationBase* MergeAndSaveContactsL( + RPointerArray& aSourceContacts, + MVPbkStoreContact& aTarget, + MVPbkContactCopyObserver& aCopyObserver ); + + private: // Construction + + /** + * C++ constructor. + */ + CPsu2ContactCopyPolicy(CVPbkContactManager& aContactManager); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + private: // New functions + void ReplaceSimContactProcessorL(MVPbkContactStore& aTargetStore); + + private: // Data + /// Ref: Contact manager + CVPbkContactManager& iContactManager; + /// Own: UI field properties + CPbk2FieldPropertyArray* iPropertyArray; + /// Own: an array of field information about copying rules + CPsu2CopyToSimFieldInfoArray* iSimFieldInfos; + /// Own: a class that handles sim contact splitting + CPsu2SimContactProcessor* iSimContactProcessor; + /// Own: sort order manager for createing name formatter + CPbk2SortOrderManager* iSortOrderManager; + /// Own: the name formatter for setting name field for sim contact + MPbk2ContactNameFormatter* iNameFormatter; + }; + +// INLINE FUNCTIONS +inline CPbk2FieldPropertyArray& CPsu2ContactCopyPolicy::FieldProperties() const + { + return *iPropertyArray; + } + +inline CPsu2CopyToSimFieldInfoArray& + CPsu2ContactCopyPolicy::SimFieldInfos() const + { + return *iSimFieldInfos; + } + +#endif // CPSU2CONTACTCOPYPOLICY_H + +// End of File