creator/engine/inc/creator_phonebook.h
branchRCL_3
changeset 21 b3cee849fa46
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/creator/engine/inc/creator_phonebook.h	Tue Aug 31 15:15:20 2010 +0300
@@ -0,0 +1,142 @@
+/*
+* Copyright (c) 2010 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: 
+*
+*/
+
+
+
+#ifndef __CREATORPHONEBOOK_H__
+#define __CREATORPHONEBOOK_H__
+
+#include "creator_phonebookbase.h"
+#include "creator_randomdatafield.h"
+#include "creator_phonebookwrapper.h"
+
+
+
+class CCreatorEngine;
+class CCreatorModuleBaseParameters;
+
+class CContactDatabase;	
+class CPhonebookParameters;	
+class CCreatorPhonebookWrapper;
+
+class CCreatorPhonebook : public CCreatorPhonebookBase 
+    {
+public: 
+    static CCreatorPhonebook* NewL(CCreatorEngine* aEngine);
+    static CCreatorPhonebook* NewLC(CCreatorEngine* aEngine);
+    ~CCreatorPhonebook();
+
+private:
+    CCreatorPhonebook();
+    void ConstructL(CCreatorEngine* aEngine); // from MCreatorModuleBase
+
+public:  
+    TInt CreateContactEntryL(CCreatorModuleBaseParameters *aParameters);    
+    TInt CreateGroupEntryL(CCreatorModuleBaseParameters *aParameters);
+    TInt CreateSubscribedContactEntryL(CCreatorModuleBaseParameters *aParameters); 
+
+    
+    void DeleteAllL();
+    void DeleteAllCreatedByCreatorL();
+    void DeleteAllGroupsL();
+    void DeleteAllGroupsCreatedByCreatorL();
+    
+    void TestPrintOut(CPhonebookParameters* aParam);
+    
+private:
+    
+    void InitializeContactParamsL();
+    TBool IsContactGroupL( TUint32& aLink );
+    void StoreLinksForDeleteL( RArray<TUint32>& aLinks, TUid aStoreUid );
+    void DeleteContactsL( RArray<TUint32>& aContactsToDelete, TUid aStoreUid );
+    void DeleteItemsCreatedWithCreatorL( TUid aStoreUid );
+    void DoDeleteItemsCreatedWithCreatorL( TUid aStoreUid, CDictionaryFileStore* aStore );
+    TBool HasOtherThanGroupsL();
+    
+
+private:
+	CCreatorPhonebookWrapper* iPhonebookWrapper;
+    TInt iOpCounter;
+    
+    CPhonebookParameters* iParameters;
+    
+    static TInt iUrlFields[];
+    static TInt iEmailFields[];
+    
+    RArray<TUint32> iContactLinkArray;
+    RArray<TUint32>  iContactsToDelete;	
+    RArray<TUint32>  iContactGroupsToDelete;	
+    
+    RArray<TUint32> iPreviousDeleteLinks;
+    
+private:
+	//new variables
+	/// Ref: the target of the copy
+  
+    
+    /// Own: Contact database for this store
+    CContactDatabase* iContactDb;    
+    //Contacts found in contacts db.
+    
+    };
+
+/**
+ * phonebook parameters
+ */
+    
+
+class CPhonebookParameters : public CCreatorModuleBaseParameters
+    {
+public:
+	void ParseL(CCommandParser* parser, TParseParams /*aCase = 0*/);
+	
+	TInt CPhonebookParameters::ScriptLinkId() const;
+	void CPhonebookParameters::SetScriptLinkId(TInt aLinkId);
+
+	TCreatorContactFields iContactFields;
+
+    HBufC*  iGroupName; 	
+    TInt iContactsInGroup;
+    TInt iNumberOfPhoneNumberFields;
+    TInt iNumberOfURLFields;
+    TInt iNumberOfEmailAddressFields;
+    TInt iContactSetPtr;
+    RArray<TLinkIdParam> iLinkIds; // For contactgroup. Stores the linked contact ids.
+    
+    
+public:
+    CPhonebookParameters();
+    ~CPhonebookParameters();
+    
+private:
+    TInt iLinkId; // For contact. Stores the contact id
+    };
+
+
+class CCreatorContactField : public CBase				//, public MCreatorRandomDataField
+    {
+public:    
+    static CCreatorContactField* NewL();
+    void AddFieldToParamL( CCreatorEngine* aEngine, CPhonebookParameters* aParam, TInt aType, TInt aRand = KErrNotFound );
+    void AddFieldToParamL( CPhonebookParameters* aParam, TInt aType, TPtrC aContent );
+    ~CCreatorContactField();
+private:
+    CCreatorContactField();
+    void ConstructL();
+    };
+
+#endif // __CREATORPHONEBOOK_H__