diff -r 5b6f26637ad3 -r f4a778e096c2 contacts_plat/virtual_phonebook_store_api/inc/CVPbkContactStoreProperties.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contacts_plat/virtual_phonebook_store_api/inc/CVPbkContactStoreProperties.h Wed Sep 01 12:29:52 2010 +0100 @@ -0,0 +1,155 @@ +/* +* Copyright (c) 2005-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 store property implementation class for the stores +* +*/ + + + +#ifndef CVPBKCONTACTSTOREPROPERTIES_H +#define CVPBKCONTACTSTOREPROPERTIES_H + +// INCLUDES +#include +#include + + +// FORWARD DECLARATION +class TVPbkContactStoreProperties2; + +// CLASS DECLARATION + +/** + * A store property implementation class for the stores + * + * @lib VPbkEng.lib + */ +class CVPbkContactStoreProperties : + public CBase, + public MVPbkContactStoreProperties + { + public: // Types + /// Flags for boolean properties + enum TPropertyFlag + { + EPropertyReadOnly = 0x00000001, + EPropertyPersistent = 0x00000002, + EPropertyLocal = 0x00000004, + EPropertyRemovable = 0x00000008, + EPropertyFieldLabelSupported = 0x00000010, + EPropertyDefaultsSupported = 0x00000020, + EPropertyVoiceTagsSupported = 0x00000040, + EPropertySpeedDialsSupported = 0x00000080, + EPropertyContactGroupsSupported = 0x00000100, + EPropertyOwnContactSupported = 0x00000200 + }; + + public: // Constructors and destructor + /** + * Two-phased constructor. + * @return a new instance of this class + */ + IMPORT_C static CVPbkContactStoreProperties* NewL(); + + /** + * Destructor. + */ + ~CVPbkContactStoreProperties(); + + public: // New functions + + /** + * Sets the name of the store. Only a reference to the name is stored. + * The reference must be valid for the lifetime of this object. + * @param aName the name of the store + */ + IMPORT_C void SetName(const TVPbkContactStoreUriPtr& aName); + + /** + * Sets supported fields of contact store. + * @param aSupportedFields a list of field types that are supported + * by the store. + */ + IMPORT_C void SetSupportedFields(const MVPbkFieldTypeList& aSupportedFields); + + /** + * Sets the value of a boolean property. + * @param aFlag the flag to set + * @param aValue the boolean value for the flag + */ + IMPORT_C void SetBooleanProperty(TPropertyFlag aFlag, TBool aValue); + + /** + * Sets the aServiceUid service UID to aValue. + * @param aServiceUid a service UID that is mapped to a service. + * @param aValue The property to set as the value for the service. + */ + IMPORT_C void SetServicePropertyL(TUid aServiceUid, TBool aValue); + + public: // from MVPbkContactStoreProperties + TVPbkContactStoreUriPtr Name() const; + TVPbkContactStoreUriPtr Uri() const; + TBool ReadOnly() const; + TBool Persistent() const; + TBool Local() const; + TBool Removable() const; + TBool SupportsFieldLabels() const; + TBool SupportsDefaults() const; + TBool SupportsVoiceTags() const; + TBool SupportsSpeedDials() const; + TBool SupportsContactGroups() const; + const MVPbkFieldTypeList& SupportedFields() const; + TBool SupportsService(TUid aServiceUid) const; + + + private: // Construction + CVPbkContactStoreProperties(); + + void ConstructL(); + + public: // from MVPbkContactStoreProperties + + TAny* ContactStorePropertiesExtension( TUid aExtensionUid ); + + private: + + /** + * Service table element. + */ + struct TServiceElement + { + /// Own: UID associated with a service + TUid iServiceUid; + /// Own: value of the service + TBool iValue; + }; + + private: // Data + /// Ref: Store name, the store name descriptor is owned by the plugin + TVPbkContactStoreUriPtr iUriName; + /// Own: Boolean flags + TUint32 iFlags; + /// Own: Number of supported digits in phone number matching + TInt iMaxNumberMatchDigits; + /// Ref: List of supported fields + const MVPbkFieldTypeList* iSupportedFields; + /// Own: Service property map + RArray iServiceTable; + /// Own: Extended properties + TVPbkContactStoreProperties2* iExtension2; + }; + +#endif // CVPBKCONTACTSTOREPROPERTIES_H + +// End of File