--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_plat/extended_aiw_criteria_api/inc/AiwContactSelectionDataTypes.h Tue Feb 02 01:00:49 2010 +0200
@@ -0,0 +1,845 @@
+/*
+* Copyright (c) 2005 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: Defines types used in AIW contact selection.
+*
+*/
+
+
+
+
+
+#ifndef __AIWCONTACTSELECTIONDATATYPES_H__
+#define __AIWCONTACTSELECTIONDATATYPES_H__
+
+#include <aiwgenericparam.hrh>
+
+class RVPbkContactFieldDefaultPriorities;
+class CVPbkFieldTypeSelector;
+
+/**
+ * Type of the contact selection.
+ */
+enum TAiwContactSelectionDataType
+ {
+ EAiwContactSelectionDataTypeNotDefined,
+ EAiwSingleEntrySelectionV1,
+ EAiwMultipleEntrySelectionV1,
+ EAiwSingleItemSelectionV1,
+ EAiwSingleItemSelectionV2,
+ EAiwSingleEntrySelectionV2,
+ EAiwMultipleEntrySelectionV2,
+ EAiwSingleItemSelectionV3,
+ EAiwMultipleItemSelectionV1
+ };
+
+/**
+ * Type of the address select.
+ */
+enum TAiwAddressSelectType
+ {
+ EAiwAllItemsSelect,
+ EAiwPhoneNumberSelect,
+ EAiwVideoNumberSelect,
+ EAiwPOCNumberSelect,
+ EAiwEMailSelect,
+ EAiwMMSSelect,
+ EAiwSMSEMailSelect,
+ EAiwVOIPSelect,
+ EAiwSIPSelect,
+ EAiwSIPMSISDNSelect,
+ EAiwThumbnailSelect,
+ EAiwDTMFPhoneNumberSelect, // includes DTMF and phone number field types
+ EAiwCallItemSelect, // like phone number select but uses 'Call' as LSK
+ EAiwVoIPItemSelect // like voip address select but uses 'Call' as LSK
+ };
+
+/**
+ * Type of the communication address select.
+ */
+enum TAiwCommAddressSelectType
+ {
+ EAiwCommEmpty,
+ EAiwCommVoiceCall,
+ EAiwCommUniEditor,
+ EAiwCommEmailEditor,
+ EAiwCommInstantMessaging,
+ EAiwCommVOIPCall,
+ EAiwCommURL,
+ EAiwCommVideoCall
+ };
+
+/**
+ * Parameter flags for selection service.
+ */
+enum TSelectionFlags
+ {
+ /**
+ * Excludes group view from the fetch dialog, has no meaning elsewhere
+ * than in multiple entry fetch context.
+ */
+ EExcludeGroupsView = 0x0001,
+ /**
+ * If set the fetch dialog will use default provider title
+ * ("Contacts", for example), otherwise client's current title is used.
+ */
+ EUseProviderTitle = 0x0002,
+
+ /**
+ * If set the fetch dialog will NOT use default field even if it exists
+ * for communication method, i.e. fetch dialog will be always shown if
+ * there are 2 or more items to show.
+ */
+ EDoNotUseDefaultField = 0x0004,
+
+ /**
+ * If set the fetch view will use custom filtering. When building the
+ * view the client is asked with KAiwEventInParamCheck, for every contact,
+ * does the contact belong to the view. This is rather slow.
+ */
+ EUseClientSideFiltering = 0x0008
+ };
+
+/**
+ * Base class for different versions of the contact selection data.
+ */
+class TAiwContactSelectionDataBase
+ {
+ public: // Type checking
+ /**
+ * Function for checking the type of the contact selection
+ * data in a data buffer.
+ *
+ * @param aBuffer A buffer containing an instance of a contact
+ * selection data class derived from this class.
+ * @return Type of the data class that is in the buffer.
+ */
+ inline static TAiwContactSelectionDataType SelectionDataTypeFromBuffer(
+ const TDesC8& aBuffer );
+
+ /**
+ * Public constructor.
+ */
+ explicit inline TAiwContactSelectionDataBase();
+
+ protected: // Constructor
+ /**
+ * Constructor that sets the type of the data class.
+ *
+ * @param aSelectionDataType Type of the contact selection data.
+ */
+ inline TAiwContactSelectionDataBase(
+ TAiwContactSelectionDataType aSelectionDataType );
+
+ private: // Implementation
+ /**
+ * Returns the type of the contact selection data class.
+ *
+ * @return The type of the contact selection data class.
+ */
+ inline TAiwContactSelectionDataType SelectionDataType() const;
+
+ private: // Data
+ /// Own: Type of the contact selection data class.
+ TAiwContactSelectionDataType iSelectionDataType;
+ };
+
+/**
+ * Version 1 of the single entry selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwSingleEntrySelectionDataV1 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwSingleEntrySelectionV1;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwSingleEntrySelectionDataV1();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleEntrySelectionDataV1& SetFlags(
+ TUint aFlags );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ };
+
+/**
+ * Version 2 of the single entry selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwSingleEntrySelectionDataV2 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwSingleEntrySelectionV2;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwSingleEntrySelectionDataV2();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleEntrySelectionDataV2& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets field type filter for fetch. Only contacts having the
+ * fields defined by the filter will be visible in the fetch view.
+ * Use of NULL filter means nothing is filtered.
+ * @see CVPbkFieldTypeSelector
+ * @see VPbkContactViewFilterBuilder::BuildContactViewFilterL
+ *
+ * @param aFlags The filter to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleEntrySelectionDataV2& SetFetchFilter(
+ CVPbkFieldTypeSelector* aFilter );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns field type filter used in fetch.
+ *
+ * @return Field type filter.
+ */
+ inline CVPbkFieldTypeSelector* FetchFilter() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Ref: Field type filter.
+ CVPbkFieldTypeSelector* iFetchFilter;
+ };
+
+/**
+ * Version 1 of the multiple entry selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwMultipleEntrySelectionDataV1 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwMultipleEntrySelectionV1;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwMultipleEntrySelectionDataV1();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleEntrySelectionDataV1& SetFlags(
+ TUint aFlags );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ };
+
+/**
+ * Version 2 of the multiple entry selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwMultipleEntrySelectionDataV2 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwMultipleEntrySelectionV2;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwMultipleEntrySelectionDataV2();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleEntrySelectionDataV2& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets field type filter for fetch. Only contacts having the fields
+ * defined by the filter will be visible in the fetch view.
+ * Use of NULL filter means nothing is filtered.
+ * @see CVPbkFieldTypeSelector
+ * @see VPbkContactViewFilterBuilder::BuildContactViewFilterL
+ *
+ * @param aFlags The filter to set.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleEntrySelectionDataV2& SetFetchFilter(
+ CVPbkFieldTypeSelector* aFilter );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns field type filter used in fetch.
+ *
+ * @return Field type filter.
+ */
+ inline CVPbkFieldTypeSelector* FetchFilter() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Ref: Field type filter.
+ CVPbkFieldTypeSelector* iFetchFilter;
+ };
+
+/**
+ * Version 1 of the single item selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwSingleItemSelectionDataV1 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwSingleItemSelectionV1;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwSingleItemSelectionDataV1();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV1& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets address select type.
+ *
+ * @param aAddressSelectType Address select type,
+ * @see TAiwAddressSelectType.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV1& SetAddressSelectType(
+ TAiwAddressSelectType aAddressSelectType );
+
+ /**
+ * Sets communication address select type.
+ *
+ * @param aCommAddressSelectType Communication address select type,
+ * @see TAiwCommAddressSelectType.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV1& SetCommAddressSelectType(
+ TAiwCommAddressSelectType aCommAddressSelectType );
+
+ /**
+ * Sets address select default priorities.
+ * The defaults to use should be placed in priority order in
+ * to the array, the highest priority default should come first.
+ * If no default priorities are set, defaults are not used in
+ * address select.
+ *
+ * The caller can free the passed array right after HandleServiceCmdL
+ * call, since the array is there externalized to a buffer.
+ *
+ * @param aDefaultPriorities Prioritized array of defaults to use,
+ * @see RVPbkContactFieldDefaultPriorities.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV1& SetDefaultPriorities(
+ RVPbkContactFieldDefaultPriorities& aDefaultPriorities );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns the type of the address select.
+ *
+ * @return Type of the address select, @see TAiwAddressSelectType.
+ */
+ inline TAiwAddressSelectType AddressSelectType() const;
+
+ /**
+ * Returns the type of the communication address select.
+ *
+ * @return Type of the communication address select,
+ * @see TAiwCommAddressSelectType.
+ */
+ inline TAiwCommAddressSelectType CommAddressSelectType() const;
+
+ /**
+ * Returns the address select default priorities
+ *
+ * @return Prioritized array of defaults to use or NULL,
+ * @see RVPbkContactFieldDefaultPriorities.
+ */
+ inline RVPbkContactFieldDefaultPriorities* DefaultPriorities() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Own: Address select type.
+ TAiwAddressSelectType iAddressSelectType;
+
+ /// Own: Communication address select type. If specified, used
+ /// instead of iAddressSelectType.
+ TAiwCommAddressSelectType iCommAddressSelectType;
+
+ /// Ref: Prioritized array of defaults to use.
+ RVPbkContactFieldDefaultPriorities* iDefaultPriorities;
+
+ /// For future use.
+ TInt32 iReserved[4];
+ };
+
+/**
+ * Version 2 of the single item selection data. Deprecated, do not use!!
+ *
+ * @deprecated
+ */
+class TAiwSingleItemSelectionDataV2 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwSingleItemSelectionV2;
+
+ public: // Construction
+ /**
+ * Constructor.
+ *
+ * @deprecated
+ */
+ explicit inline TAiwSingleItemSelectionDataV2();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ * @deprecated
+ */
+ inline TAiwSingleItemSelectionDataV2& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets resource ID for the address select dialog.
+ * @see PBK2_ADDRESS_SELECT resource struct.
+ *
+ *
+ * @param aAddressSelectResourceId Address select resource id.
+ * @return Reference to this object.
+ * @deprecated
+ */
+ inline TAiwSingleItemSelectionDataV2& SetAddressSelectResourceId(
+ TInt aAddressSelectResourceId );
+
+ /**
+ * Sets address select default priorities.
+ * The defaults to use should be placed in priority order in
+ * to the array, the highest priority default should come first.
+ * If no default priorities are set, defaults are not used in
+ * address select.
+ *
+ * The caller can free the passed array right after HandleServiceCmdL
+ * call, since the array is there externalized to a buffer.
+ *
+ * @param aDefaultPriorities Prioritized array of defaults to use,
+ * @see RVPbkContactFieldDefaultPriorities.
+ * @return Reference to this object.
+ * @deprecated
+ */
+ inline TAiwSingleItemSelectionDataV2& SetDefaultPriorities(
+ RVPbkContactFieldDefaultPriorities& aDefaultPriorities );
+
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ * @deprecated
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns the address select resource id.
+ *
+ * @return Address select resource id.
+ * @deprecated
+ */
+ inline TInt AddressSelectResourceId() const;
+
+ /**
+ * Returns the address select default priorities
+ *
+ * @return Prioritized array of defaults to use or NULL,
+ * @see RVPbkContactFieldDefaultPriorities.
+ * @deprecated
+ */
+ inline RVPbkContactFieldDefaultPriorities* DefaultPriorities() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Own: Address select resource id.
+ TInt iAddressSelectResourceId;
+ /// Ref: Prioritized array of defaults to use.
+ RVPbkContactFieldDefaultPriorities* iDefaultPriorities;
+ };
+
+/**
+ * Version 3 of the single item selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwSingleItemSelectionDataV3 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwSingleItemSelectionV3;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwSingleItemSelectionDataV3();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV3& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets address select type.
+ *
+ * @param aAddressSelectType Address select type,
+ * @see TAiwAddressSelectType.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV3& SetAddressSelectType(
+ TAiwAddressSelectType aAddressSelectType );
+
+ /**
+ * Sets communication address select type.
+ *
+ * @param aCommAddressSelectType Communication address select type,
+ * @see TAiwCommAddressSelectType.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV3& SetCommAddressSelectType(
+ TAiwCommAddressSelectType aCommAddressSelectType );
+
+ /**
+ * Sets address select default priorities.
+ * The defaults to use should be placed in priority order in
+ * to the array, the highest priority default should come first.
+ * If no default priorities are set, defaults are not used in
+ * address select.
+ *
+ * The caller can free the passed array right after HandleServiceCmdL
+ * call, since the array is there externalized to a buffer.
+ *
+ * @param aDefaultPriorities Prioritized array of defaults to use,
+ * @see RVPbkContactFieldDefaultPriorities.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV3& SetDefaultPriorities(
+ RVPbkContactFieldDefaultPriorities& aDefaultPriorities );
+
+ /**
+ * Sets field type filter for fetch. Only contacts having the fields
+ * defined by the filter will be visible in the fetch view.
+ * Use of NULL filter means nothing is filtered.
+ * @see CVPbkFieldTypeSelector
+ * @see VPbkContactViewFilterBuilder::BuildContactViewFilterL
+ *
+ * @param aFlags The filter to set.
+ * @return Reference to this object.
+ */
+ inline TAiwSingleItemSelectionDataV3& SetFetchFilter(
+ CVPbkFieldTypeSelector* aFilter );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns the type of the address select.
+ *
+ * @return Type of the address select, @see TAiwAddressSelectType.
+ */
+ inline TAiwAddressSelectType AddressSelectType() const;
+
+ /**
+ * Returns the type of the communication address select.
+ *
+ * @return Type of the communication address select,
+ * @see TAiwCommAddressSelectType.
+ */
+ inline TAiwCommAddressSelectType CommAddressSelectType() const;
+
+ /**
+ * Returns the address select default priorities.
+ *
+ * @return Prioritized array of defaults to use or NULL,
+ * @see RVPbkContactFieldDefaultPriorities.
+ */
+ inline RVPbkContactFieldDefaultPriorities* DefaultPriorities() const;
+
+ /**
+ * Returns field type filter used in fetch.
+ *
+ * @return Field type filter.
+ */
+ inline CVPbkFieldTypeSelector* FetchFilter() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Own: Address select type.
+ TAiwAddressSelectType iAddressSelectType;
+ /// Own: Communication address select type. If specified, used
+ /// instead of iAddressSelectType.
+ TAiwCommAddressSelectType iCommAddressSelectType;
+
+ /// Ref: Prioritized array of defaults to use.
+ RVPbkContactFieldDefaultPriorities* iDefaultPriorities;
+ /// Ref: Field type filter.
+ CVPbkFieldTypeSelector* iFetchFilter;
+
+ /// For future use.
+ TInt32 iReserved[4];
+ };
+/**
+ * Version 1 of the multiple item selection data.
+ *
+ * All setters return a reference to this object so that the setters
+ * can be easily chained to produce more compact code, for example:
+ * selectionData.SetProperty(EAiwProperty)
+ * .SetAnotherProperty(EAiwAnotherProperty)
+ */
+class TAiwMultipleItemSelectionDataV1 : public TAiwContactSelectionDataBase
+ {
+ public: // Data type
+ static const TAiwContactSelectionDataType
+ KSelectionDataType = EAiwMultipleItemSelectionV1;
+
+ public: // Construction
+ /**
+ * Constructor.
+ */
+ explicit inline TAiwMultipleItemSelectionDataV1();
+
+ public: // Setters for the data members
+ /**
+ * Sets selection flags, @see TSelectionFlags.
+ *
+ * @param aFlags The flags to set.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleItemSelectionDataV1& SetFlags(
+ TUint aFlags );
+
+ /**
+ * Sets address select type.
+ *
+ * @param aAddressSelectType Address select type,
+ * @see TAiwAddressSelectType.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleItemSelectionDataV1& SetAddressSelectType(
+ TAiwAddressSelectType aAddressSelectType );
+
+ /**
+ * Sets address select default priorities.
+ * The defaults to use should be placed in priority order in
+ * to the array, the highest priority default should come first.
+ * If no default priorities are set, defaults are not used in
+ * address select.
+ *
+ * The caller can free the passed array right after HandleServiceCmdL
+ * call, since the array is there externalized to a buffer.
+ *
+ * @param aDefaultPriorities Prioritized array of defaults to use,
+ * @see RVPbkContactFieldDefaultPriorities.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleItemSelectionDataV1& SetDefaultPriorities(
+ RVPbkContactFieldDefaultPriorities& aDefaultPriorities );
+
+ /**
+ * Sets field type filter for fetch. Only contacts having the fields
+ * defined by the filter will be visible in the fetch view.
+ * Use of NULL filter means nothing is filtered.
+ * @see CVPbkFieldTypeSelector
+ * @see VPbkContactViewFilterBuilder::BuildContactViewFilterL
+ *
+ * @param aFlags The filter to set.
+ * @return Reference to this object.
+ */
+ inline TAiwMultipleItemSelectionDataV1& SetFetchFilter(
+ CVPbkFieldTypeSelector* aFilter );
+
+ public: // Getters for the data members
+ /**
+ * Returns selection flags, @see TSelectionFlags.
+ *
+ * @return Selection flags.
+ */
+ inline TUint Flags() const;
+
+ /**
+ * Returns the type of the address select.
+ *
+ * @return Type of the address select, @see TAiwAddressSelectType.
+ */
+ inline TAiwAddressSelectType AddressSelectType() const;
+
+ /**
+ * Returns the address select default priorities.
+ *
+ * @return Prioritized array of defaults to use or NULL,
+ * @see RVPbkContactFieldDefaultPriorities.
+ */
+ inline RVPbkContactFieldDefaultPriorities* DefaultPriorities() const;
+
+ /**
+ * Returns field type filter used in fetch.
+ *
+ * @return Field type filter.
+ */
+ inline CVPbkFieldTypeSelector* FetchFilter() const;
+
+ private: // Data
+ /// Own: Selection flags.
+ TUint iFlags;
+ /// Own: Address select type.
+ TAiwAddressSelectType iAddressSelectType;
+ /// Ref: Prioritized array of defaults to use.
+ RVPbkContactFieldDefaultPriorities* iDefaultPriorities;
+ /// Ref: Field type filter.
+ CVPbkFieldTypeSelector* iFetchFilter;
+
+ };
+
+typedef TPckgBuf<TAiwContactSelectionDataBase> TAiwContactSelectionDataBasePckg;
+typedef TPckgBuf<TAiwSingleEntrySelectionDataV1> TAiwSingleEntrySelectionDataV1Pckg;
+typedef TPckgBuf<TAiwSingleEntrySelectionDataV2> TAiwSingleEntrySelectionDataV2Pckg;
+typedef TPckgBuf<TAiwMultipleEntrySelectionDataV1> TAiwMultipleEntrySelectionDataV1Pckg;
+typedef TPckgBuf<TAiwMultipleEntrySelectionDataV2> TAiwMultipleEntrySelectionDataV2Pckg;
+typedef TPckgBuf<TAiwSingleItemSelectionDataV1> TAiwSingleItemSelectionDataV1Pckg;
+typedef TPckgBuf<TAiwSingleItemSelectionDataV2> TAiwSingleItemSelectionDataV2Pckg;
+typedef TPckgBuf<TAiwSingleItemSelectionDataV3> TAiwSingleItemSelectionDataV3Pckg;
+typedef TPckgBuf<TAiwMultipleItemSelectionDataV1> TAiwMultipleItemSelectionDataV1Pckg;
+
+#include <aiwcontactselectiondatatypes.inl>
+
+#endif // __AiwContactSelectionDataTypes_H__
+
+// End of File