williamr@4: /* williamr@4: * Copyright (c) 2005-2007 Nokia Corporation and/or its subsidiary(-ies). williamr@4: * All rights reserved. williamr@4: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@4: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@4: * williamr@4: * Initial Contributors: williamr@4: * Nokia Corporation - initial contribution. williamr@4: * williamr@4: * Contributors: williamr@4: * williamr@4: * Description: Utilities for contact management. williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef VPBKUTILS_H williamr@4: #define VPBKUTILS_H williamr@4: williamr@4: // INCLUDES williamr@4: #include williamr@4: williamr@4: williamr@4: // FORWARD DECLARATIONS williamr@4: class MVPbkFieldType; williamr@4: class MVPbkFieldTypeList; williamr@4: class MVPbkBaseContactField; williamr@4: class TResourceReader; williamr@4: class MVPbkBaseContact; williamr@4: class RFs; williamr@4: class MVPbkStoreContact; williamr@4: williamr@4: williamr@4: /** williamr@4: * Utilities for contact management. williamr@4: */ williamr@4: namespace VPbkUtils williamr@4: { williamr@4: williamr@4: /** williamr@4: * Returns the field type if aField matches one of the aFieldTypeList williamr@4: * elements otherwise returns NULL. williamr@4: * williamr@4: * @param aFieldTypeList The field type list to use. williamr@4: * @param aField The field whose type to match. williamr@4: * @return The matched field type. williamr@4: */ williamr@4: IMPORT_C const MVPbkFieldType* MatchFieldType( williamr@4: const MVPbkFieldTypeList& aFieldTypeList, williamr@4: const MVPbkBaseContactField& aField); williamr@4: williamr@4: /** williamr@4: * Checks if aField matches the required field type from aFieldTypeList williamr@4: * and the field type of aField matches to field type selector. williamr@4: * williamr@4: * @param aFieldTypeList A field type list for matching aField. williamr@4: * @param aField The field whose type to check. williamr@4: * @param aResourceReader A reader to VPBK_FIELD_TYPE_SELECTOR in williamr@4: * VPbkFieldType.rh. williamr@4: * @return ETrue If field type is included. williamr@4: */ williamr@4: IMPORT_C TBool IsFieldTypeIncludedL( williamr@4: const MVPbkFieldTypeList& aFieldTypeList, williamr@4: const MVPbkBaseContactField& aField, williamr@4: TResourceReader& aResourceReader); williamr@4: williamr@4: /** williamr@4: * Checks whether the contact contains a field that matches williamr@4: * to given field type selector. williamr@4: * williamr@4: * @param aFieldTypeList A field type list for matching aField. williamr@4: * @param aContact The contact whose fields are cheked. williamr@4: * @param aResourceReader A reader to VPBK_FIELD_TYPE_SELECTOR in williamr@4: * VPbkFieldType.rh. williamr@4: * @return ETrue If field type is included. williamr@4: */ williamr@4: IMPORT_C TBool IsFieldTypeIncludedInContactL( williamr@4: const MVPbkFieldTypeList& aFieldTypeList, williamr@4: const MVPbkBaseContact& aContact, williamr@4: TResourceReader& aResourceReader); williamr@4: williamr@4: /** williamr@4: * Verifies the existance of the syncronization field. williamr@4: * williamr@4: * The data for the fields are defined in VPbkSyncConstants.h. williamr@4: * Adds the field with the default value if not present. williamr@4: * If the syncronization field is empty assigns a default value. williamr@4: * If field contains invalid data default value is assigned. williamr@4: * williamr@4: * @param aFs A handle to an open file handle. williamr@4: * @param aSupportedFieldTypeList Field types supported by the store. See williamr@4: * MVPbkContactStoreProperties::SupportedFields. williamr@4: * @param aContact A contact whose syncronization field and content is verified. williamr@4: */ williamr@4: IMPORT_C TBool VerifySyncronizationFieldL( williamr@4: RFs& aFs, williamr@4: const MVPbkFieldTypeList& aSupportedFieldTypeList, williamr@4: MVPbkStoreContact& aContact); williamr@4: williamr@4: williamr@4: } // namespace VPbkUtils williamr@4: williamr@4: #endif // VPBKUTILS_H williamr@4: williamr@4: //End of file williamr@4: