williamr@2: // Copyright (c) 2001-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __CNTSYNC_H__ williamr@2: #define __CNTSYNC_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CContactICCEntry; williamr@2: class MContactSynchroniser williamr@2: /** williamr@2: Abstract interface for a contacts phonebook synchroniser. williamr@2: williamr@2: It should be inherited by classes which implement the phonebook williamr@2: synchroniser API. The plug-in should have a second UID of williamr@2: 0x101F4A6E (KUidContactSynchroniserDll). williamr@2: williamr@4: @publishedAll williamr@2: */ williamr@2: { williamr@2: public: williamr@2: /** williamr@4: @publishedAll williamr@4: @released williamr@2: */ williamr@2: enum TValidateOperation williamr@2: { williamr@2: ERead, /** Check a cached ICC contact can be read */ williamr@2: ESearch, /** Check a cached ICC contact can be searched */ williamr@2: EEdit /** Check a cached ICC contact can be edited */ williamr@2: }; williamr@2: public: williamr@2: /* williamr@2: A CContactICCEntry is wanted for read/search or edit. williamr@2: */ williamr@2: virtual TInt ValidateContact(TValidateOperation aOp, TContactItemId aId) = 0; williamr@2: /* williamr@2: A CContactICCEntry has being added/edited. williamr@2: */ williamr@2: virtual TInt ValidateWriteContact(CContactICCEntry& aContactItem) = 0; williamr@2: /* williamr@2: A CContactICCEntry is being deleted from the database. williamr@2: */ williamr@2: virtual TInt DeleteContact(TContactItemId aId) = 0; williamr@2: /* williamr@2: Release resources used by Phonebook Synchroniser. Called prior to unloading plug-in. williamr@2: */ williamr@2: virtual void Release() = 0; williamr@2: /* williamr@2: A new CContactICCEntry has been added to the database. williamr@2: (Called after ValidateWriteContact() and database write has completed.) williamr@2: */ williamr@2: virtual void UpdatePostWriteL(const CContactICCEntry& aContactItem) = 0; williamr@2: williamr@2: /* williamr@2: Id of template contact for specified phonebook williamr@2: */ williamr@2: virtual TContactItemId ICCTemplateIdL(TUid aPhonebookUid) = 0; williamr@2: williamr@2: /* williamr@2: Id of contact group for specified phonebook williamr@2: */ williamr@2: virtual TContactItemId GroupIdL(TUid aPhonebookUid) = 0; williamr@2: williamr@2: /* williamr@2: Request notifiction of Synchronisation state changes for specified phonebook williamr@2: */ williamr@2: virtual void NotifySyncStateChange(TRequestStatus& aStatus, TUid aPhonebookUid) = 0; williamr@2: /* williamr@2: Cancel notification of Synchronisation state changes for specified phonebook williamr@2: */ williamr@2: virtual void CancelNotifyRequest(TUid aPhonebookUid) = 0; williamr@2: /* williamr@2: Test Synchronisation state changes for specified phonebook williamr@2: */ williamr@2: virtual TBool IsSynchronisedL(TUid aPhonebookUid) = 0; williamr@2: williamr@2: /* williamr@2: List of Phonebooks supported by Phonebook Synchroniser that may be present on the ICC. williamr@2: */ williamr@2: virtual TInt PhonebookList(RArray& aPhonebookList) = 0; williamr@2: williamr@2: private: williamr@2: IMPORT_C virtual void MContactSynchroniser_Reserved_1(); williamr@2: }; williamr@2: williamr@4: #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS williamr@4: williamr@4: /** The UID for the default phone book synchroniser ECom plugin interface. williamr@4: @publishedPartner williamr@2: */ williamr@2: const TUid KUidEcomCntPhBkSyncInterface = {0x102035FD}; williamr@2: williamr@2: class CContactSynchroniser : public CBase, public MContactSynchroniser williamr@2: /** williamr@2: Abstract interface for a ECom contacts phonebook synchroniser plugin williamr@2: williamr@2: It should be inherited by classes which implement the phonebook williamr@2: synchroniser API in a platform secured environment. The ECom plug-in interface uid is williamr@2: KUidEcomCntPhBkSyncInterface williamr@4: @publishedPartner williamr@2: */ williamr@2: { williamr@2: public: williamr@2: // From MContactSynchroniser williamr@2: virtual TInt ValidateContact(TValidateOperation aOp, TContactItemId aId) = 0; williamr@2: virtual TInt ValidateWriteContact(CContactICCEntry& aContactItem) = 0; williamr@2: virtual TInt DeleteContact(TContactItemId aId) = 0; williamr@2: virtual void Release() = 0; williamr@2: virtual void UpdatePostWriteL(const CContactICCEntry& aContactItem) = 0; williamr@2: virtual TContactItemId ICCTemplateIdL(TUid aPhonebookUid) = 0; williamr@2: virtual TContactItemId GroupIdL(TUid aPhonebookUid) = 0; williamr@2: virtual void NotifySyncStateChange(TRequestStatus& aStatus, TUid aPhonebookUid) = 0; williamr@2: virtual void CancelNotifyRequest(TUid aPhonebookUid) = 0; williamr@2: virtual TBool IsSynchronisedL(TUid aPhonebookUid) = 0; williamr@2: virtual TInt PhonebookList(RArray& aPhonebookList) = 0; williamr@2: public: williamr@2: static CContactSynchroniser* NewL(); williamr@2: IMPORT_C virtual ~CContactSynchroniser(); williamr@2: private: williamr@2: TUid iDtor_ID_Key; williamr@2: }; williamr@2: williamr@2: #endif williamr@4: williamr@4: #endif