williamr@4: /* williamr@4: * Copyright (c) 2002-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: Virtual Phonebook base interface for contact field data. williamr@4: * Sub classes have static Cast functions for safe casting. williamr@4: * williamr@4: */ williamr@4: williamr@4: williamr@4: #ifndef MVPBKCONTACTFIELDDATA_H williamr@4: #define MVPBKCONTACTFIELDDATA_H williamr@4: williamr@4: williamr@4: // INCLUDES williamr@4: #include williamr@4: #include williamr@4: #include williamr@4: williamr@4: // CONSTANTS williamr@4: williamr@4: /// Constant indicating that field length is unlimited. williamr@4: const TInt KVPbkUnlimitedFieldLength = -1; williamr@4: williamr@4: williamr@4: // CLASS DECLARATIONS williamr@4: williamr@4: /** williamr@4: * Virtual Phonebook field data interface. williamr@4: * Interface for contact field data. Different data type interfaces williamr@4: * are derived from this interface, which have data manipulation williamr@4: * functionality. williamr@4: */ williamr@4: class MVPbkContactFieldData williamr@4: { williamr@4: public: // Destructor williamr@4: /** williamr@4: * Destructor. williamr@4: */ williamr@4: virtual ~MVPbkContactFieldData() { } williamr@4: williamr@4: public: // New functions williamr@4: /** williamr@4: * Returns the derived data type id. williamr@4: * @return Contact field storage type. williamr@4: */ williamr@4: virtual TVPbkFieldStorageType DataType() const =0; williamr@4: williamr@4: /** williamr@4: * Returns true if the storage is empty. williamr@4: * @return ETrue if the data field is empty. williamr@4: */ williamr@4: virtual TBool IsEmpty() const =0; williamr@4: williamr@4: /** williamr@4: * Copies data from given field data. williamr@4: * @param aFieldData Data that is copied to this object. williamr@4: * @precond aFieldData.DataType() == this->DataType() williamr@4: */ williamr@4: virtual void CopyL(const MVPbkContactFieldData& aFieldData) =0; williamr@4: williamr@4: /** williamr@4: * Returns an extension point for this interface or NULL. williamr@4: * @param aExtensionUid Uid of extension. williamr@4: * @return Extension point or NULL. williamr@4: */ williamr@4: virtual TAny* ContactFieldDataExtension( williamr@4: TUid /*aExtensionUid*/) { return NULL; } williamr@4: }; williamr@4: williamr@4: #endif // MVPBKCONTACTFIELDDATA_H williamr@4: williamr@4: // End of File