diff -r 000000000000 -r e686773b3f54 phonebookengines/contactsmodel/cntvcard/cntvcardstd.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines/contactsmodel/cntvcard/cntvcardstd.cpp Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,199 @@ +// Copyright (c) 1997-2009 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: +// + +#include "cntvcardutils.h" + +// System Includes +#include + +// User includes +#include + +// Constants +const TInt KCntVCardItemAndLabelGranularity = 7; + + +/** + * Panic the thread with CNTVCARD as the category + * + * @param aPanic Panic number + */ +GLDEF_C void Panic(TCntVCardPanic aPanic) + { + _LIT(KCntVCardPanicCategory,"CNTVCARD"); + User::Panic(KCntVCardPanicCategory,aPanic); + } + +/** + * Array clean-up method + */ +GLDEF_C void CleanUpResetAndDestroy(TAny *aArray) + { + if (aArray) + { + CArrayPtr* array=(CArrayPtr*)aArray; + array->ResetAndDestroy(); + delete array; + } + } + + +/** + * Standard Epoc32 Dll Entry point + */ + + + + +/** + * Constructor + */ +CVCardItemAndLabel::CVCardItemAndLabel() + { + } + +/** + * Destructor + */ +CVCardItemAndLabel::~CVCardItemAndLabel() + { + delete iItems; + delete iLabels; + } + +/** + * Second phase constructor + */ +void CVCardItemAndLabel::ConstructL() + { + iItems = new(ELeave) CDesCArrayFlat(KCntVCardItemAndLabelGranularity); + iLabels = new(ELeave) CDesCArrayFlat(KCntVCardItemAndLabelGranularity); + } + +/** + * Static constructor + * @return The constructed item and label + */ +CVCardItemAndLabel* CVCardItemAndLabel::NewLC() + { + CVCardItemAndLabel* self = new(ELeave) CVCardItemAndLabel(); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + } + +/** + * Add an item + * @param aItem The item name + */ +void CVCardItemAndLabel::AddItemL(const TDesC& aItem) + { + iItems->AppendL(aItem); + } + +/** + * Add a label for an item + * @param aLabel The item label + */ +void CVCardItemAndLabel::AddLabelL(const TDesC& aLabel) + { + iLabels->AppendL(aLabel); + } + +/** + * The number of items present + * @return The number of items present + */ +TInt CVCardItemAndLabel::ItemCount() const + { + return iItems->Count(); + } + +/** + * The number of labels present + * @return The number of labels present + */ +TInt CVCardItemAndLabel::LabelCount() const + { + return iLabels->Count(); + } + +/** + * Access an item by index + * @return The item at the specified index + */ +TPtrC CVCardItemAndLabel::Item(TInt aIndex) const + { + return iItems->MdcaPoint(aIndex); + } + +/** + * Access a label by index + * @return The label at the specified index + */ +TPtrC CVCardItemAndLabel::Label(TInt aIndex) const + { + return iLabels->MdcaPoint(aIndex); + } + +/** + * Locate the index of a specified label. + * @param aName The label being searched for + * @param aPosition A reference parameter which is updated with the position of the + * item if it is located. + * @return An error code indicating whether the item was found or otherwise + */ +TInt CVCardItemAndLabel::FindLabel(const TDesC& aName, TInt& aPosition) const + { + return iLabels->Find(aName, aPosition); + } + +/** + * Utility cleanup method + * @param aArray An object of RPointerArray which must be cleaned up + */ +void CVCardItemAndLabel::CleanUpResetDestroyAndCloseArray(TAny* aArray) + { + RPointerArray* array = reinterpret_cast*>(aArray); + if (array) + { + array->ResetAndDestroy(); + array->Close(); + } + } + + + + + + +/** + * Constructor + */ +CVCardAddress::CVCardAddress(TUid aMapping) +: iMapping(aMapping) + { + } + +/** + * Static constructor + */ +CVCardAddress* CVCardAddress::NewLC(TUid aMapping) + { + CVCardAddress* self = new(ELeave) CVCardAddress(aMapping); + CleanupStack::PushL(self); + self->ConstructL(); + return self; + }