--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contacts_plat/phonebook_2_store_property_api/inc/CPbk2StoreProperty.h Wed Sep 01 12:29:52 2010 +0100
@@ -0,0 +1,255 @@
+/*
+* 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: Phonebook 2 contact store property.
+*
+*/
+
+
+#ifndef CPBK2STOREPROPERTY_H
+#define CPBK2STOREPROPERTY_H
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <TVPbkContactStoreUriPtr.h>
+#include <Pbk2ContentIdentifiers.hrh>
+#include <Pbk2ContactView.hrh>
+
+// FORWARD DECLARATIONS
+class TResourceReader;
+class CPbk2StoreViewDefinition;
+class MPbk2FieldPropertyArray;
+class MVPbkFieldTypeList;
+class CPbk2Content;
+class CPbk2LocalizedText;
+
+// CLASS DECLARATION
+
+/**
+ * Phonebook 2 contact store property.
+ * Responsible for presenting contact store related information.
+ */
+class CPbk2StoreProperty : public CBase
+ {
+ public: // Construction and destruction
+
+ /**
+ * Creates a new instance of this class.
+ *
+ * @return A new instance of this class.
+ */
+ IMPORT_C static CPbk2StoreProperty* NewL();
+
+ /**
+ * Creates a new instance of this class.
+ *
+ * @param aReader Resource reader pointed to a
+ * PHONEBOOK2_STORE_PROPERTY resource.
+ * @see PHONEBOOK2_STORE_PROPERTY
+ * @return A new instance of this class.
+ */
+ IMPORT_C static CPbk2StoreProperty* NewLC(
+ TResourceReader& aReader );
+
+ /**
+ * Creates a new instance of this class.
+ *
+ * @param aProperty An existing store property.
+ * @return A new instance of this class.
+ */
+ IMPORT_C static CPbk2StoreProperty* NewLC(
+ const CPbk2StoreProperty& aProperty );
+
+ /**
+ * Destructor
+ */
+ ~CPbk2StoreProperty();
+
+ public: // Interface
+
+ /**
+ * Returns the store URI of the property.
+ *
+ * @return Store URI of the property.
+ */
+ IMPORT_C TVPbkContactStoreUriPtr StoreUri() const;
+
+ /**
+ * Returns the name of the store.
+ *
+ * @return Name of the store or KNullDesC if not set.
+ */
+ IMPORT_C const TDesC& StoreName() const;
+
+ /**
+ * Returns a set of info types that define what information
+ * is requested from the store's MVPbkContactStoreInfo interface.
+ *
+ * @return Memory info types.
+ * @see Pbk2StoreProperty.hrh
+ */
+ IMPORT_C TUint32 MemoryInfoTypes() const;
+
+ /**
+ * Returns an array of view definitions for the store.
+ *
+ * @return Array of view definitions.
+ */
+ IMPORT_C TArray<const CPbk2StoreViewDefinition*> Views() const;
+
+ /**
+ * Returns store property flags.
+ *
+ * @return Store property flags.
+ * @see Pbk2StoreProperty.hrh
+ */
+ IMPORT_C TUint32 Flags() const;
+
+ /**
+ * Returns the resource id of the store's field property array.
+ *
+ * @see PHONEBOOK2_FIELD_PROPERTY_ARRAY
+ * @return Resource id of the store's field properties.
+ */
+ IMPORT_C TInt FieldPropertiesResId() const;
+
+ /**
+ * Sets the store URI for the property.
+ *
+ * @param aStoreUri The URI that is used to load the store from
+ * the Virtual Phonebook.
+ */
+ IMPORT_C void SetStoreUriL(
+ const TDesC& aStoreUri );
+
+ /**
+ * Sets the name for the store. The name is used in the UI.
+ *
+ * @param aStoreName Name for the store.
+ */
+ IMPORT_C void SetStoreNameL(
+ const TDesC& aStoreName );
+
+ /**
+ * Appends a new view definition.
+ *
+ * @param aViewDefinition View definition to append.
+ * Ownership changes. Client must
+ * release the ownership after the call.
+ */
+ IMPORT_C void AppendViewDefinitionL(
+ CPbk2StoreViewDefinition* aViewDefinition );
+
+ /**
+ * Sets the info types that define which data is requested
+ * from the MVPbkContactStoreInfo interface.
+ *
+ * @param aInfoTypes Memory info types.
+ * @see Pbk2StoreProperty.hrh
+ */
+ IMPORT_C void SetMemoryInfoTypes(
+ TUint32 aInfoTypes );
+
+ /**
+ * Sets the store property flags. Overwrites existing flags.
+ *
+ * @param aFlags Store property flags to set.
+ * @see Pbk2StoreProperty.hrh
+ */
+ IMPORT_C void SetFlags(
+ TUint32 aFlags );
+
+ /**
+ * Sets the store specific field property array resource id.
+ *
+ * @param aFieldPropertiesResId Resource id of a
+ * PHONEBOOK2_FIELD_PROPERTY_ARRAY
+ * resource.
+ */
+ IMPORT_C void SetFieldPropertiesResId(
+ TInt aFieldPropertiesResId );
+
+ /**
+ * Finds the view definitions from the property.
+ *
+ * @param aViewType View type.
+ * @see TPbk2ContactViewType
+ * @return Phonebook 2 store view definition or NULL if not found.
+ * Ownership is not given.
+ */
+ IMPORT_C const CPbk2StoreViewDefinition* FindView(
+ TPbk2ContactViewType aViewType ) const;
+
+ /**
+ * Returns the store specific field properties. The store property
+ * contains a link to the field property array. If the field property
+ * resource has been defined then those properties are returned. The
+ * related field types must be given to create properties because
+ * each property links to one single field type.
+ *
+ * @param aFieldTypeList In most cases this is the Virtual
+ * Phonebook master field type list
+ * because it contains all the field types.
+ * @return A field property array or NULL if there was no
+ * field property array definition for the store.
+ */
+ IMPORT_C MPbk2FieldPropertyArray* CreateStoreSpecificFieldPropertiesL(
+ const MVPbkFieldTypeList& aFieldTypeList ) const;
+
+ /**
+ * Returns a content object that is mapped to the requested context.
+ * Ownership of the returned object is passed. The client is able to
+ * acquire content to a certain context using this method. The client
+ * can pass information of the context to the content generation
+ * implementation. The client is then responsible for finding the
+ * contents type dynamically.
+ *
+ * @param aContext Identifier of the context of the query.
+ * @param aContextInfo Information of the context the query
+ * was made from. Can be NULL.
+ * @return The context object.
+ */
+ IMPORT_C CPbk2Content* RetrieveContentLC(
+ TPbk2ContentId aContext ) const;
+
+ private: // Implementation
+ CPbk2StoreProperty();
+ void ConstructL(
+ TResourceReader& aReader );
+ void ConstructL(
+ const CPbk2StoreProperty& aProperty );
+ void ConstructFieldPropertiesL(
+ TInt aFieldPropertyArrayResId );
+ void CreateLocalizedTextsL(
+ const CPbk2StoreProperty& aProperty );
+
+ private: // Data
+ /// Own: Store URI
+ HBufC* iStoreUri;
+ /// Own: Store name
+ HBufC* iStoreName;
+ /// Own: Flags
+ TUint32 iFlags;
+ /// Own: Store views
+ RPointerArray<const CPbk2StoreViewDefinition> iStoreViews;
+ /// Own: Memory info types
+ TUint32 iMemoryInfoTypes;
+ /// Own: Store field properties resource id
+ TInt iFieldPropertiesResId;
+ /// Own: Array of context sensitive localized strings
+ RPointerArray<const CPbk2LocalizedText> iLocalizedTexts;
+ };
+
+#endif // CPBK2STOREPROPERTY_H
+
+// End of File