/*
* Copyright (c) 2006-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:  Resource headers for field types
*
*/


#ifndef VPBKFIELDTYPEDEF_RH
#define VPBKFIELDTYPEDEF_RH

#include <VPbkFieldType.hrh>

// ---------------------------------------------------------------------------
// Resource structure for a Virtual Phonebook field type.
// @see class MVPbkFieldType
// @see VPbkFieldType.hrh
// ---------------------------------------------------------------------------
//
STRUCT VPBK_FIELD_TYPE
    {
    /**
     * Versit property mappings for this field type. The mappings are defined 
     * in priority order.
     *
     * @see VBK_FIELD_VERSIT_PROPERTY
     */
    LEN BYTE STRUCT versitProperties[];

    /**
     * Excluded Type parameters. When a Versit property is matched against this
     * field type it is considered a match only if it doesn' contain any of the
     * excluded parameters.
     *
     * @see TVPbkFieldTypeParameter
     * @see MVPbkFieldType::ExcludedParameters()
     */
    LEN BYTE BYTE excludedParameters[];

    /**
     * Type name for non-versit field types.
     *
     * @see TVPbkNonVersitFieldType
     * @see MVPbkFieldType::NonVersitType()
     */
    BYTE nonVersitType = EVPbkNonVersitTypeNone;
    }

// ---------------------------------------------------------------------------
// Resource structure for link to a VPBK_FIELD_TYPE element.
// ---------------------------------------------------------------------------
//
STRUCT VPBK_FIELD_TYPE_LINK
    {
    /**
     * Resource link to a VPBK_FIELD_TYPE.
     */
    LLINK fieldType;
    }

// ---------------------------------------------------------------------------
// Resource structure for a collection of Virtual Phonebook field types.
// @see class MVPbkFieldTypeList
// ---------------------------------------------------------------------------
//
STRUCT VPBK_FIELD_TYPE_LIST
    {
    /**
     * Array of links to VPBK_FIELD_TYPE structures.
     * Abstraction implemented as VPBK_FIELD_TYPE_LINK
     */
    STRUCT items[];
    }
    
#endif // VPBKFIELDTYPEDEF_RH
