phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardCompactBCardImporter.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookengines/VirtualPhonebook/VPbkVCardEng/inc/CVPbkVCardCompactBCardImporter.h Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,145 @@
+/*
+* 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: Virtual Phonebook VCard compact BCard importer
+*
+*/
+
+
+
+#ifndef CVPBKVCARDCOMPACTBCARDIMPORTER_H
+#define CVPBKVCARDCOMPACTBCARDIMPORTER_H
+
+// INCLUDES
+#include "MVPbkImportOperationImpl.h"
+#include <e32base.h>
+#include <MVPbkContactFieldCopyObserver.h>
+#include <badesca.h>
+
+// FORWARD DECLARATIONS
+class MVPbkStoreContact;
+class MVPbkFieldType;
+class MVPbkContactStore;
+class CVPbkVCardData;
+class MVPbkContactCopyPolicy;
+
+// CLASS DECLARATIONS
+NONSHARABLE_CLASS(CVPbkVCardCompactBCardImporter)
+ : public CActive,
+ public MVPbkImportOperationImpl,
+ private MVPbkContactFieldCopyObserver,
+ private MVPbkContactFieldsCopyObserver
+ {
+ public: // Static constructors and destructor
+ static CVPbkVCardCompactBCardImporter* NewL(
+ RPointerArray<MVPbkStoreContact>& aImportedContacts,
+ MVPbkContactStore& aTargetStore,
+ RReadStream &aSourceStream,
+ CVPbkVCardData& aData );
+
+ ~CVPbkVCardCompactBCardImporter();
+
+ public: // From MVPbkImportOperationImpl
+
+ void StartL();
+ void SetObserver( MVPbkImportOperationObserver& aObserver );
+ TBool IsOwncard();
+
+ private: // From CActive
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+
+ private: // From MVPbkContactFieldCopyObserver
+ void FieldAddedToContact( MVPbkContactOperationBase& aOperation );
+ void FieldAddingFailed( MVPbkContactOperationBase& aOperation,
+ TInt aError);
+
+ private: // From MVPbkContactFieldsCopyObserver
+ void FieldsCopiedToContact(
+ MVPbkContactOperationBase& aOperation );
+ void FieldsCopyFailed(
+ MVPbkContactOperationBase& aOperation,
+ TInt aError);
+
+ private:
+ void IssueRequest();
+ TBool GetLineL();
+ void ParseLineL();
+ void ValueToBufL( const TDesC& aBuffer, TInt aResId );
+ void ValueToArrayL( const TDesC& aBuffer );
+ void ValueAndLabelToBufL( const TDesC& aBuffer, TInt aResId );
+ void AddAddressL();
+ const MVPbkFieldType* FindFieldTypeL( TInt aFieldIndex );
+ void AddFieldWithValueL(
+ const MVPbkFieldType& aFieldType, const TDesC& aValue, HBufC* aLabel );
+ void StartTitleCopyL();
+ TInt GetLineFromStreamL( TDes& aBuf, RReadStream& aSourceStream );
+ TInt GetByteFromStream( TInt8& aByte, RReadStream& aSourceStream );
+ void HandleContactSwitchL();
+ void CopyTitleL();
+ void MoveCurrentContactToImportsL();
+ void HandleError( TInt aError );
+ TInt ResolveFieldTypeResIdL( const TDesC& aBuffer );
+
+ private: // Construction
+
+ CVPbkVCardCompactBCardImporter(
+ RPointerArray<MVPbkStoreContact>& aImportedContacts,
+ MVPbkContactStore& aTargetStore,
+ RReadStream &aSourceStream,
+ CVPbkVCardData& aData );
+
+ void ConstructL();
+
+ private: // Data
+ /// Ref: to the clients result array
+ RPointerArray<MVPbkStoreContact>& iImportedContacts;
+ /// Ref: the store to use as a target for importing
+ MVPbkContactStore& iTargetStore;
+ /// Ref:
+ CVPbkVCardData& iData;
+ /// Ref: the copy policy for the target store
+ MVPbkContactCopyPolicy* iCopyPolicy;
+ /// Own:
+ CDesCArray* iAddressArray;
+ /// Own:
+ HBufC* iLabel;
+ /// Own:
+ HBufC* iValue;
+ /// Own:
+ HBufC* iLine;
+ /// Ref:
+ RReadStream& iSource;
+ /// Own: the current destination contact
+ MVPbkStoreContact* iCurContact;
+ /// Own:
+ TInt iLineCount;
+ /// Own:
+ TInt iValueLength;
+ /// Own:
+ TBool iEMailFetchedFlag;
+ /// Own: an operation that adds an field to the contact
+ MVPbkContactOperationBase* iAddToFieldOperation;
+ /// Internal state of the import operation
+ TInt iState;
+ /// Ref: the observer of the import
+ MVPbkImportOperationObserver* iObserver;
+ /// An index of target contact when title fields are copied
+ /// to split contacts
+ TInt iTargetContactIndex;
+ };
+
+#endif // CVPBKVCARDCOMPACTBCARDIMPORTER_H
+//End of file
+