--- /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 <e32base.h>
+
+// User includes
+#include <cntitem.h>
+
+// 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<CContactItem>* array=(CArrayPtr<CContactItem>*)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<CVCardItemAndLabel> which must be cleaned up
+ */
+void CVCardItemAndLabel::CleanUpResetDestroyAndCloseArray(TAny* aArray)
+ {
+ RPointerArray<CVCardItemAndLabel>* array = reinterpret_cast<RPointerArray<CVCardItemAndLabel>*>(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;
+ }