omads/omadsappui/AspSyncUtil/src/AspProfile.cpp
branchRCL_3
changeset 51 8e7494275d3a
parent 48 2bb96f4ecad8
child 52 4f0867e42d62
--- a/omads/omadsappui/AspSyncUtil/src/AspProfile.cpp	Thu Aug 19 09:41:17 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4639 +0,0 @@
-/*
-* Copyright (c) 2005 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:  
-*
-*/
-
-
-
-// INCLUDES
-
-#include <SyncMLTransportProperties.h>
-#include <featmgr.h>   // FeatureManager
-#include <centralrepository.h> // CRepository
-#include <NsmlOperatorDataCRKeys.h> // KCRUidOperatorDatasyncInternalKeys
-
-#include <calsession.h>
-#include <calcalendarinfo.h>
-#include <e32math.h>
-#include <gdi.h>
-
-#include "AspProfile.h"
-#include "AspResHandler.h"
-#include "AspDialogUtil.h"
-#include "AspDebug.h"
-#include "AspSchedule.h"
-#include "AspDefines.h"
-#include <centralrepository.h> //CRepository
-#include <calenmulticaluids.hrh> // Calendar File Meta Data Properties
-#include <calenmulticalutil.h>
-#include <CalenInterimUtils2.h>
-
-_LIT(KCharUnderscore, "_");
-_LIT( KNSmlAgendaFileNameForDefaultDB, "c:calendar" );
-
-/*******************************************************************************
- * class TAspProviderItem
- *******************************************************************************/
-
-
-// -----------------------------------------------------------------------------
-// TAspProviderItem::CompareItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt TAspProviderItem::CompareItems(const TAspProviderItem& aFirst, const TAspProviderItem& aSecond)
-	{
-	const TInt KNegative = -1;
-	const TInt KPositive = 1;
-	
-	TInt firstOrder = SortOrder(aFirst.iDataProviderId);
-	TInt secondOrder = SortOrder(aSecond.iDataProviderId);
-	
-	if (firstOrder > secondOrder)
-		{
-		return KNegative;
-		}
-	else if (secondOrder > firstOrder)
-		{
-		return KPositive;
-		}
-	else
-		{
-		return 0;
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspProviderItem::CompareItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt TAspProviderItem::SortOrder(TInt aDataProviderId)
-	{
-	TInt ret = EOrderOther;
-	if (aDataProviderId == KUidNSmlAdapterContact.iUid)
-		{
-		ret = EOrderContact;
-		}
-	else if (aDataProviderId == KUidNSmlAdapterCalendar.iUid)
-		{
-		ret = EOrderCalendar;
-		}
-	else if (aDataProviderId == KUidNSmlAdapterNote.iUid)
-		{
-		ret = EOrderNotes;
-		}
-	else if (aDataProviderId == KUidNSmlAdapterEMail.iUid)
-		{
-		ret = EOrderEmail;
-		}
-	return ret;
-	}
-	
-	
-
-/*******************************************************************************
- * class CAspContentList
- *******************************************************************************/
-
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CAspContentList* CAspContentList::NewLC(const TAspParam& aParam)
-    {
-   	FLOG( _L("CAspContentList::NewLC START") );
-   	
-    CAspContentList* self = new (ELeave) CAspContentList(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-
-    FLOG( _L("CAspContentList::NewLC END") );
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CAspContentList* CAspContentList::NewL(const TAspParam& aParam)
-    {
-   	FLOG( _L("CAspContentList::NewL START") );
-   	
-    CAspContentList* self = new (ELeave) CAspContentList(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-
-    FLOG( _L("CAspContentList::NewL END") );
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-//
-// -----------------------------------------------------------------------------
-//
-CAspContentList::~CAspContentList()
-    {
-	iProviderList.Close();
-	iTaskList.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ConstructL(void)
-    {
-	if (iListMode == EInitDataProviders)
-		{
-        InitDataProvidersL();
-		}
-	else if (iListMode == EInitTasks)
-		{
-		__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-		
-        InitAllTasksL();
-		}
-	else 
-		{
-		__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-		
-		InitDataProvidersL();
-		InitAllTasksL();
-		}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CAspContentList
-//
-// -----------------------------------------------------------------------------
-//
-CAspContentList::CAspContentList(const TAspParam& aParam)
-	{
-	iSyncSession = aParam.iSyncSession;
-	iProfile = aParam.iProfile;
-	iListMode = aParam.iMode;
-	iApplicationId = aParam.iApplicationId;
-
-	__ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral));
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::SetProfile
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::SetProfile(CAspProfile* aProfile)
-	{
-	if (aProfile)
-		{
-
-	    __ASSERT_ALWAYS(iProfile == NULL, TUtil::Panic(KErrGeneral));
-
-		}
-
-	iProfile = aProfile;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::IsLocked
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspContentList::IsLocked()
-	{
-	if (iProfile)
-		{
-		return ETrue;
-		}
-		
-	return EFalse;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ProviderCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::ProviderCount()
-	{
-	return iProviderList.Count();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ProviderItem
-// 
-// -----------------------------------------------------------------------------
-//
-TAspProviderItem& CAspContentList::ProviderItem(TInt aIndex)
-	{
-	if (aIndex < 0 || aIndex >= ProviderCount())
-	    {
-		TUtil::Panic(KErrArgument);
-	    }
-
-	return iProviderList[aIndex];
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::FindProviderIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::FindProviderIndex(TInt aId)
-	{
-	TInt count = iProviderList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProviderItem& item = iProviderList[i];
-		if (item.iDataProviderId == aId)
-			{
-			return i;
-			}
-		}
-		
-	return KErrNotFound;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::FindProviderIndexForTask
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::FindProviderIndexForTask(TInt aId)
-	{
-	TInt index = FindTaskIndex(aId);
-	if (index == KErrNotFound)
-		{
-		return KErrNotFound;
-		}
-	
-	TAspTaskItem& item = TaskItem(index);
-	
-	return FindProviderIndex(item.iDataProviderId);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::TaskCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::TaskCount()
-	{
-	return iTaskList.Count();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::TaskItem
-// 
-// -----------------------------------------------------------------------------
-//
-TAspTaskItem& CAspContentList::TaskItem(TInt aIndex)
-	{
-	if ((aIndex < 0) || (aIndex >= TaskCount()))
-	    {
-		TUtil::Panic(KErrArgument);
-	    }
-
-	return iTaskList[aIndex];
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::FindTaskIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::FindTaskIndex(TInt aId)
-	{
-	TInt count = iTaskList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspTaskItem& task = iTaskList[i];
-		if (task.iTaskId == aId)
-			{
-			return i;
-			}
-		}
-		
-	return KErrNotFound;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::FindTaskIndexForProvider
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::FindTaskIndexForProvider(TInt aId)
-	{
-	TInt count = iTaskList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspTaskItem& item = iTaskList[i];
-		if (item.iDataProviderId == aId)
-			{
-			return i;
-			}
-		}
-		
-	return KErrNotFound;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::FindTaskIdForProvider
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::FindTaskIdForProvider(TInt aId)
-	{
-	TInt index = FindTaskIndexForProvider(aId);
-	if (index == KErrNotFound)
-		{
-		return KErrNotFound;
-		}
-		
-	TAspTaskItem& item = iTaskList[index];
-	return item.iTaskId;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::DoInitDataProvidersL
-// 
-// Initialize data provider list.
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::DoInitDataProvidersL()
-	{
-	FLOG( _L("CAspContentList::DoInitDataProvidersL START") );
-	
-	iProviderList.Reset();
-	
-	RArray<TSmlDataProviderId> arr;
-	
-	Session().ListDataProvidersL(arr);
-	CleanupClosePushL(arr);
-
-	TBool operatorProfile = CAspProfile::IsOperatorProfileL(iProfile);
-	TInt operatorUid = CAspProfile::OperatorAdapterUidL();
-	TInt profileUid = CAspProfile::ProfileAdapterUidL();
-	
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		RSyncMLDataProvider provider;
-		TInt id = arr[i];
-		
-		TRAPD(err, provider.OpenL(Session(), id));
-	
-		if (err == KErrNone)
-			{
-    		CleanupClosePushL(provider);
-
-	    	TAspProviderItem item;
-		    ReadDataProviderItemL(provider, item);
-		    if( (item.iDataProviderId == KUidNsmlAdapterCntGrps.iUid) ||
-		             (item.iDataProviderId == KUidNSmlAdapterSms.iUid) || 
-		             (item.iDataProviderId == KUidNSmlAdapterMMS.iUid) ||
-		             (item.iDataProviderId == KUidNsmlAdapterMedia.iUid))
-		        {
-		          CleanupStack::PopAndDestroy(&provider);
-		          continue;
-		        }
-            item.iIsIncludedInSync = EFalse;
-		    
-		    if (TUtil::IsEmpty(item.iDisplayName))
-		    	{
-		    	// providers must have display name
-		    	CleanupStack::PopAndDestroy(&provider);
-		    	FTRACE( RDebug::Print(_L("### provider has no display name (id=%x) ###"), item.iDataProviderId) );
-		    	continue;
-		    	}
-
-		    if ( iApplicationId == 0 )
-		        {
-                if( operatorUid != KUidNSmlAdapterContact.iUid &&
-                    operatorUid != 0 )
-                    {
-                    // Dedicated operator specific adapter in use
-                    if ( operatorProfile )
-                        {
-                        // Operator profile: show other adapters than platform's 
-                        //  contacts adapter
-                        if ( id != KUidNSmlAdapterContact.iUid )
-                            {
-                            User::LeaveIfError(iProviderList.Append(item)); 
-                            }
-                        }
-                    else
-                        {
-                        // Non-operator profile: show other adapters than
-                        //  operator specific contacts adapter & profile adapter
-                        if ( id != operatorUid && id != profileUid )
-                            {
-                            User::LeaveIfError(iProviderList.Append(item));
-                            }
-                        }
-                    }
-                else
-                    {
-                    // Platform's contacts adapter used as operator adapter
-                    if( operatorProfile || 
-                        ( !operatorProfile && id != profileUid ) )
-                        {
-                        User::LeaveIfError(iProviderList.Append(item));
-                        }
-                    }
-                }
-		    else
-		        {
-                User::LeaveIfError(iProviderList.Append(item));
-		        }
-            
-	        CleanupStack::PopAndDestroy(&provider);
-		    }
-		    
-		if (err != KErrNone)
-			{
-			FTRACE( RDebug::Print(_L("### RSyncMLDataProvider::Open failed (id=%x, err=%d) ###"), id, err) );
-			}
-		
-		}
-		
-	CleanupStack::PopAndDestroy(&arr);
-	
-	FLOG( _L("CAspContentList::DoInitDataProvidersL END") );
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::UpdateDataProviderL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::UpdateDataProviderL(TInt aDataProviderId)
-	{
-	TInt index = FindProviderIndex(aDataProviderId);
-	if (index == KErrNotFound)
-		{
-		return;  // unknown provider
-		}
-	TAspProviderItem& providerItem = ProviderItem(index);
-		
-	RArray<TSmlDataProviderId> arr;
-	Session().ListDataProvidersL(arr);
-	CleanupClosePushL(arr);
-
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		RSyncMLDataProvider provider;
-		TInt id = arr[i];
-		
-		TRAPD(err, provider.OpenL(Session(), id));
-	
-		if (err == KErrNone)
-			{
-    		CleanupClosePushL(provider);
-
-		    TInt id = provider.Identifier();
-		    if (id == aDataProviderId)
-		    	{
-       		    ReadDataProviderItemL(provider, providerItem);
-       		    CleanupStack::PopAndDestroy(&provider);
-       		    break;
-		    	}
-       
-	        CleanupStack::PopAndDestroy(&provider);
-		    }
-		}
-		
-	CleanupStack::PopAndDestroy(&arr);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ReadDataProviderItemL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ReadDataProviderItemL(RSyncMLDataProvider& aProvider, 
-                                            TAspProviderItem& aItem)
-	{
-    aItem.iTaskId=KErrNotFound;
-	aItem.iDataProviderId = aProvider.Identifier();
-		    
-    aItem.iSyncProtocol = ESmlVersion1_2;
-    //item.iSyncProtocol = provider.RequiredProtocolVersionL();
-		    
-		    
-    aItem.iAllowMultipleDataStores = aProvider.AllowsMultipleDataStores();
-    TUtil::StrCopy(aItem.iDisplayName, aProvider.DisplayName());
-	
-    TPtrC ptr = aProvider.DefaultDataStoreName();
-    if (TUtil::IsEmpty(ptr))
-    	{
-    	aItem.iHasDefaultDataStore = EFalse;
-    	aItem.iDefaultDataStore = KNullDesC;
-    	}
-    else
-    	{
-    	aItem.iHasDefaultDataStore = ETrue;
-    	TUtil::StrCopy(aItem.iDefaultDataStore, ptr);
-    	}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::InitDataProvidersL
-// 
-// Initialize data provider list.
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::InitDataProvidersL()
-	{
-
-#ifdef _DEBUG
-   	TTime time_1 = TUtil::TimeBefore();
-#endif
-
-    DoInitDataProvidersL();
-    Sort();
-    
-#ifdef _DEBUG
-   	TUtil::TimeAfter(time_1, _L("CAspContentList::DoInitDataProvidersL took"));
-#endif
-
-
-#ifndef __SYNCML_DS_EMAIL   // KFeatureIdSyncMlDsEmail
-    RemoveDataProvider(KUidNSmlAdapterEMail.iUid);
-#endif
-
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspContentList::RemoveDataProvider
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::RemoveDataProvider(TInt aDataProviderId)
-	{
-    TInt index = FindProviderIndex(aDataProviderId);
-        
-    // remove data provider with id aDataProviderId
-    if (index != KErrNotFound)
-    	{
-    	iProviderList.Remove(index);
-    	}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::InitAllTasksL
-//
-// Initialize task list.
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::InitAllTasksL()
-	{
-	FLOG( _L("CAspContentList::InitAllTasksL START") );
-	
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-	iTaskList.Reset();
-	
-	RArray<TSmlTaskId> arr;
-    
-	iProfile->Profile().ListTasksL(arr); // IPC call
-	CleanupClosePushL(arr);
-	
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		TAspTaskItem item = ReadTaskItemL(iProfile->Profile(), arr[i]);
-		
-		item.iLastSync = iProfile->LastSync(item.iTaskId);
-		
-    	User::LeaveIfError(iTaskList.Append(item));
-		}
-		
-	
-    CleanupStack::PopAndDestroy(&arr);
-    
-    FLOG( _L("CAspContentList::InitAllTasksL END") );
-	}
-
-// -----------------------------------------------------------------------------
-// CAspContentList::UpdateLocalDatabaseL()
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::UpdateLocalDatabaseL()
-{
-	InitDataProvidersL();
-	InitAllTasksL();
-	RSyncMLDataProvider provider;
-	TRAPD(err, provider.OpenL(Session(), KUidNSmlAdapterEMail.iUid));
-	
-	if (err == KErrNone)
-		{
-    	CleanupClosePushL(provider);
-    	TAspProviderItem item;
-		ReadDataProviderItemL(provider, item);
-		}
-	TInt index = FindTaskIdForProvider( KUidNSmlAdapterEMail.iUid);
-	if (index != KErrNotFound)
-		{
-		TAspTaskItem emailItem = ReadTaskItemL(iProfile->Profile(), index);
-
-		CDesCArray* databaseList = new (ELeave) CDesCArrayFlat(KDefaultArraySize);
-		CleanupStack::PushL(databaseList);
-		GetLocalDatabaseList(KUidNSmlAdapterEMail.iUid, databaseList);
-	
-		TInt count = databaseList->Count();
-		TBool taskUpdated = EFalse;
-		for (TInt i = 0; i < count ;i++)
-			{
-			
-			if ((*databaseList)[i].Compare(emailItem.iClientDataSource) == 0)
-				{
-				taskUpdated = ETrue;
-				break;
-				}
-			}
-		if (!taskUpdated)
-			{
-			TBuf<KBufSize> aLocalDatabase;
-			TBuf<KBufSize> aRemoteDatabase;
-			TInt aSyncDirection;
-			TBool aTaskEnabled;
-			ReadTaskL(KUidNSmlAdapterEMail.iUid, aLocalDatabase, aRemoteDatabase,
-		    	               aTaskEnabled, aSyncDirection);
-			
-			if(count == 0) 
-			{
-				if(aLocalDatabase != KNullDesC)
-				{
-					aLocalDatabase = KNullDesC;
-					aTaskEnabled = EFalse;
-					
-					CreateTaskL(KUidNSmlAdapterEMail.iUid,aLocalDatabase , aRemoteDatabase,
-	                              aTaskEnabled, aSyncDirection);
-	                				
-				}
-			}
-			else
-			{
-				aLocalDatabase = provider.DefaultDataStoreName();
-				CreateTaskL(KUidNSmlAdapterEMail.iUid,aLocalDatabase , aRemoteDatabase,
-	                              aTaskEnabled, aSyncDirection);
-			
-			}
-			
-			
-
-			}
-		
-		
-		CleanupStack::PopAndDestroy(databaseList);
-		}
-
-	if (err == KErrNone)
-	{
-	CleanupStack::PopAndDestroy(&provider);
-	}
-}
-
-// -----------------------------------------------------------------------------
-// CAspContentList::InitTaskL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::InitTaskL(TInt aTaskId)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-    TAspTaskItem task = ReadTaskItemL(iProfile->Profile(), aTaskId);
-    
-    // try to remove old task
-    TInt index = FindTaskIndex(aTaskId);
-    if (index != KErrNotFound)
-    	{
-    	iTaskList.Remove(index);
-    	}
-    
-    task.iLastSync = iProfile->LastSync(aTaskId);
-	
-	// add new task
-	User::LeaveIfError(iTaskList.Append(task));
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::RemoveTask
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::RemoveTask(TInt aDataProviderId)
-	{
-    TInt index = FindTaskIndexForProvider(aDataProviderId);
-        
-    // remove task that uses dataprovider aDataProviderId
-    if (index != KErrNotFound)
-    	{
-    	iTaskList.Remove(index);
-    	}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::RemoveAllTasks
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::RemoveAllTasks()
-	{
-   	iTaskList.Reset();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ReadTaskItemL
-//
-// Reads one task from sync profile.
-// -----------------------------------------------------------------------------
-//
-TAspTaskItem CAspContentList::ReadTaskItemL(RSyncMLDataSyncProfile& aProfile, TInt aTaskId)
-	{
-	RSyncMLTask task;
-	TAspTaskItem item;
-
-#ifdef _DEBUG	
-	TTime _time = TUtil::TimeBefore();
-#endif
-	
-	TRAPD(err, task.OpenL(aProfile, aTaskId));  // IPC call
-	if (err != KErrNone)
-		{
-		FLOG( _L("### RSyncMLTask::OpenL failed (id=%d, err=%d) ###"), aTaskId, err );
-	    User::Leave(err);
-		}
-
-#ifdef _DEBUG		
-	TUtil::TimeAfter(_time, _L("*RSyncMLTask::Open took"));
-#endif	
-		
-   	item.iTaskId = aTaskId; 
-	TUtil::StrCopy(item.iDisplayName, task.DisplayName());
-	item.iSyncDirection = TAspTask::SyncDirection(task.DefaultSyncType());
-	
-	item.iDataProviderId = task.DataProvider();
-	item.iEnabled = task.Enabled();
-
-	item.iClientDataSource = task.ClientDataSource();
-    item.iLocalDatabaseDefined = EFalse;
-    item.iRemoteDatabaseDefined = EFalse;
-	if (!TUtil::IsEmpty(task.ClientDataSource()))
-		{
-		item.iLocalDatabaseDefined = ETrue;
-		}
-	if (!TUtil::IsEmpty(task.ServerDataSource()))
-		{
-		item.iRemoteDatabaseDefined = ETrue;
-		}
-	
-	task.Close();
-	
-	return item;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::Session
-// 
-// -----------------------------------------------------------------------------
-//
-RSyncMLSession& CAspContentList::Session()
-	{
-	__ASSERT_DEBUG(iSyncSession, TUtil::Panic(KErrGeneral));
-	
-	return *iSyncSession;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CheckMandatoryDataL
-//
-// Function checks that all tasks have mandatory data.
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::CheckMandatoryDataL(TInt& aContentCount)
-	{
-	aContentCount = 0;
-	TInt goodContentCount = 0;
-
-	TInt count = iTaskList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TAspTaskItem& task = iTaskList[i];
-
-		if (!task.iEnabled)
-			{
-			continue; // task not part of sync - no need to check mandatory fields
-			}
-			
-		if (iApplicationId != KErrNotFound && iApplicationId != EApplicationIdSync)
-			{
-			TInt appId = TUtil::AppIdFromProviderId(task.iDataProviderId);
-			if (appId != iApplicationId)
-				{
-				continue; // task not part of sync - no need to check mandatory fields
-				}
-			}
-			
-       	if (!task.iRemoteDatabaseDefined)
-			{
-			aContentCount = goodContentCount;
-		    return EMandatoryNoRemoteDatabase;
-			}
-       	
-       	if (task.iDataProviderId == KUidNSmlAdapterCalendar.iUid)
-       	    {
-            TBool status = EFalse;
-            status = IsValidClientDataSourceL( task.iClientDataSource );
-       	    if ( !status )
-       	        {
-       	        TInt index = FindProviderIndex(task.iDataProviderId);
-       	        TAspProviderItem& provider = ProviderItem(index);
-       	              	        
-                TBuf<KBufSize> localDatabase;
-       	        TBuf<KBufSize> remoteDatabase;
-       	        TInt syncDirection;
-       	        TBool taskEnabled;
-       	        ReadTaskL(provider.iDataProviderId, localDatabase, remoteDatabase,
-       	           taskEnabled, syncDirection);
-       	        
-       	        //Creating new task creates new calendar local database
-                CreateTaskL(provider.iDataProviderId, localDatabase, remoteDatabase,
-                   taskEnabled, syncDirection);
-                
-                InitAllTasksL();
-                InitDataProvidersL();
-       	        }
-       	    
-       	    }
-
-		goodContentCount++;
-		}
-
-    aContentCount = goodContentCount;
-    
-    if (goodContentCount > 0)
-		{
-       	return EMandatoryOk;
-		}
-	else
-		{
-		return EMandatoryNoContent;
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::IncludeTasks
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::IncludeTasks(const CArrayFix<TInt>* aIncludedProviderList)
-	{
-	// update iIsIncludedInSync for all provider items (used in IncludeTaskL)
-	SetIncludedProviders(aIncludedProviderList);
-	
-	TInt count = iProviderList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProviderItem& item = iProviderList[i];
-		TRAPD(err, IncludeTaskL(item));
-		
-		if (err != KErrNone)
-			{
-			FLOG( _L("### CAspContentList::IncludeTaskL failed (id=%x, err=%d) ###"), item.iDataProviderId, err );
-			}
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::SetIncludedProviders
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::SetIncludedProviders(const CArrayFix<TInt>* aIncludedProviderList)
-	{
-	// exclude all providers
-	TInt providerCount = iProviderList.Count();
-	for (TInt i=0; i<providerCount; i++)
-		{
-        (iProviderList[i]).iIsIncludedInSync = EFalse;
-		}
-		
-	// include selected providers (aIncludedProviderList comes from ui)
-	TInt count = aIncludedProviderList->Count();
-	for (TInt i=0; i<count; i++)
-		{
-        TInt index = (*aIncludedProviderList)[i];
-        
-        __ASSERT_ALWAYS(index>=0, TUtil::Panic(KErrGeneral));
-        __ASSERT_ALWAYS(index<providerCount, TUtil::Panic(KErrGeneral));
-        
-        (iProviderList[index]).iIsIncludedInSync = ETrue;
-		}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::GetIncludedProviders
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::GetIncludedProviders(CArrayFix<TInt>* aIncludedProviderList)
-	{
-
-	// get list indexes of data providers with enabled task
-	
-	TInt count = iProviderList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-        TAspProviderItem& item = iProviderList[i];
-        TInt index = FindTaskIndexForProvider(item.iDataProviderId);
-        if (index != KErrNotFound)
-        	{
-        	TAspTaskItem& item2 = iTaskList[index];
-        	if (item2.iEnabled)
-        		{
-        		TRAP_IGNORE(aIncludedProviderList->AppendL(i));
-        		}
-        	}
-		}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::IncludeTaskL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::IncludeTaskL(TAspProviderItem& aDataProvider)
-	{
-	if (!aDataProvider.iIsIncludedInSync)
-		{
-		// exclude task (if exists) from sync
-		ModifyTaskIncludedL(aDataProvider, EFalse, KNullDesC);
-		return;
-		}
-	
-	TInt index = FindTaskIndexForProvider(aDataProvider.iDataProviderId);
-	if (index == KErrNotFound)
-		{
-		// task does not exist - create new
-	    TInt id = CreateTaskL(aDataProvider);
-	    InitTaskL(id);
-		}
-	else
-	 	{
-	 	// include in sync
-		ModifyTaskIncludedL(aDataProvider, ETrue, KNullDesC);
-	 	}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ModifyTaskIncludedL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ModifyTaskIncludedL(TInt aDataProviderId, TBool aIsIncluded, const TDesC& aLocalDatabase)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-    TInt index = FindProviderIndex(aDataProviderId);
-	if (index != KErrNotFound)
-		{
-		TAspProviderItem& item = iProviderList[index];
-		if (!TUtil::IsEmpty(aLocalDatabase))
-		{
-			ModifyTaskIncludedL(item, aIsIncluded, aLocalDatabase);	
-		}
-		else
-		{
-			ModifyTaskIncludedL(item, aIsIncluded, KNullDesC);
-		}
-	}
-	}
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ModifyTaskIncludedL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ModifyTaskIncludedL(TAspProviderItem& aProvider, TBool aIsIncluded, const TDesC& aLocalDatabase)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-	TInt index = FindTaskIndexForProvider(aProvider.iDataProviderId);
-	if (index == KErrNotFound)
-		{
-		if (!TUtil::IsEmpty(aLocalDatabase) && (aProvider.iDataProviderId == KUidNSmlAdapterEMail.iUid))
-		{
-			CreateTaskL(aProvider.iDataProviderId,aLocalDatabase,KNullDesC,ETrue,TAspTask::SyncDirection(SmlSyncDirection()));
-	 		iProfile->Profile().UpdateL();
-	 			 
-	    }
-		return; // no task for this provider
-		}
-		
-	TAspTaskItem& item = iTaskList[index];
-	if ((item.iEnabled == aIsIncluded) && (aProvider.iDataProviderId != KUidNSmlAdapterEMail.iUid))
-		{
-		return; // nothing to modify
-		}
-	
-	if(aProvider.iDataProviderId == KUidNSmlAdapterEMail.iUid)
-	{
-	RSyncMLTask task;
-	CleanupClosePushL(task);
-    
-	task.OpenL(iProfile->Profile(), item.iTaskId);
-	if (!TUtil::IsEmpty(aLocalDatabase))
-	{
-		CreateTaskL(aProvider.iDataProviderId,aLocalDatabase,task.ServerDataSource(),
-	 			 ETrue,TAspTask::SyncDirection(task.DefaultSyncType()));
-	
-	}
-
-	task.SetEnabledL(aIsIncluded);
-	// store task into database
-	task.UpdateL();
-	
-	iProfile->Profile().UpdateL();
-	
-	item.iEnabled = aIsIncluded;
-	CleanupStack::PopAndDestroy(&task);
-	}
-	else
-	{
-		RSyncMLTask task;
-		CleanupClosePushL(task);
-    
-	task.OpenL(iProfile->Profile(), item.iTaskId);
-	task.SetEnabledL(aIsIncluded);
-	
-	// store task into database
-	task.UpdateL();
-	iProfile->Profile().UpdateL();
-	
-	item.iEnabled = aIsIncluded;
-	
-	CleanupStack::PopAndDestroy(&task);
-	}
-	}
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ModifyTaskDirectionL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ModifyTaskDirectionL(TAspProviderItem& aProvider, TInt aSyncDirection)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-	TInt index = FindTaskIndexForProvider(aProvider.iDataProviderId);
-	if (index == KErrNotFound)
-		{
-		return; // no task for this provider
-		}
-		
-	TAspTaskItem& item = iTaskList[index];
-	if (item.iSyncDirection == aSyncDirection)
-		{
-		return; // nothing to modify
-		}
-	
-	RSyncMLTask task;
-	CleanupClosePushL(task);
-    
-	task.OpenL(iProfile->Profile(), item.iTaskId);
-	task.SetDefaultSyncTypeL(TAspTask::SmlSyncDirection(aSyncDirection));
-	
-	// store task into database
-	task.UpdateL();
-	iProfile->Profile().UpdateL();
-	
-	item.iSyncDirection = aSyncDirection;
-	
-	CleanupStack::PopAndDestroy(&task);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ModifyTaskDirectionsL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ModifyTaskDirectionsL(TInt aSyncDirection)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-	
-	TInt count = iProviderList.Count();
-	for (TInt i=0; i<count; i++)
-		{
-        TAspProviderItem& item = iProviderList[i];
-        ModifyTaskDirectionL(item, aSyncDirection);
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CheckTaskDirectionsL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspContentList::CheckTaskDirectionsL()
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-
-    TInt previous = KErrNotFound;
-    
-	TInt count = iTaskList.Count();
-	for (TInt i=0; i<count; i++)
-		{
-        TAspTaskItem& item = iTaskList[i];
-        if (item.iSyncDirection != previous && previous != KErrNotFound)
-        	{
-        	return EFalse;
-        	}
-        	
-        previous = item.iSyncDirection;
-		}
-		
-	return ETrue;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CreateTaskL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::CreateTaskL(TAspProviderItem& aDataProvider)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-		
-	if (!aDataProvider.iHasDefaultDataStore)
-		{
-		User::Leave(KErrNotFound);
-		}
-		
-	RSyncMLTask task;
-	CleanupClosePushL(task);
-	
-	if (aDataProvider.iDataProviderId == KUidNSmlAdapterCalendar.iUid )
-        {
-        TBuf<128> calLocalDb ;
-        CreateCalLocalDatabaseL(calLocalDb);        
-        task.CreateL(iProfile->Profile(), aDataProvider.iDataProviderId, 
-                KNullDesC, calLocalDb);
-        }
-    else
-        {
-        task.CreateL(iProfile->Profile(), aDataProvider.iDataProviderId, 
-	              KNullDesC, aDataProvider.iDefaultDataStore);
-        }
-	task.SetEnabledL(aDataProvider.iIsIncludedInSync);
-	task.SetDefaultSyncTypeL(SmlSyncDirection());
-	
-	// store task into database
-	task.UpdateL();
-	iProfile->Profile().UpdateL();
-	
-	TInt id = task.Identifier();
-	
-	CleanupStack::PopAndDestroy(&task);
-	
-	return id;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CreateTaskL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::CreateTaskL(TInt aDataProviderId,
-                                  const TDesC& aLocalDatabase,
-                                  const TDesC& aRemoteDatabase,
-                                  TBool aEnabled, TInt aSyncDirection)
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-		
-	TInt providerIndex = FindProviderIndex(aDataProviderId);
-	if (providerIndex == KErrNotFound)
-		{
-		return;
-		}
-	 
-	// remove existing task for aDataProviderId
-    TInt taskIndex = FindTaskIndexForProvider(aDataProviderId);
-    if (taskIndex != KErrNotFound)
-    	{
-    	TAspTaskItem& item = TaskItem(taskIndex);
-        iProfile->Profile().DeleteTaskL(item.iTaskId);
-        iProfile->Profile().UpdateL();
-        RemoveTask(aDataProviderId);  // remove deleted task from task list   	
-    	}
-    
-    TAspProviderItem& item = ProviderItem(providerIndex);
-    
-	RSyncMLTask task;
-	CleanupClosePushL(task);
-	
-	if (TUtil::IsEmpty(aLocalDatabase))
-		{
-		if(!ProviderItem(providerIndex).iHasDefaultDataStore)
-			{
-			// defult data store name was probably truncated
-			task.CreateL(iProfile->Profile(), aDataProviderId, 
-			             aRemoteDatabase, KNullDesC);
-			aEnabled = EFalse;
-			}
-		else
-			{
-			if (aDataProviderId == KUidNSmlAdapterCalendar.iUid )
-                {
-                TBuf<KBufSize> calLocalDb ;
-				TRAPD(err ,RetrieveCalLocalDatabaseL(calLocalDb));
-				if (err != KErrNone)
-					{
-					CreateCalLocalDatabaseL(calLocalDb);
-					}								
-                task.CreateL(iProfile->Profile(), aDataProviderId, 
-                                              aRemoteDatabase, calLocalDb);
-                }
-            else
-                {
-                task.CreateL(iProfile->Profile(), aDataProviderId, 
-			             aRemoteDatabase, item.iDefaultDataStore);
-                }
-			}
-		}
-	else
-		{
-		if (aDataProviderId == KUidNSmlAdapterCalendar.iUid )
-		    {
-		    TBuf<128> calLocalDb ;
-		    TRAPD(err ,RetrieveCalLocalDatabaseL(calLocalDb));
-		    if (err != KErrNone)
-		        {
-		        CreateCalLocalDatabaseL(calLocalDb);
-		        }		    
-		    task.CreateL(iProfile->Profile(), aDataProviderId, 
-		                                  aRemoteDatabase, calLocalDb);
-		    }
-		else
-		    {
-		    task.CreateL(iProfile->Profile(), aDataProviderId, 
-		                                              aRemoteDatabase, aLocalDatabase);
-		    }
-		}
-	
-	task.SetEnabledL(aEnabled);
-	task.SetDefaultSyncTypeL(TAspTask::SmlSyncDirection(aSyncDirection));
-	
-	// store task into database
-	task.UpdateL();
-	iProfile->Profile().UpdateL();
-	
-	CleanupStack::PopAndDestroy(&task);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CreateTask
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::CreateTask(TInt aDataProviderId, 
-                                 const TDesC& aLocalDatabase,
-                                 const TDesC& aRemoteDatabase,
-                                 TBool aEnabled, TInt aSyncDirection)
-	{
-	FLOG( _L("CAspContentList::CreateTask START") );
-	
-	TRAPD(err, CreateTaskL(aDataProviderId, aLocalDatabase, aRemoteDatabase, aEnabled, aSyncDirection));
-	
-	if (err != KErrNone)
-		{
-		FLOG( _L("### CreateTask failed (id=%x err=%d) ###"), aDataProviderId, err );
-		}
-		
-	FLOG( _L("CAspContentList::CreateTask END") );
-	}
-
-// -----------------------------------------------------------------------------
-// CAspContentList::CreateTask
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::CreateCalLocalDatabaseL(TDes& aCalName)
-    {
-                
-    
-    TBuf<KBufSize> buffer;
-    iProfile->GetName(buffer);
-	
-	TInt currentProfileId = iProfile->ProfileId();
-	
-	if (buffer.Compare(KAutoSyncProfileName) == 0)
-		{
-		CAspSchedule* schedule = CAspSchedule::NewLC();
-		currentProfileId = schedule->ProfileId();
-		TAspParam param(iApplicationId, iSyncSession);
-		CAspProfile* selectedProfile = CAspProfile::NewLC(param);
-		selectedProfile->OpenL(currentProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
-		selectedProfile->GetName(buffer);
-		CleanupStack::PopAndDestroy(selectedProfile);
-		CleanupStack::PopAndDestroy(schedule);
-		}
-		
-    CCalSession* calSession = CCalSession::NewL();
-    CleanupStack::PushL(calSession);
-    
-        
-    TInt suffix = 0;
-    TInt suffixLen = 0;
-    TInt delPos = buffer.Length();
-    
-    while (!IsCalNameAvailableL(*calSession ,buffer))
-        {
-        //A db with profile name already exists , try profile_1 ,profile_2 etc..
-        if (!suffix)
-            {
-            buffer.Append(KCharUnderscore);
-            ++delPos;
-            }
-        else
-            {
-            while (suffix/10)
-                {
-                ++suffixLen;
-                }
-            
-            buffer.Delete(delPos ,++suffixLen);
-            suffixLen = 0;
-            }   
-        buffer.AppendNum(++suffix);
-        }
-    
-    TBuf8<128> keyBuff;
-    TUint calValue = 0;
-    CCalCalendarInfo* calinfo = CCalCalendarInfo::NewL();
-    CleanupStack::PushL(calinfo);
-    //Visibility
-    calinfo->SetEnabled(ETrue);
-    
-    calinfo->SetNameL(buffer);
-    calinfo->SetColor(Math::Random());
-    
-    // Set Meta Data Properties
-    // LUID Meta Property
-    keyBuff.Zero();
-    keyBuff.AppendNum( EFolderLUID );
-    calValue = CCalenMultiCalUtil::GetNextAvailableOffsetL();
-    FLOG(_L("CNSmlOviAgendaAdapterPlugin::CreateFolderItemL: nextoffset: '%d'"), calValue);
-    TPckgC<TUint> pckgUidValue( calValue );
-    calinfo->SetPropertyL( keyBuff, pckgUidValue );
-    
-    // Create & Modified Time Meta Property
-    keyBuff.Zero();
-    keyBuff.AppendNum( ECreationTime );
-    TTime time;
-    time.HomeTime();
-    TPckgC<TTime> pckgCreateTimeValue( time );
-    calinfo->SetPropertyL( keyBuff, pckgCreateTimeValue );
-    keyBuff.Zero();
-    keyBuff.AppendNum( EModificationTime );
-    calinfo->SetPropertyL( keyBuff, pckgCreateTimeValue );
-    
-    // Sync Status
-    keyBuff.Zero();
-    keyBuff.AppendNum( ESyncStatus );
-    TBool syncstatus( ETrue );
-    TPckgC<TBool> pckgSyncStatusValue( syncstatus );
-    calinfo->SetPropertyL( keyBuff, pckgSyncStatusValue );
-    
-    // Global UID MetaDataProperty 
-    keyBuff.Zero();
-    keyBuff.AppendNum( EGlobalUUID );
-    CCalenInterimUtils2* interimUtils = CCalenInterimUtils2::NewL();
-    CleanupStack::PushL( interimUtils );
-    HBufC8* guuid = interimUtils->GlobalUidL();
-    TPtr8 guuidPtr = guuid->Des();
-    CleanupStack::PushL( guuid );
-    calinfo->SetPropertyL( keyBuff, guuidPtr );
-    CleanupStack::PopAndDestroy( guuid );
-    CleanupStack::PopAndDestroy( interimUtils );
-          
-    // Owner Name
-    keyBuff.Zero();
-    keyBuff.AppendNum( EDeviceSyncServiceOwner );
-    TPckgC<TInt> pckgAppUIDValue( KCRUidNSmlDSApp.iUid );    
-    calinfo->SetPropertyL( keyBuff, pckgAppUIDValue );
-
-    // Profile ID Meta Property
-    keyBuff.Zero();
-    keyBuff.AppendNum( EDeviceSyncProfileID );
-    TPckgC<TInt> pckgProfileIdValue( currentProfileId );    
-    calinfo->SetPropertyL( keyBuff, pckgProfileIdValue );
-
-    // Lock the SYNC option
-   keyBuff.Zero();
-   keyBuff.AppendNum( ESyncConfigEnabled );
-   TBool synclockstatus( ETrue );
-   TPckgC<TBool> pckgSyncLockValue( synclockstatus );
-   calinfo->SetPropertyL( keyBuff, pckgSyncLockValue );
-    
-    // Create the CalFile
-    HBufC* calfilename = CCalenMultiCalUtil::GetNextAvailableCalFileL();
-    calSession->CreateCalFileL( calfilename->Des(), *calinfo );
-		
-    aCalName.Copy(KNSmlAgendaFileNameForDefaultDB);
-    
-    delete calfilename;
-    
-    CleanupStack::PopAndDestroy(calinfo);
-    CleanupStack::PopAndDestroy(calSession);
-    }
-
-// -----------------------------------------------------------------------------
-// CAspContentList::IsCalNameAvailableL
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CAspContentList::IsCalNameAvailableL(CCalSession& aSession ,TDes& aCalName)
-    {
-    CCalSession* vCalSubSession = NULL;  
-    CDesCArray* calfilearr = aSession.ListCalFilesL();
-    
-    for(TInt i = 0; i < calfilearr->Count(); i++)
-        {
-        vCalSubSession = CCalSession::NewL(aSession);
-        CleanupStack::PushL(vCalSubSession);
-        vCalSubSession->OpenL(calfilearr->MdcaPoint(i));
-    
-        CCalCalendarInfo* caleninfo = vCalSubSession->CalendarInfoL(); 
-        
-        if (aCalName == caleninfo->NameL())
-            {
-            delete caleninfo;
-            delete calfilearr;
-            CleanupStack::PopAndDestroy(vCalSubSession);
-            return EFalse;
-            }
-    
-        delete caleninfo;    
-        CleanupStack::PopAndDestroy(vCalSubSession); 
-        }
-    delete calfilearr;
-    return ETrue;
-    
-    }
-// -----------------------------------------------------------------------------
-// CAspContentList::RetrieveCalLocalDatabaseL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::RetrieveCalLocalDatabaseL(TDes& aCalName)
-    {
-      
-    FLOG(_L("CAspContentList::RetrieveCalLocalDatabaseL: BEGIN"));   
-      
-    TBuf8<128> keyBuff;
-    CCalSession* vCalSession = NULL;
-    CCalSession* vCalSubSession = NULL;   
-    
-    vCalSession = CCalSession::NewL();
-    CleanupStack::PushL(vCalSession);
-    
-    CDesCArray* calfilearr = vCalSession->ListCalFilesL();            
-    
-    TBool dbFound = EFalse;
-    for(TInt i = 0; i < calfilearr->Count(); i++)
-        {
-        vCalSubSession = CCalSession::NewL(*vCalSession);
-        CleanupStack::PushL(vCalSubSession);
-        vCalSubSession->OpenL(calfilearr->MdcaPoint(i));
-        
-        CCalCalendarInfo* caleninfo = vCalSubSession->CalendarInfoL(); 
-        CleanupStack::PushL(caleninfo);
-		
-		//Get MARKASDELETE MetaData property
-		keyBuff.Zero();
-		TBool markAsdelete = EFalse;
-		keyBuff.AppendNum( EMarkAsDelete );
-		TPckgC<TBool> pckMarkAsDelete(markAsdelete);
-		TRAPD(err,pckMarkAsDelete.Set(caleninfo->PropertyValueL(keyBuff)));
-		if ( err == KErrNone )
-			{
-			markAsdelete = pckMarkAsDelete();
-			if( markAsdelete )
-				{
-				CleanupStack::PopAndDestroy(caleninfo);
-				CleanupStack::PopAndDestroy(vCalSubSession);  	  	 
-				continue;
-				}
-			}
-        
-        TInt profileId;
-        keyBuff.Zero();
-        keyBuff.AppendNum( EDeviceSyncProfileID );
-        TPckgC<TInt> intBuf(profileId);
-        TRAP_IGNORE(intBuf.Set(caleninfo->PropertyValueL(keyBuff)));
-        profileId = intBuf();
-		
-        TBuf<KBufSize> buffer;
-		iProfile->GetName(buffer);
-		
-		TInt currentProfileId = iProfile->ProfileId();
-	
-		if (buffer.Compare(KAutoSyncProfileName) == 0)
-			{
-			CAspSchedule* schedule = CAspSchedule::NewLC();
-			currentProfileId = schedule->ProfileId();
-			CleanupStack::PopAndDestroy(schedule);		
-			}
-		
-        if ( profileId == currentProfileId)
-            {
-            aCalName.Append(caleninfo->FileNameL());
-            dbFound = ETrue;
-            CleanupStack::PopAndDestroy(caleninfo);   
-            CleanupStack::PopAndDestroy(vCalSubSession);
-            break;
-            }
-        CleanupStack::PopAndDestroy(caleninfo);    
-        CleanupStack::PopAndDestroy(vCalSubSession); 
-        }
-		
-		if( dbFound == EFalse )
-			{
-			delete calfilearr; 
-			User::Leave( KErrNotFound );
-			}
- 
-    delete calfilearr;     
-    CleanupStack::PopAndDestroy(vCalSession);
-    }
-
-// -----------------------------------------------------------------------------
-// CAspContentList::IsValidClientDataSource
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CAspContentList::IsValidClientDataSourceL( TDes& aCalName )
-    {
-    TBool datasourcefound = ETrue;
-    TBuf8<KBufSize> keyBuff;
-    CCalCalendarInfo* caleninfo = NULL;
-    CCalSession* session = CCalSession::NewL();
-    CleanupStack::PushL(session);
-    TRAPD (err, session->OpenL(aCalName));
-    
-    if( err == KErrNotFound )
-        {
-        datasourcefound = EFalse;
-        }
-    else
-        {
-        caleninfo = session->CalendarInfoL(); 
-        CleanupStack::PushL(caleninfo);
-                
-        //Get MARKASDELETE MetaData property
-        keyBuff.Zero();
-        TBool markAsdelete = EFalse;
-        keyBuff.AppendNum( EMarkAsDelete );
-        TPckgC<TBool> pckMarkAsDelete(markAsdelete);
-        TRAP(err,pckMarkAsDelete.Set(caleninfo->PropertyValueL(keyBuff)));
-        if ( err == KErrNone )
-            {
-            markAsdelete = pckMarkAsDelete();
-            if( markAsdelete )
-                {
-                datasourcefound = EFalse;
-                }
-            }
-        CleanupStack::PopAndDestroy(caleninfo);
-        }
-    CleanupStack::PopAndDestroy(session);
-    return datasourcefound;
-    }
-
-// -----------------------------------------------------------------------------
-// CAspContentList::ReadTaskL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::ReadTaskL(TInt aDataProviderId, TDes& aLocalDatabase,
-                                TDes& aRemoteDatabase, TBool& aEnable, TInt& aSyncDirection)
-
-	{
-	__ASSERT_ALWAYS(iProfile, TUtil::Panic(KErrGeneral));
-
-	aLocalDatabase = KNullDesC;
-	aRemoteDatabase = KNullDesC;
-	aSyncDirection = SyncDirection();
-	aEnable = EFalse;
-
-	TInt index = FindTaskIndexForProvider(aDataProviderId);
-	if (index == KErrNotFound)
-		{
-		return;
-		}
-	 
-    TAspTaskItem& item = TaskItem(index);
-    
-	RSyncMLTask task;
-	CleanupClosePushL(task);
-	
-	task.OpenL(iProfile->Profile(), item.iTaskId);
-	
-	aLocalDatabase = task.ClientDataSource();
-	aRemoteDatabase = task.ServerDataSource();
-	aEnable = task.Enabled();
-	aSyncDirection = TAspTask::SyncDirection(task.DefaultSyncType());
-		
-	CleanupStack::PopAndDestroy(&task);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::GetLocalDatabaseListL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::GetLocalDatabaseListL(TInt aDataProviderId, CDesCArray* aList)
-	{
-	__ASSERT_ALWAYS(iSyncSession, TUtil::Panic(KErrGeneral));
-	
-    RSyncMLDataProvider provider;	
-    CleanupClosePushL(provider);
-
-    provider.OpenL(*iSyncSession, aDataProviderId);
-    provider.GetDataStoreNamesL(*aList);
-    
-    CleanupStack::PopAndDestroy(&provider);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::GetLocalDatabaseList
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::GetLocalDatabaseList(TInt aDataProviderId, CDesCArray* aList)
-	{
-	TRAP_IGNORE(GetLocalDatabaseListL(aDataProviderId, aList));
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::SmlSyncDirection
-//
-// -----------------------------------------------------------------------------
-//
-TSmlSyncType CAspContentList::SmlSyncDirection()
-	{
-	TInt syncDirection = SyncDirection();
-	return TAspTask::SmlSyncDirection(syncDirection);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::SyncDirection
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspContentList::SyncDirection()
-	{
-	if (iTaskList.Count() == 0)
-		{
-		return ESyncDirectionTwoWay; // default sync direction
-		}
-		
-	TAspTaskItem& item = iTaskList[0];
-	return item.iSyncDirection;  // all tasks have same sync direction
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::TaskEnabled
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspContentList::TaskEnabled(TInt aDataProviderId)
-	{
-	TBool ret = EFalse;
-	
-    TInt index = FindTaskIndexForProvider(aDataProviderId);
-    if (index != KErrNotFound)
-    	{
-    	TAspTaskItem& item = TaskItem(index);
-    	if (item.iEnabled)
-    		{
-    		ret = ETrue;
-    		}
-    	}
-    	
-	return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::Sort
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::Sort()
-	{
-	iProviderList.Sort(TLinearOrder<TAspProviderItem>(TAspProviderItem::CompareItems));
-	}
-
-
-#ifdef _DEBUG
-
-// -----------------------------------------------------------------------------
-// CAspContentList::LogL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::LogL(const TDesC& aText)
-	{
-	FLOG( _L("CAspContentList::LogL START") );
-
-	if (aText.Length() > 0)
-		{
-		FTRACE( RDebug::Print(_L("Profile = '%S'"), &aText) );
-		}
-		
-	LogTasksL();
-	LogDataProvidersL();
-	
-	FLOG( _L("CAspContentList::LogL END") );
-	}
-	
-
-// -----------------------------------------------------------------------------
-// CAspContentList::LogTasksL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::LogTasksL()
-	{
-    FLOG( _L("---- sync tasks ----") );
-    
-	TInt count = iTaskList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspTaskItem& t = iTaskList[i];
-		TBuf<128> buf;
-		GetTaskLogText(buf, t);
-		FLOG(buf);
-		}
-		
-	FLOG( _L("---- sync tasks ----") );
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::GetTaskLogText
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::GetTaskLogText(TDes& aText, TAspTaskItem& aTask)
-	{
-	TBuf<KBufSize64> buf;
-	GetDataProviderIdText(buf, aTask.iDataProviderId);
-	
-	aText.Format(_L("id=%d, remote_db=%d, local_db=%d, enabled=%d, providerId=%x, providername='%S'"),
-	             aTask.iTaskId, aTask.iRemoteDatabaseDefined, aTask.iLocalDatabaseDefined,
-	             aTask.iEnabled, aTask.iDataProviderId, &buf);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspContentList::LogDataProvidersL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::LogDataProvidersL()
-	{
-    FLOG( _L("---- data providers ----") );
-    
-	TInt count = iProviderList.Count();
-	
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProviderItem& item = iProviderList[i];
-		TBuf<32> buf;
-		GetDataProviderIdText(buf, item.iDataProviderId);
-		if (item.iHasDefaultDataStore)
-			{
-			FTRACE( RDebug::Print(_L("id=%S (%x), name='%S'"), &buf, item.iDataProviderId, &item.iDisplayName) );
-			}
-		else
-			{
-			FTRACE( RDebug::Print(_L("id=%S (%x), name='%S', ### no default data provider ###"), &buf, item.iDataProviderId, &item.iDisplayName) );
-			}
-		}
-		
-	FLOG( _L("---- data providers ----") );
-	}
-
-    
-// -----------------------------------------------------------------------------
-// CAspContentList::GetDataProviderIdText
-//
-// -----------------------------------------------------------------------------
-//
-void CAspContentList::GetDataProviderIdText(TDes& aText, TInt aId)
-	{
-	aText = _L("unknown");
-	
-	if (aId == KUidNSmlAdapterContact.iUid)
-		{
-		aText = _L("KUidNSmlAdapterContact");
-		}
-	if (aId == KUidNSmlAdapterCalendar.iUid)
-		{
-		aText = _L("KUidNSmlAdapterCalendar");
-		}
-	if (aId == KUidNSmlAdapterEMail.iUid)
-		{
-		aText = _L("KUidNSmlAdapterEMail");
-		}
-	if (aId == KUidNSmlAdapterNote.iUid)
-		{
-		aText = _L("KUidNSmlAdapterNote");
-    	}
-	if (aId == KUidNSmlAdapterSms.iUid)
-		{
-		aText = _L("KUidNSmlAdapterSms");
-    	}
-	if (aId == KUidNSmlAdapterMMS.iUid)
-		{
-		aText = _L("KUidNSmlAdapterMMS");
-    	}
-	if (aId == KUidNSmlAdapterBookmarks.iUid)
-		{
-		aText = _L("KUidNSmlAdapterBookmarks");
-    	}
-	}
-	
-#endif
-
-
-
-/*******************************************************************************
- * class TAspProfileItem
- *******************************************************************************/
-
-
-// -----------------------------------------------------------------------------
-// TAspProfileItem::Init
-//
-// -----------------------------------------------------------------------------
-//
-void TAspProfileItem::Init()
-	{
-	iProfileName = KNullDesC;
-	iProfileId = KErrNotFound;
-	iSynced = EFalse;
-	iLastSync = 0;
-	iBearer = KErrNotFound;
-	iActive = EFalse;
-	iDeleteAllowed = EFalse;
-	iApplicationId = KErrNotFound;
-	iMandatoryCheck = KErrNotFound;
-	iTaskCount = KErrNotFound;
-	iTaskId = KErrNotFound;
-	}
-
-
-
-
-// -----------------------------------------------------------------------------
-// TAspProfileItem::NameLC
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* TAspProfileItem::NameLC()
-	{
-	return iProfileName.AllocLC();
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspProfileItem::Name
-//
-// -----------------------------------------------------------------------------
-//
-const TDesC& TAspProfileItem::Name()
-	{
-	return iProfileName;
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspProfileItem::SetName
-//
-// -----------------------------------------------------------------------------
-//
-void TAspProfileItem::SetName(const TDesC& aName)
-	{
-	TUtil::StrCopy(iProfileName, aName);
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspProfileItem::CompareItems
-//
-// -----------------------------------------------------------------------------
-//
-TInt TAspProfileItem::CompareItems(const TAspProfileItem& aFirst, const TAspProfileItem& aSecond)
-	{
-	return aFirst.iProfileName.CompareC(aSecond.iProfileName);
-	}
-
-
-
-
-
-
-/*******************************************************************************
- * class CAspProfileList
- *******************************************************************************/
-
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfileList* CAspProfileList::NewLC(const TAspParam& aParam)
-    {
-    FLOG( _L("CAspProfileList::NewLC START") );
-    
-    CAspProfileList* self = new (ELeave) CAspProfileList(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	
-	
-    FLOG( _L("CAspProfileList::NewLC END") );
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfileList* CAspProfileList::NewL(const TAspParam& aParam)
-    {
-    FLOG( _L("CAspProfileList::NewL START") );
-    
-    CAspProfileList* self = new (ELeave) CAspProfileList(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-
-    FLOG( _L("CAspProfileList::NewL END") );
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfileList::~CAspProfileList()
-    {
-	iList.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ConstructL(void)
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::CAspProfileList
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfileList::CAspProfileList(const TAspParam& aParam)
-	{
-	__ASSERT_ALWAYS(aParam.iSyncSession, TUtil::Panic(KErrGeneral));
-
-	iSyncSession = aParam.iSyncSession;
-	iApplicationId = aParam.iApplicationId;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::Count
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::Count()
-	{
-	return iList.Count();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::Count
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::Count(TInt aApplicationId)
-	{
-	TInt profileCount = 0;
-	TInt count = iList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		if (item.iApplicationId == aApplicationId)
-			{
-			profileCount++;
-			}
-		}
-	
-	return profileCount;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::DeletableProfileCount
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::DeletableProfileCount()
-	{
-	TInt profileCount = 0;
-	TInt count = iList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		if (item.iDeleteAllowed)
-			{
-			profileCount++;
-			}
-		}
-	
-	return profileCount;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::Item
-// 
-// -----------------------------------------------------------------------------
-//
-TAspProfileItem& CAspProfileList::Item(TInt aIndex)
-	{
-	if ((aIndex < 0) || (aIndex >= Count()))
-	    {
-		TUtil::Panic(KErrArgument);
-	    }
-
-	return iList[aIndex];
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::FindProfileIndex
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::FindProfileIndex(const TDesC& aProfileName)
-	{
-	TInt count = iList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TPtrC ptr = Item(i).Name();
-		if (ptr.Compare(aProfileName) == 0)
-			{
-			return i;
-			}
-		}
-
-	return KErrNotFound;
-	}
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::GetDefaultProfileIdL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::GetDefaultProfileIdL(TInt& aValue)
-	{
-	const TUid KRepositoryId = KCRUidDSDefaultProfileInternalKeys;
-	
-    CRepository* rep = CRepository::NewLC(KRepositoryId);
-    TInt err = rep->Get(KNsmlDsDefaultProfile, aValue);
-	User::LeaveIfError(err);
-	CleanupStack::PopAndDestroy(rep);    
-	}
-	
-// -----------------------------------------------------------------------------
-// CAspProfileList::FindLastSyncedProfileIndexL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::FindLastSyncedProfileIndexL()
-	{
-	TInt index = KErrNotFound;
-	TTime syncTime = 0;
-	
-	TInt count = iList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		if (item.iLastSync > syncTime)
-			{
-			syncTime = item.iLastSync;
-			index = i;
-			}
-		}
-	
-	if (index == KErrNotFound && count > 0)
-		{
-		//Read the Default Profile Id from the Cenrep
-		TInt defaultprofileId;
-		GetDefaultProfileIdL(defaultprofileId);
-		for (TInt i=0; i<count; i++)
-			{
-			TAspProfileItem& item = iList[i];
-			if ( item.iProfileId == defaultprofileId )
-				{
-				index = i;
-				break;
-				}
-			}
-		
-		if(index == KErrNotFound)
-			{
-			TAspParam param(iApplicationId, iSyncSession);
-	    	    	
-			for( TInt i=0; i<count; i++)
-				{
-				CAspProfile* profile = CAspProfile::NewLC(param);
-				TAspProfileItem& item = iList[i];
-				profile->OpenL(item.iProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);	
-				if( CAspProfile::IsPCSuiteProfile(profile) )
-					{
-					index = i;
-					CleanupStack::PopAndDestroy(profile);
-					break;
-					}
-				else
-					{
-					CleanupStack::PopAndDestroy(profile);
-					}			
-				}
-			}
-		}
-	return index;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::FilteredList
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfileList* CAspProfileList::FilteredListL(TAspFilterInfo& aFilterInfo)
-	{
-	TInt type = aFilterInfo.iFilterType;
-	
-	if (type != TAspFilterInfo::EIncludeDeletableProfile &&
-	    type != TAspFilterInfo::EIncludeRemoteProfile)
-		{
-		TUtil::Panic(KErrNotSupported);
-		}
-		
-	TAspParam param(iApplicationId, iSyncSession);
-	CAspProfileList* profileList = CAspProfileList::NewLC(param);
-	
-	TInt count = iList.Count();
-
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		
-		if (type == TAspFilterInfo::EIncludeDeletableProfile)
-			{
-		    if (item.iDeleteAllowed)
-			    {
-			    profileList->AddL(item);
-			    }
-			}
-
-		if (type == TAspFilterInfo::EIncludeRemoteProfile)
-			{
-		    if (item.iBearer == EAspBearerInternet)
-			    {
-			    profileList->AddL(item);
-			    }
-			}
-    	}
-	
-		
-	CleanupStack::Pop(profileList);
-	return profileList;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::ReplaceProfileItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ReplaceProfileItemL(TAspProfileItem& aProfileItem)
-	{
-	// remove old profile with same id
-	Remove(aProfileItem.iProfileId);
-	
-	// add new profile 
-    User::LeaveIfError(iList.Append(aProfileItem));
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfileList::ReadProfileL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ReadProfileL(TInt aProfileId)
-	{
-	FLOG( _L("CAspProfileList::ReadProfileL START") );
-	
-	TAspParam param(iApplicationId, iSyncSession);
-    CAspProfile* profile = CAspProfile::NewLC(param);
-	
-	profile->OpenL(aProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
-	
-	TAspProfileItem item;
-	item.Init();
-
-	if (iApplicationId != EApplicationIdSync)
-		{
-		TInt dataProviderId = TUtil::ProviderIdFromAppId(iApplicationId, CAspProfile::IsOperatorProfileL(profile));
-		TInt taskId = TAspTask::FindTaskIdL(profile, dataProviderId, KNullDesC);
-		item.iTaskId = taskId; // needed for syncing only one content 
-		}
-	
-	ReadProfileItemL(profile, item);
-	
-	//item.iMandatoryCheck = CAspProfile::CheckMandatoryData(profile, item.iTaskCount);
-	
-	ReplaceProfileItemL(item);
-
-#ifdef _DEBUG
-    TAspParam param2(iApplicationId, iSyncSession);
-	param2.iProfile = profile;
-	param2.iMode = CAspContentList::EInitAll;
-	CAspContentList* contentList = CAspContentList::NewLC(param2);
-
-    contentList->LogL(item.iProfileName);
-    
-    CleanupStack::PopAndDestroy(contentList);
-#endif	
-	
-	CleanupStack::PopAndDestroy(profile);
-	
-	FLOG( _L("CAspProfileList::ReadProfileL END") );
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfileList::ReadAllProfilesL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ReadAllProfilesL(TInt aListMode)
-	{
-	FLOG( _L("CAspProfileList::ReadAllProfilesL START") );
-	
-#ifdef _DEBUG
-    	TTime time_1 = TUtil::TimeBefore();
-#endif
-	
-	iList.Reset();
-	
-	RArray<TSmlProfileId> arr;
-    Session().ListProfilesL(arr, ESmlDataSync);
-   	CleanupClosePushL(arr);
-
-	TInt count = arr.Count();
-
-	//Hiding OVI Sync profile
-	const TUid KUidOtaSyncCenRep                = { 0x20016C06 };
-	const TUid KCRUidOtaSyncProfileId           = { 0x102 };
-	TInt oviProfileId = KErrNotFound;
-	CRepository* centRep = NULL;
-
-	TRAPD(err ,centRep = CRepository::NewL(KUidOtaSyncCenRep));
-	if (err == KErrNone)
-		{
-		CleanupStack::PushL(centRep);
-		centRep->Get(KCRUidOtaSyncProfileId.iUid, oviProfileId);
-    	CleanupStack::PopAndDestroy();// centRep
-		}
-	for (TInt i=0; i<count; i++)
-		{
-		TAspParam param(iApplicationId, iSyncSession);
-		CAspProfile* profile = CAspProfile::NewLC(param);
-		TInt id = arr[i];
-		
-		//Hiding OVI Sync profile
-		if (id == oviProfileId)
-			{
-			CleanupStack::PopAndDestroy(profile);
-			continue;
-		    }
-		if (aListMode == EBasePropertiesOnly)
-			{
-			profile->OpenL(id, CAspProfile::EOpenRead, CAspProfile::EBaseProperties);
-			}
-		else
-			{
-			profile->OpenL(id, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
-			}
-			
-		
-		// Hidden operator specific profile should not be visible
-		if (profile->IsHiddenOperatorProfileL())
-		    {
-		    CleanupStack::PopAndDestroy(profile);
-		    continue;
-		    }
-
-		TAspProfileItem item;
-		item.Init();
-		
-		if (iApplicationId != EApplicationIdSync)
-			{
-			TInt dataProviderId = TUtil::ProviderIdFromAppId(iApplicationId, CAspProfile::IsOperatorProfileL(profile));
-			TInt taskId = TAspTask::FindTaskIdL(profile, dataProviderId, KNullDesC);
-			item.iTaskId = taskId; // needed for syncing only one content 
-			}
-		
-		if (aListMode == EBasePropertiesOnly)
-			{
-			profile->GetName(item.iProfileName);
-			if (TUtil::IsEmpty(item.iProfileName))
-				{
-				CAspResHandler::ReadL(item.iProfileName,R_ASP_UNNAMED_SET);
-				}
-			item.iApplicationId = profile->CreatorId();
-			item.iProfileId = profile->ProfileId();
-			}
-		else
-			{
-			ReadProfileItemL(profile, item);
-			}
-		
-		if (aListMode == EMandatoryCheck || aListMode == EMandatoryCheckEx)
-			{
-			item.iMandatoryCheck = CAspProfile::CheckMandatoryData(profile, item.iTaskCount);
-			}
-
-		if (aListMode == EMandatoryCheckEx && item.iMandatoryCheck != EMandatoryOk)
-			{
-			CleanupStack::PopAndDestroy(profile);
-			continue;  // ignore profile that misses some mandatory data
-			}
-		
-		if(IsAutoSyncProfile(profile))
-			{
-			CleanupStack::PopAndDestroy(profile);
-			continue;  // auto sync profile should be hidden
-			}
-		
-		User::LeaveIfError(iList.Append(item));
-		
-		CleanupStack::PopAndDestroy(profile);
-		}
-        
-    CleanupStack::PopAndDestroy(&arr);
-    
-#ifdef _DEBUG    
-    TUtil::TimeAfter(time_1, _L("ReadAllProfilesL took"));
-#endif
-    
-    FLOG( _L("CAspProfileList::ReadAllProfilesL END") );
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::ReadEMailProfilesL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ReadEMailProfilesL(const TDesC& aLocalDatabase, TInt /*aListMode*/)
-	{
-	FLOG( _L("CAspProfileList::ReadEMailProfilesL START") );
-	
-	iList.Reset();
-	
-	RArray<TSmlProfileId> arr;
-    Session().ListProfilesL(arr, ESmlDataSync);
-   	CleanupClosePushL(arr);
-
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		TAspParam param(iApplicationId, iSyncSession);
-		CAspProfile* profile = CAspProfile::NewLC(param);
-		
-		TInt id = arr[i];
-		profile->OpenL(id, CAspProfile::EOpenRead, CAspProfile::EBaseProperties);
-		
-		TAspProfileItem item;
-		item.Init();
-		
-		TInt taskId = TAspTask::FindTaskIdL(profile, KUidNSmlAdapterEMail.iUid, aLocalDatabase);
-		item.iTaskId = taskId; // needed for syncing only one content
-		
-		if( taskId != KErrNotFound )
-		{
-		profile->GetName(item.iProfileName);
-		item.iApplicationId = profile->CreatorId();
-		item.iProfileId = profile->ProfileId();
-		
-		if(IsAutoSyncProfile(profile))
-			{
-			CleanupStack::PopAndDestroy(profile);
-			continue;  // auto sync profile should be hidden
-			}
-		
-		User::LeaveIfError(iList.Append(item));
-		}
-		CleanupStack::PopAndDestroy(profile);
-		}
-        
-    CleanupStack::PopAndDestroy(&arr);
-    
-    FLOG( _L("CAspProfileList::ReadEMailProfilesL END") );
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::ReadProfileItemL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::ReadProfileItemL(CAspProfile* aProfile, TAspProfileItem& aItem)
-	{
-	aProfile->GetName(iBuf);
-	if (TUtil::IsEmpty(iBuf))
-		{
-		CAspResHandler::ReadL(iBuf, R_ASP_UNNAMED_SET);
-		}
-    aItem.SetName(iBuf);
-	
-	aProfile->GetServerId(iBuf);
-	TInt len = iBuf.Size();  // number of bytes
-	TUint16 checkSum = 0;
-	if (len > 0)
-		{
-		Mem::Crc(checkSum, iBuf.Ptr(), len);
-		}
-	aItem.iServerIdCheckSum = checkSum;
-
-	aItem.iProfileId = aProfile->ProfileId();
-	aItem.iSynced    = aProfile->IsSynced();
-	aItem.iLastSync  = aProfile->LastSync();
-	aItem.iBearer    = aProfile->BearerType();
-    
-    aItem.iActive = EFalse;
-    if (aProfile->SASyncState() != ESASyncStateDisable)
-    	{
-    	aItem.iActive = ETrue;
-    	}
-    	
-	aItem.iDeleteAllowed = aProfile->DeleteAllowed();
-	aItem.iMandatoryCheck = EMandatoryOk;
-	aItem.iApplicationId = aProfile->CreatorId();
-	
-	aItem.iTaskCount = 0;
-    }
-		
-	
-// -----------------------------------------------------------------------------
-// CAspProfileList::Sort
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::Sort()
-	{
-	iList.Sort(TLinearOrder<TAspProfileItem>(TAspProfileItem::CompareItems));
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::Remove
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::Remove(TInt aProfileId)
-	{
-	TInt count = iList.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		if (item.iProfileId == aProfileId)
-			{
-			iList.Remove(i);
-			return;
-			}
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::AddL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfileList::AddL(TAspProfileItem& aProfileItem)
-	{
-	User::LeaveIfError(iList.Append(aProfileItem));
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::ListIndex
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfileList::ListIndex(TInt aProfileId)
-	{
-	TInt count = iList.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		TAspProfileItem& item = iList[i];
-		if (item.iProfileId == aProfileId)
-			{
-			return i;
-			}
-		}
-
-	return KErrNotFound;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::Session
-// 
-// -----------------------------------------------------------------------------
-//
-RSyncMLSession& CAspProfileList::Session()
-	{
-	__ASSERT_DEBUG(iSyncSession, TUtil::Panic(KErrGeneral));
-	
-	return *iSyncSession;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfileList::IsUniqueServerId
-// 
-// -----------------------------------------------------------------------------
-//
-TBool CAspProfileList::IsUniqueServerId(const TDesC& aServerId, TInt aProfileId)
-	{
-	TInt serverIdLen = aServerId.Length();
-	if (serverIdLen == 0)
-		{
-		return ETrue;
-		}
-
-    // Operator specific serverID is not considered as unique
-	if (CAspProfile::EqualsToOperatorServerId(aServerId))
-	    {
-	    return EFalse;
-	    }
-
-	TBool serverIdFound = EFalse;
-	
-	TInt count = iList.Count();
-	for (TInt i=0; i<count; i++)
-		{
-	   	TAspProfileItem& item = iList[i];
-		if (item.iProfileId == aProfileId)
-			{
-			continue;
-			}
-
-		TUint16 checkSum = 0;
-		TInt len = aServerId.Size(); // number of bytes
-	
-		Mem::Crc(checkSum, aServerId.Ptr(), len);
-		if (item.iServerIdCheckSum == checkSum)
-			{
-			serverIdFound = ETrue;
-			break;
-			}
-		}
-
-    if (serverIdFound)
-    	{
-    	return EFalse;
-    	}
-    	
-    return ETrue;
-	}
-
-
-TBool CAspProfileList::IsAutoSyncProfile(CAspProfile* aProfile)
-	{
-	TBuf<KBufSize> profileName;
-	aProfile->GetName(profileName);
-	if (profileName.Compare(KAutoSyncProfileName) == 0)
-		{
-		return ETrue;
-		}
-	return EFalse;
-	}
-
-/******************************************************************************
- * class CAspProfile
- ******************************************************************************/
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::NewLC
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfile* CAspProfile::NewLC(const TAspParam& aParam)
-    {
-    FLOG( _L("CAspProfile::NewLC START") );
-    
-    CAspProfile* self = new (ELeave) CAspProfile(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-
-	FLOG( _L("CAspProfile::NewLC END") );
-	return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CAspProfile::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfile* CAspProfile::NewL (const TAspParam& aParam)
-    {
-    FLOG( _L("CAspProfile::NewL START") );
-    
-    CAspProfile* self = new (ELeave) CAspProfile(aParam);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-
-    FLOG( _L("CAspProfile::NewL END") );
-	return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Destructor
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfile::~CAspProfile()
-    {
-    if (iHistoryLogOpen)
-    	{
-    	iHistoryLog.Close();
-    	}
-
-    if (iConnectionOpen)
-    	{
-    	iConnection.Close();
-    	}
-    
-    iProfile.Close();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::ConstructL()
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CAspProfile
-//
-// -----------------------------------------------------------------------------
-//
-CAspProfile::CAspProfile(const TAspParam& aParam)
-	{
-	__ASSERT_ALWAYS(aParam.iSyncSession, TUtil::Panic(KErrGeneral));
-
-	iSyncSession = aParam.iSyncSession;
-	iApplicationId = aParam.iApplicationId;
-	
-	
-    iHistoryLogOpen = EFalse;
-    iConnectionOpen = EFalse;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::OpenL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::OpenL(TInt aProfileId, TInt aReadWrite, TInt aOpenMode)
-    {
-    FLOG( _L("CAspProfile::OpenL START") );
-    
-    if (aReadWrite == EOpenRead)
-    	{
-    	iProfile.OpenL(*iSyncSession, aProfileId, ESmlOpenRead);
-    	}
-    else
-    	{
-    	iProfile.OpenL(*iSyncSession, aProfileId, ESmlOpenReadWrite);
-    	}
-    
-    if (aOpenMode == EAllProperties)
-    	{
-    	OpenConnection();  // this updates iConnectionOpen
-    	OpenHistoryLog();  // this updates iHistoryLogOpen
-    	}
-    	
-    FLOG( _L("CAspProfile::OpenL END") );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CreateL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::CreateL(TInt aOpenMode)
-    {
-    FLOG( _L("CAspProfile::CreateL START") );
-    
-   	iProfile.CreateL(*iSyncSession);
-   	iProfile.SetCreatorId(iApplicationId);  // creator application id
-   	iProfile.UpdateL();
-   	
-	// create connection for new profile (convergence)
-    //TInt transportId = DefaultTransportIdL();
-    //iConnection.CreateL(iProfile, transportId);
-    //iConnection.UpdateL();
-    //iConnection.Close();
-    //iProfile.UpdateL();	
-   	
-    if (aOpenMode == EAllProperties)
-    	{
-    	OpenConnection();  // this updates iConnectionOpen
-    	OpenHistoryLog();  // this updates iHistoryLogOpen
-    	}
-    	
-    FLOG( _L("CAspProfile::CreateL END") );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::DefaultTransportIdL 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::DefaultTransportIdL()
-    {
-    TAspParam param(EApplicationIdSync, iSyncSession);
-    CAspBearerHandler* bearerHandler = CAspBearerHandler::NewL(param);
-    CleanupStack::PushL(bearerHandler);
-    
-    TInt id = bearerHandler->DefaultBearer(); 
-    
-    CleanupStack::PopAndDestroy(bearerHandler);
-    
-    if (id == KErrNotFound)
-    	{
-    	User::Leave(KErrNotFound);
-    	}
-    	
-    return CAspBearerHandler::SmlBearerId(id);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CreateCopyL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::CreateCopyL(TInt aProfileId)
-    {
-    FLOG( _L("CAspProfile::CreateCopyL START") );
-    
-    CreateL(EAllProperties);
-    
-    TAspParam param(iApplicationId, iSyncSession);
-    CAspProfile* profile = CAspProfile::NewLC(param);
-    profile->OpenL(aProfileId, CAspProfile::EOpenRead, CAspProfile::EAllProperties);
-    
-    CopyValuesL(profile);
-    
-    CleanupStack::PopAndDestroy(profile);
-    
-    FLOG( _L("CAspProfile::CreateCopyL END") );
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SaveL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SaveL()
-    {
-    //iProfile.UpdateL();  // convergence
-    
-    if (iConnectionOpen)
-    	{
-    	iConnection.UpdateL();
-    	}
-    	
-   	iProfile.UpdateL();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::Save
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::Save()
-    {
-    TRAPD(err, SaveL());
-    
-    if (err != KErrNone)
-    	{
-    	FLOG( _L("###  CAspProfile::SaveL failed (%d) ###"), err );
-    	}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetName
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetName(TDes& aText)
-	{
- 		if(!IsPCSuiteProfile(this))
- 		{
-			TUtil::StrCopy(aText, iProfile.DisplayName());
-			return;
- 		}
- 		//For PC suite profile Localise as per specifications
- 		GetLocalisedPCSuite(aText);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::NameL
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CAspProfile::NameL()
-	{
-	return iProfile.DisplayName().AllocL();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetNameL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetNameL(const TDesC& aText)
-	{
-	iProfile.SetDisplayNameL(aText);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CreatorId
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CreatorId()
-	{
-	return iProfile.CreatorId();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetCreatorId
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetCreatorId(TInt aCreatorId)
-	{
-	iProfile.SetCreatorId(aCreatorId);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::ProfileId
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::ProfileId()
-	{
-	return iProfile.Identifier();
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::DeleteAllowed
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspProfile::DeleteAllowed()
-    {
-    TBool operatorProfile = EFalse;
-    TRAPD( err, operatorProfile = IsReadOnlyOperatorProfileL() );
-
-    // Disallow deletion of operator specific profile
-    if( err == KErrNone && operatorProfile )
-        {
-        return EFalse;
-        }
-    else
-        {
-        return iProfile.DeleteAllowed();
-        }
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::IsSynced
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspProfile::IsSynced()
-    {
-    if (!iHistoryLogOpen)
-    	{
-    	return EFalse;
-    	}
-    	
-    if (iHistoryLog.Count() == 0)
-        {
-        return EFalse;
-        }
-    
-    return ETrue;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::LastSync
-//
-// -----------------------------------------------------------------------------
-//
-TTime CAspProfile::LastSync()
-    {
-    if (!iHistoryLogOpen)
-    	{
-    	return 0;
-    	}
-
-    if (iHistoryLog.Count() == 0)
-        {
-        return 0;  // profile has not been synced
-        }
-        
-    const CSyncMLHistoryJob* job = LatestHistoryJob();
-    if (!job)
-    	{
-    	return 0;
-    	}
-    
-    return job->TimeStamp();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::LastSync
-//
-// -----------------------------------------------------------------------------
-//
-TTime CAspProfile::LastSync(TInt aTaskId)
-    {
-    if (!iHistoryLogOpen)
-    	{
-    	return 0;
-    	}
-
-    if (iHistoryLog.Count() == 0)
-        {
-        return 0;  // profile has not been synced
-        }
-        
-    const CSyncMLHistoryJob* job = LatestHistoryJob(aTaskId);
-    if (!job)
-    	{
-    	return 0;
-    	}
-    
-    return job->TimeStamp();
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetServerId
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetServerId(TDes& aText)
-	{
-	TUtil::StrCopy(aText, iProfile.ServerId());  // convert TDes8 to TDes
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetGetServerIdL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetServerIdL(const TDesC& aText)
-	{
-	TUtil::StrCopy(iBuf8, aText);  // convert TDes to TDes8
-	iProfile.SetServerIdL(iBuf8);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::ProtocolVersion
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::ProtocolVersion()
-	{
-	TSmlProtocolVersion version = iProfile.ProtocolVersion();
-	if (version == ESmlVersion1_1_2)
-		{
-		return EAspProtocol_1_1;
-		}
-		
-	return EAspProtocol_1_2;
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SetProtocolVersionL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetProtocolVersionL(TInt aProtocolVersion)
-	{
-	if (aProtocolVersion == EAspProtocol_1_1)
-		{
-		iProfile.SetProtocolVersionL(ESmlVersion1_1_2);
-		}
-	else
-		{
-		iProfile.SetProtocolVersionL(ESmlVersion1_2);
-		}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::BearerType
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::BearerType()
-	{
-	if (!iConnectionOpen)
-		{
-	    return KErrNotFound;	
-		}
-
-	TInt id = iConnection.Identifier();
-   	return CAspBearerHandler::AspBearerId(id);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetBearerTypeL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetBearerTypeL(TInt aId)
-	{
-	if (!iConnectionOpen)
-		{
-		return;
-		}
-	
-	TInt newBearer = CAspBearerHandler::SmlBearerId(aId);
-    
-    if (newBearer != KErrNotFound)
-    	{
-    	TInt currentBearer = iConnection.Identifier();
-    	if (currentBearer != newBearer)
-    		{
-    		iConnection.CreateL(Profile(), newBearer);
-    		}
-    	}
-	}
-
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetBearerTypeL (convergence)
-//
-// -----------------------------------------------------------------------------
-//
-/*
-void CAspProfile::SetBearerTypeL(TInt aId)
-	{
-	TInt newBearer = CAspBearerHandler::SmlBearerId(aId);
-	if (newBearer == KErrNotFound)
-		{
-		return;  // unknown bearer
-		}
-	
-   	TInt currentBearer = KErrNotFound;
-   	if (iConnectionOpen)
-   	    {
-   		currentBearer = iConnection.Identifier();
-   	    }
-   	if (currentBearer == newBearer)
-   		{
-   		return;	// bearer has not changed
-   		}
-
-	if (iConnectionOpen)
-	    {
-		iConnection.Close();
-		iConnectionOpen = EFalse;
-	    }
-
-	DeleteConnectionsL(0);
-    			
-	TRAPD(err, iConnection.CreateL(iProfile, newBearer));
-   	if (err == KErrNone)
-    	{
-    	iConnection.UpdateL();
-        iConnection.Close();
-        iProfile.UpdateL();
-        iConnection.OpenL(iProfile, newBearer);
-        iConnectionOpen = ETrue;    		    				    
-      	}
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::DeleteConnectionsL (convergence)
-//
-// -----------------------------------------------------------------------------
-//
-/*
-void CAspProfile::DeleteConnectionsL()
-    {
-   	RArray<TSmlConnectionId> arr;
-   	Profile().ListConnectionsL(arr);
-   	CleanupClosePushL(arr);
-   	
-   	TInt count = arr.Count();
-    	
-   	for (TInt i=0; i<count; i++)
-   	    {
-   	    TInt id = arr[i];
-   	    iProfile.DeleteConnectionL(id);
-   	    iProfile.UpdateL();
-   	    }
-   	    
-   	CleanupStack::PopAndDestroy(&arr);
-    }
-*/
-
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::AccessPointL
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::AccessPointL()
-	{
-	if (!iConnectionOpen)
-		{
-    	return KErrNotFound;
-		}
-	
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return KErrNotFound; // this setting is only for internet bearer
-		}
-		
-	TBuf8<KBufSize32> key;
-	TBuf<KBufSize32> value;
-	TInt num = KErrNotFound;
-
-	GetConnectionPropertyNameL(key, EPropertyIntenetAccessPoint);
-	TUtil::StrCopy(value, iConnection.GetPropertyL(key)); // convert TDes8 to TDes
-	if (TUtil::IsEmpty(value))
-		{
-		return KErrNotFound;
-		}
-		
-	User::LeaveIfError(TUtil::StrToInt(value, num));
-	return num;
-	}
-		
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SetAccessPointL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetAccessPointL(const TInt aId)
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-    	
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-
-	TBuf<KBufSize32> buf;
-	TBuf8<KBufSize32> key;
-	TBuf8<KBufSize32> value;
-	
-	buf.Num(aId);
-	TUtil::StrCopy(value, buf);  // convwert TDes to TDes8
-	
-	GetConnectionPropertyNameL(key, EPropertyIntenetAccessPoint);
-	iConnection.SetPropertyL(key, value);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetHostAddress
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetHostAddress(TDes& aText, TInt& aPort)
-	{
-	aText = KNullDesC;
-	aPort = TURIParser::EDefaultHttpPort;
-	
-    if (!iConnectionOpen)	
-    	{
-      	return;
-    	}
-	
-	if (BearerType() != EAspBearerInternet)
-		{
-		TUtil::StrCopy(aText, iConnection.ServerURI()); // convert TDes8 to TDes
-		return;  // port number handling is for internet bearer only 
-		}
-
-	TUtil::StrCopy(iBuf, iConnection.ServerURI()); // convert TDes8 to TDes
-	
-	TURIParser parser(iBuf);
-	
-	parser.GetUriWithoutPort(aText);
-
-	aPort = parser.Port();
-	if (aPort == KErrNotFound)
-		{
-		aPort = parser.DefaultPort();
-		}
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SetHostAddressL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetHostAddressL(const TDesC& aText, const TInt aPort)
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-	
-	if (BearerType() != EAspBearerInternet)
-		{
-		TUtil::StrCopy(iBuf, aText); // port number handling is for inteernet bearer only 
-		}
-	else
-		{
-		TURIParser parser(aText); // add port number to internet host address
-	    parser.GetUriWithPort(iBuf, aPort);
-		}
-	
-	TUtil::StrCopy(iBuf8, iBuf);  // convert TDes to TDes8
-	iConnection.SetServerURIL(iBuf8);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetUserName
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetUserName(TDes& aText)
-	{
-	TUtil::StrCopy(aText, iProfile.UserName());   // convert TDes8 to TDes
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SetUserNameL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetUserNameL(const TDesC& aText)
-	{
-	TUtil::StrCopy(iBuf8, aText);  // conver TDes to TDes8
-	iProfile.SetUserNameL(iBuf8);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetPassword
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetPassword(TDes& aText)
-	{
-	TUtil::StrCopy(aText, iProfile.Password());   // convert TDes8 to TDes
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SetPasswordL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetPasswordL(const TDesC& aText)
-	{
-	TUtil::StrCopy(iBuf8, aText);    // conver TDes to TDes8
-	iProfile.SetPasswordL(iBuf8);
-	}
-
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::SASyncState
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::SASyncState()
-	{
-	TSmlServerAlertedAction state = iProfile.SanUserInteraction();
-
-	if (state == ESmlConfirmSync)
-		{
-		return ESASyncStateConfirm;
-		}
-	else if (state == ESmlDisableSync)
-		{
-		return ESASyncStateDisable;
-		}
-	else 
-		{
-		return ESASyncStateEnable;
-		}
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetSASyncStateL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetSASyncStateL(TInt aState)
-    {
-	if (aState == ESASyncStateConfirm)
-		{
-		Profile().SetSanUserInteractionL(ESmlConfirmSync);
-		}
-	else if (aState == ESASyncStateDisable)
-		{
-		Profile().SetSanUserInteractionL(ESmlDisableSync);
-		}
-	else
-		{
-		Profile().SetSanUserInteractionL(ESmlEnableSync);
-		}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetHttpUsedL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetHttpUsedL(TBool aEnable)
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-	
-	TBuf8<KBufSize32> key;
-	TBuf8<KBufSize32> value;
-	
-	if (aEnable)
-		{
-		value.Num(1); 
-		}
-	else
-		{
-		value.Num(0);
-		}
-		
-	GetConnectionPropertyNameL(key, EPropertyHttpUsed);
-	iConnection.SetPropertyL(key, value);
-	}
-	
-	
-// -----------------------------------------------------------------------------
-// CAspProfile::HttpUsedL
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspProfile::HttpUsedL()
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return EFalse;
-    	}
-	
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return EFalse; // this setting is only for internet bearer
-		}
-
-	TBuf8<KBufSize32> key; 
-	TBuf<KBufSize32> value;
-	TInt intValue;
-	
-	GetConnectionPropertyNameL(key, EPropertyHttpUsed);
-	TUtil::StrCopy(value, iConnection.GetPropertyL(key));  // convert TDes8 to TDes
-	
-    User::LeaveIfError(TUtil::StrToInt(value, intValue));
-	
-    if (intValue == 0)
-    	{
-    	return EFalse; 
-    	}
-    return ETrue;
-	}
-	
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetHttpUsernameL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetHttpUserNameL(TDes& aText)
-	{
-	aText = KNullDesC;
-	
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-	
-
-	TBuf8<KBufSize32> key; 
-	
-	GetConnectionPropertyNameL(key, EPropertyHttpUserName);
-	TUtil::StrCopy(aText, iConnection.GetPropertyL(key));  // convert TDes8 to TDes
-  	}
-	
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetHttpUsernameL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetHttpUserNameL(const TDesC& aText)
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-	
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-
-	TBuf8<KBufSize32> key;
-	
-	GetConnectionPropertyNameL(key, EPropertyHttpUserName);
-	TUtil::StrCopy(iBuf8, aText);  // convert TDes to TDes8
-	iConnection.SetPropertyL(key, iBuf8);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetHttpPasswordL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetHttpPasswordL(TDes& aText)
-	{
-   	aText = KNullDesC;
-   	
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-
-
-	TBuf8<KBufSize32> key; 
-	
-	GetConnectionPropertyNameL(key, EPropertyHttpPassword);
-	TUtil::StrCopy(aText, iConnection.GetPropertyL(key));  // convert TDes8 to TDes
-	}
-	
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetHttpPasswordL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetHttpPasswordL(const TDesC& aText)
-	{
-    if (!iConnectionOpen)	
-    	{
-    	return;
-    	}
-	
-	if (iConnection.Identifier() != KUidNSmlMediumTypeInternet.iUid)
-		{
-		return; // this setting is only for internet bearer
-		}
-    		
-	TBuf8<KBufSize32> key;
-	
-	GetConnectionPropertyNameL(key, EPropertyHttpPassword);
-	TUtil::StrCopy(iBuf8, aText);  // convert TDes to TDes8
-	iConnection.SetPropertyL(key, iBuf8);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::Profile
-//
-// -----------------------------------------------------------------------------
-//
-RSyncMLDataSyncProfile& CAspProfile::Profile()
-    {
-    return iProfile;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::LatestHistoryJob
-//
-// -----------------------------------------------------------------------------
-//
-const CSyncMLHistoryJob* CAspProfile::LatestHistoryJob()
-    {
-    if (!iHistoryLogOpen)
-    	{
-    	return NULL;
-    	}
-
-    TInt count = iHistoryLog.Count();
-    if (count == 0)
-        {
-        return NULL;  // profile has no history job
-        }
-        
-    iHistoryLog.SortEntries(CSyncMLHistoryEntry::ESortByTime);    
-    
-    // try to find latest sync job (start from last array entry)
-    for (TInt i=count-1; i>=0; i--)
-    	{
-        const CSyncMLHistoryEntry& entry = iHistoryLog[i];
-        const CSyncMLHistoryJob* jobEntry = CSyncMLHistoryJob::DynamicCast(&entry);
-        if (jobEntry)
-        	{
-        	return jobEntry;
-        	}
-    	}
-
-    return NULL;  // profile has no history job
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::LatestHistoryJob
-//
-// -----------------------------------------------------------------------------
-//
-const CSyncMLHistoryJob* CAspProfile::LatestHistoryJob(TInt aTaskId)
-    {
-    if (!iHistoryLogOpen)
-    	{
-    	return NULL;
-    	}
-
-    TInt count = iHistoryLog.Count();
-    if (count == 0)
-        {
-        return NULL;  // profile has no history job
-        }
-        
-    iHistoryLog.SortEntries(CSyncMLHistoryEntry::ESortByTime);    
-    
-    // try to find latest sync job (start from last array entry)
-    for (TInt i=count-1; i>=0; i--)
-    	{
-        const CSyncMLHistoryEntry& entry = iHistoryLog[i];
-        const CSyncMLHistoryJob* jobEntry = CSyncMLHistoryJob::DynamicCast(&entry);
-        if (jobEntry)
-        	{
-        	if (TaskExist(jobEntry, aTaskId))
-        		{
-        		return jobEntry;
-        		}
-        	}
-    	}
-
-    return NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// CAspProfile::DeleteHistory
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::DeleteHistory()
-	{
-	if (iHistoryLogOpen)
-    	{
-    	iHistoryLog.DeleteAllEntriesL();	
-    	}  
-    	
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::TaskExist
-// 
-// -----------------------------------------------------------------------------
-TBool CAspProfile::TaskExist(const CSyncMLHistoryJob* aHistoryJob, TInt aTaskId)
-	{
-	TInt taskCount = aHistoryJob->TaskCount();
-	for (TInt i=0; i<taskCount; i++)
-		{
-		const CSyncMLHistoryJob::TTaskInfo& taskInfo = aHistoryJob->TaskAt(i);
-        
-        if (taskInfo.iTaskId == aTaskId)
-        	{
-        	return ETrue;
-        	}
-		}
-		
-	return EFalse;
-	}
-
-
-
-/* 
-// -----------------------------------------------------------------------------
-// CAspProfile::HistoryJobsLC (debugging code)
-//
-// -----------------------------------------------------------------------------
-//
-HBufC* CAspProfile::HistoryJobsLC()
-    {
-   	HBufC* hBuf = HBufC::NewLC(1024);
-	TPtr ptr = hBuf->Des();
-
-    if (!iHistoryLogOpen)
-    	{
-    	return hBuf;
-    	}
-
-    TInt count = iHistoryLog.Count();
-    if (count == 0)
-        {
-        return hBuf;  // profile has no history job
-        }
-        
-    // sort array
-    iHistoryLog.SortEntries(CSyncMLHistoryEntry::ESortByTime);    
-    
-    // try to find latest sync job (start from last array entry)
-    for (TInt i=count-1; i>=0; i--)
-    //for (TInt i=0; i<count; i++)
-    	{
-        const CSyncMLHistoryEntry& entry = iHistoryLog[i];
-        const CSyncMLHistoryJob* jobEntry = CSyncMLHistoryJob::DynamicCast(&entry);
-        if (jobEntry)
-        	{
-        	TTime t = jobEntry->TimeStamp();
-        	TBuf<128> buf;
-        	TUtil::GetDateTimeTextL(buf, t);
-        	ptr.Append(buf);
-        	ptr.Append(_L("\n"));
-        	}
-    	}
-
-    return hBuf;
-    }
-*/
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::OpenHistoryLog
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::OpenHistoryLog()
-    {
-    TInt id = ProfileId();
-   	TRAPD(err, iHistoryLog.OpenL(Session(), id));
-   	if (err == KErrNone)
-   		{
-   		iHistoryLogOpen = ETrue;
-    	}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::OpenConnection
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::OpenConnection()
-    {
-   	TInt err = KErrNone;
-   	RArray<TSmlTransportId> arr;
-   	
-    TRAP(err, Profile().ListConnectionsL(arr));
-    if (err != KErrNone)
-    	{
-    	return; 
-    	}
-    if (arr.Count() == 0)
-    	{
-     	arr.Close();  
-    	return; // no connection
-    	}
-        	
-    TInt transportId = arr[0];
-    arr.Close();
-    	
-    TRAP(err, iConnection.OpenL(iProfile, transportId));
-    if (err == KErrNone)
-    	{
-    	iConnectionOpen = ETrue;
-    	}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::Session
-// 
-// -----------------------------------------------------------------------------
-//
-RSyncMLSession& CAspProfile::Session()
-	{
-	__ASSERT_DEBUG(iSyncSession, TUtil::Panic(KErrGeneral));
-	
-	return *iSyncSession;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::ApplicationId
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::ApplicationId()
-	{
-	return iApplicationId;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetConnectionPropertyNameL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetConnectionPropertyNameL(TDes8& aText, TInt aPropertyPos)
-	{
-	//
-	// at the moment RSyncMLTransport is only needed for internet connection settings
-	//
-	RSyncMLTransport transport;
-	transport.OpenL(Session(), KUidNSmlMediumTypeInternet.iUid);  // no ICP call
-	CleanupClosePushL(transport);
-	
-	const CSyncMLTransportPropertiesArray&  arr = transport.Properties();
-	
-    __ASSERT_DEBUG(arr.Count()>aPropertyPos, TUtil::Panic(KErrGeneral));
-    	
-	const TSyncMLTransportPropertyInfo& info = arr.At(aPropertyPos);
-	aText = info.iName;
-	
-	CleanupStack::PopAndDestroy(&transport);
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CopyValuesL
-//
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::CopyValuesL(CAspProfile* aSource)
-    {
-    TBuf<KBufSize255> buf;
-    TInt num = 0;
-    
-    num = aSource->ProtocolVersion();
-    SetProtocolVersionL(num);
-    if (num == EAspProtocol_1_2)
-    	{
-    	if (!IsPCSuiteProfile(aSource))
-    		{
-        	aSource->GetServerId(buf);
-        	SetServerIdL(buf);
-    		}
-    	}
-    	
-    num = aSource->BearerType();
-    SetBearerTypeL(num);
-    
-    num = aSource->AccessPointL();
-
-	//check if the access point is valid
-	TAspAccessPointItem item;
-	item.iUid = num;
-	TAspParam param(iApplicationId, iSyncSession);
-	CAspAccessPointHandler* apHandler = CAspAccessPointHandler::NewL(param);
-	CleanupStack::PushL(apHandler);
-	TInt ret = apHandler->GetInternetApInfo(item);
-	if (ret == KErrNone)
-	    {
-	    SetAccessPointL(num);
-	    }
-	else
-	    {
-	    SetAccessPointL(CAspAccessPointHandler::KDefaultConnection);
-	    }    
-    CleanupStack::PopAndDestroy(apHandler);
-	
-    aSource->GetHostAddress(buf, num);
-    SetHostAddressL(buf, num);
-     
-    aSource->GetUserName(buf);
-    SetUserNameL(buf);
-     
-    aSource->GetPassword(buf);
-    SetPasswordL(buf);
-    
-    num = aSource->SASyncState();
-    SetSASyncStateL(num);
-    
-    if (aSource->BearerType() == EAspBearerInternet)
-    	{
-    	num = aSource->HttpUsedL();
-    	SetHttpUsedL(num);
-    	
-    	aSource->GetHttpUserNameL(buf);
-    	SetHttpUserNameL(buf);
-    	
-    	aSource->GetHttpPasswordL(buf);
-    	SetHttpPasswordL(buf);
-    	}
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::SetDefaultValuesL
-// 
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::SetDefaultValuesL(CAspProfile* aProfile)
-	{
-	aProfile->SetSASyncStateL(ESASyncStateConfirm);
-	aProfile->SetHttpUsedL(EFalse);
-	aProfile->SetAccessPointL(CAspAccessPointHandler::KDefaultConnection);
-	aProfile->SetProtocolVersionL(EAspProtocol_1_2);
-    }
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetNewProfileNameL
-// 
-// -----------------------------------------------------------------------------
-//
-HBufC* CAspProfile::GetNewProfileNameLC(CAspProfileList* aList, TInt aApplicationId)
-	{
-    HBufC* hBuf = NULL;
-    
-    for (TInt i=1; i<=KMaxProfileCount; i++)
-		{
-        hBuf = CAspResHandler::GetNewProfileNameLC(i, aApplicationId);
-		if (aList->FindProfileIndex(hBuf->Des()) == KErrNotFound)
-			{
-			break;
-     		}
-     	
-     	if (i == KMaxProfileCount)
-     		{
-     		break; // too many profiles - use existing name
-     		}
-     		
-     	CleanupStack::PopAndDestroy(hBuf);
-     	hBuf = NULL;
-		}
-		
-	if (!hBuf)
-		{
-		User::Leave(KErrNotFound);
-		}
-		
-	return hBuf;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CheckMandatoryDataL
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CheckMandatoryData(CAspProfile* aProfile, TInt& aContentCount)
-	{
-	aContentCount = 0;
-	
-	TInt ret = CheckMandatoryConnData(aProfile);
-	if (ret != EMandatoryOk)
-		{
-		return ret;
-		}
-
-    ret = CheckMandatoryTaskData(aProfile, aContentCount);
-    
-    return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CheckMandatoryConnData
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CheckMandatoryConnData(CAspProfile* aProfile)
-	{
-	const TInt KMaxHostAddressLength = KAspMaxURILength + 5;
-	
-	TBuf<KMaxHostAddressLength> buf;
-	TInt num;
-
-	aProfile->GetName(buf);
-	if (TUtil::IsEmpty(buf))
-		{
-		return EMandatoryNoProfileName;
-		}
-
-	aProfile->GetHostAddress(buf, num);
-	if (TUtil::IsEmpty(buf))
-		{
-		return EMandatoryNoHostAddress;
-		}
-
-    return EMandatoryOk;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CheckMandatoryTaskDataL
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CheckMandatoryTaskDataL(CAspProfile* aProfile, TInt& aContentCount)
-	{
-    TAspParam param(aProfile->ApplicationId(), &(aProfile->Session()));
-	param.iProfile = aProfile;
-	param.iMode = CAspContentList::EInitTasks;
-	
-	CAspContentList* list = CAspContentList::NewLC(param);
-    
-    TInt ret = list->CheckMandatoryDataL(aContentCount);
-	CleanupStack::PopAndDestroy(list);
-	
-	return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CheckMandatoryTaskData
-// 
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CheckMandatoryTaskData(CAspProfile* aProfile, TInt& aContentCount)
-	{
-	TInt ret = EMandatoryNoContent;
-	
-	TRAP_IGNORE(ret = CheckMandatoryTaskDataL(aProfile, aContentCount));
-	
-	return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::OtherSyncRunning
-//
-// -----------------------------------------------------------------------------
-//
-TBool CAspProfile::OtherSyncRunning(RSyncMLSession* aSyncSession)
-	{
-	TInt currentJob = CurrentJob(aSyncSession);
-
-    if (currentJob != KErrNotFound)
-		{
-		return ETrue;
-		}
-	
-	return EFalse;
-	}
-
-
-// -----------------------------------------------------------------------------
-// CAspProfile::CurrentJob
-//
-// -----------------------------------------------------------------------------
-//
-TInt CAspProfile::CurrentJob(RSyncMLSession* aSyncSession)
-	{
-	TInt currentJob = KErrNotFound;
-	TSmlUsageType usageType = ESmlDataSync;
-	TRAP_IGNORE(aSyncSession->CurrentJobL(currentJob, usageType));
-		
-	if (currentJob >= 0)
-		{
-		return currentJob;	
-		}
-	return KErrNotFound;
-	}
-
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::IsPCSuiteProfile
-// 
-//-----------------------------------------------------------------------------
-//
-TBool CAspProfile::IsPCSuiteProfile(CAspProfile* aProfile)
-	{
-	_LIT(KPCSuite, "pc suite");
-
-	if (aProfile->DeleteAllowed())
-		{
-		return EFalse; // this is not "PC Suite" profile 
-		}
-	
-	TInt num = KErrNotFound;
-	TBuf<KBufSize64> buf;
-	aProfile->GetHostAddress(buf, num);
-	buf.LowerCase();
-	
-	if (buf.Compare(KPCSuite) == 0)
-		{
-		return ETrue;
-		}
-		
-	return EFalse;
-	}
-
-// -----------------------------------------------------------------------------
-// CAspProfile::GetLocalisedPCSuite
-//
-// Returns "PC Suite" string localised to specific language
-// 
-// Current requirement is to localise to 2 languages TaiwanChinese and ELangHongKongChinese
-// For all the rest it will be mapped to "PC suite" only
-// -----------------------------------------------------------------------------
-//
-void CAspProfile::GetLocalisedPCSuite(TDes& aText)
-{
- 		TLanguage language = User::Language();
-         
- 		switch(language)
- 		{
- 			case ELangTaiwanChinese:
-            case ELangHongKongChinese:
- 			case ELangEnglish_HongKong:
- 			case ELangPrcChinese:
- 			case ELangEnglish_Taiwan:
-			case ELangEnglish_Prc:
- 			case ELangMalay_Apac:
- 			case ELangIndon_Apac: 
-            {
-            	HBufC* hBuf = CAspResHandler::ReadLC(R_ASP_PC_SUITE_PROFILE);
-            	TUtil::StrCopy(aText,*hBuf);
-            	CleanupStack::PopAndDestroy(hBuf);
-            	return;
-            }
-            default:
-            {
-            	TUtil::StrCopy(aText, iProfile.DisplayName());
-            	return;
-            }
- 		}
-}
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::IsOperatorProfileL
-// 
-//-----------------------------------------------------------------------------
-//
-TBool CAspProfile::IsOperatorProfileL( CAspProfile* aProfile )
-    {
-    if ( !aProfile )
-        {
-        return EFalse;
-        }
-
-    TBuf<KBufSize255> serverId;
-    TBuf8<KBufSize255> serverIdUtf8;
-    TBuf8<KBufSize255> value;
-    
-    aProfile->GetServerId( serverId );
-    if ( serverId.Length() > 0 )
-        {
-        serverIdUtf8.Copy( serverId );
-    
-        CRepository* rep = CRepository::NewLC( KCRUidOperatorDatasyncInternalKeys );
-        TInt err = rep->Get( KNsmlOpDsOperatorSyncServerId, value );
-        CleanupStack::PopAndDestroy( rep );
-    
-        if ( !err && serverIdUtf8.Compare( value ) == 0 )
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::OperatorAdapterUidL
-// 
-//-----------------------------------------------------------------------------
-//
-TInt CAspProfile::OperatorAdapterUidL()
-    {
-    TInt value = 0;
-    CRepository* rep = CRepository::NewLC( KCRUidOperatorDatasyncInternalKeys );
-    rep->Get( KNsmlOpDsOperatorAdapterUid, value );
-    CleanupStack::PopAndDestroy( rep );
-    return value;
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::ProfileAdapterUidL
-// 
-//-----------------------------------------------------------------------------
-//
-TInt CAspProfile::ProfileAdapterUidL()
-    {
-    TInt value = 0;
-    CRepository* rep = CRepository::NewLC( KCRUidOperatorDatasyncInternalKeys );
-    rep->Get( KNsmlOpDsProfileAdapterUid, value );
-    CleanupStack::PopAndDestroy( rep );
-    return value;
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::ProfileVisibilityL
-// 
-//-----------------------------------------------------------------------------
-//
-TInt CAspProfile::ProfileVisibilityL()
-    {
-    TInt value = 0;
-    CRepository* rep = CRepository::NewLC( KCRUidOperatorDatasyncInternalKeys );
-    rep->Get( KNsmlOpDsSyncProfileVisibility, value );
-    CleanupStack::PopAndDestroy( rep );
-    return value;
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::IsReadOnlyOperatorProfileL
-// 
-//-----------------------------------------------------------------------------
-//
-TBool CAspProfile::IsReadOnlyOperatorProfileL()
-    {
-    return ( IsOperatorProfileL( this ) && 
-        ProfileVisibilityL() == EProfileVisibilityReadOnly );
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::IsHiddenOperatorProfileL
-// 
-//-----------------------------------------------------------------------------
-//
-TBool CAspProfile::IsHiddenOperatorProfileL()
-    {
-    return ( IsOperatorProfileL( this ) && 
-        ProfileVisibilityL() == EProfileVisibilityHidden );
-    }
-
-//-----------------------------------------------------------------------------
-// CAspProfile:::EqualsToOperatorServerIdL
-// 
-//-----------------------------------------------------------------------------
-//
-TBool CAspProfile::EqualsToOperatorServerId( const TDesC& aServerId )
-    {
-    if ( aServerId.Length() > 0 )
-        {
-        TBuf8<KBufSize255> serverIdUtf8;
-        TBuf8<KBufSize255> value;
-        serverIdUtf8.Copy( aServerId );
-
-        // Read operator specific serverId from cenrep
-        CRepository* rep = NULL;
-        TRAPD( err, rep = CRepository::NewL( KCRUidOperatorDatasyncInternalKeys ) );
-        if( err == KErrNone )
-            {
-            rep->Get( KNsmlOpDsOperatorSyncServerId, value );
-            delete rep;
-
-            if ( serverIdUtf8.Compare( value ) == 0 )
-                {
-                return ETrue;
-                }
-            }
-        }
-
-    return EFalse;
-    }
-
-/*******************************************************************************
- * class TAspTask
- *******************************************************************************/
-
-
-
-// -----------------------------------------------------------------------------
-// TAspTask::SmlSyncDirection
-//
-// -----------------------------------------------------------------------------
-//
-TSmlSyncType TAspTask::SmlSyncDirection(TInt aSyncDirection)
-	{
-	TSmlSyncType type = ESmlTwoWay;
-	
-	if (aSyncDirection == ESyncDirectionOneWayFromDevice)
-		{
-		type = ESmlOneWayFromClient;
-		}
-	if (aSyncDirection == ESyncDirectionOneWayIntoDevice)
-		{
-		type = ESmlOneWayFromServer;
-		}
-	if (aSyncDirection == ESyncDirectionRefreshFromServer)
-		{
-		type = ESmlRefreshFromServer;
-		}
-		
-	return type;
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspTask::SmlSyncDirection
-//
-// -----------------------------------------------------------------------------
-//
-TInt TAspTask::SyncDirection(TSmlSyncType aSmlSyncDirection)
-    {
-	TInt type = ESyncDirectionTwoWay;
-	
-	if (aSmlSyncDirection == ESmlOneWayFromClient)
-		{
-		type = ESyncDirectionOneWayFromDevice;
-		}
-	if (aSmlSyncDirection == ESmlOneWayFromServer)
-		{
-		type = ESyncDirectionOneWayIntoDevice;
-		}
-	if (aSmlSyncDirection == ESmlRefreshFromServer)
-		{
-		type = ESyncDirectionRefreshFromServer;
-		}
-		
-
-	return type;
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspTask::FindTaskIdL
-//
-// -----------------------------------------------------------------------------
-//
-
-TInt TAspTask::FindTaskIdL(CAspProfile* aProfile, TInt aDataProviderId, const TDesC& aLocalDatabase)
-	{
-	TInt ret = KErrNotFound;
-	
-	RArray<TSmlTaskId> arr;
-	aProfile->Profile().ListTasksL(arr); // IPC call
-	CleanupClosePushL(arr);
-	
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		TInt taskId = arr[i];
-	    RSyncMLTask task;
-    	task.OpenL(aProfile->Profile(), taskId);  // IPC call
-		
-	    if (aDataProviderId != task.DataProvider())
-	    	{
-	    	task.Close();
-	    	continue; // wrong data provider
-	    	}
-    	if (!task.Enabled())
-    		{
-    		task.Close();
-    		continue; // task not in use
-    		}
-
-	    if (TUtil::IsEmpty(aLocalDatabase))
-	    	{
-	    	ret = taskId;  // parameter aLocalDatabase is empty - no db name check
-	    	}
-	    else
-	    	{
-	    	TPtrC ptr = task.ClientDataSource();
-	        if (ptr.Compare(aLocalDatabase) == 0)
-	    	    {
-	    	    ret = taskId;
-	    	    }
-	    	}
-	
-	    task.Close();
-		
-		if (ret != KErrNotFound)
-			{
-			break;
-			}
-		}
-		
-    CleanupStack::PopAndDestroy(&arr);		
-    
-    return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspTask::CheckLocalDatabase
-// 
-// -----------------------------------------------------------------------------
-//
-TInt TAspTask::CheckLocalDatabase(CAspProfile* aProfile, TInt& aDataProviderId)
-	{
-	TBool ret = ETrue;
-	
-	TRAPD(err, ret = CheckLocalDatabaseL(aProfile, aDataProviderId));
-	if (err != KErrNone)
-		{
-		return ETrue; // check failed, ETrue means profile has local database
-		}
-		
-	return ret;
-	}
-
-
-// -----------------------------------------------------------------------------
-// TAspTask::CheckLocalDatabaseL
-//
-// -----------------------------------------------------------------------------
-//
-
-TBool TAspTask::CheckLocalDatabaseL(CAspProfile* aProfile, TInt& aDataProviderId)
-	{
-	FLOG( _L("TAspTask::CheckLocalDatabaseL START") );
-	
-	TInt ret = ETrue;
-	aDataProviderId = KErrNotFound;
-	
-	RArray<TSmlTaskId> arr;
-	aProfile->Profile().ListTasksL(arr); // IPC call
-	CleanupClosePushL(arr);
-	
-	TInt count = arr.Count();
-	for (TInt i=0; i<count; i++)
-		{
-		// open sync task
-		RSyncMLTask task;
-        TInt taskId = arr[i];
-    	TRAPD(err, task.OpenL(aProfile->Profile(), taskId));  // IPC call
-	    if (err != KErrNone)
-		    {
-		    FTRACE( RDebug::Print(_L("### RSyncMLTask::OpenL failed (id=%d, err=%d) ###"), taskId, err) );
-	        User::Leave(err);
-		    }
-		    
-		CleanupClosePushL(task);
-		    
-    	TInt dataProviderId = task.DataProvider();
-    	TBool enabled = task.Enabled();
-    	
-        if (dataProviderId != KUidNSmlAdapterEMail.iUid)
-        	{
-	    	CleanupStack::PopAndDestroy(&task);
-	    	continue;  // only email sync task is checked
-        	}
-
-	    if (!enabled)
-	    	{
-	    	CleanupStack::PopAndDestroy(&task);
-	    	continue;  // this task is not included in sync
-	    	}
-     	
-        
-        // open data provider
-       	RSyncMLDataProvider dataProvider;
-        TRAPD(err2, dataProvider.OpenL(aProfile->Session(), dataProviderId));
-   	    if (err2 != KErrNone)
-		    {
-		    FTRACE( RDebug::Print(_L("### RSyncMLDataProvider::OpenL failed (id=%xd, err=%d) ###"), dataProviderId, err2) );
-	        User::Leave(err);
-		    }
-		CleanupClosePushL(dataProvider);
-        
-        TPtrC localDatabase = task.ClientDataSource();
-        
-        if (TUtil::IsEmpty(localDatabase))
-        	{
-        	TPtrC defaultDatabase = dataProvider.DefaultDataStoreName();
-        	if (TUtil::IsEmpty(defaultDatabase))
-        		{
-        		aDataProviderId = dataProviderId;
-        		ret = EFalse;
-        		}
-        	}
-        else
-        	{
-        	CDesCArrayFlat* localDataStores= new (ELeave) CDesCArrayFlat(KDefaultArraySize);
-        	CleanupStack::PushL(localDataStores);
-        	dataProvider.GetDataStoreNamesL(*localDataStores);
-        	TInt dataStorecount = localDataStores->Count();
-        	
-        	if (dataStorecount > 0)
-        		{
-	        	TInt found = localDataStores->Find(localDatabase, count);
-        	   	if (found != 0)  // 0 means database was found
-        		    {
-        		    aDataProviderId = dataProviderId;
-        		    ret = EFalse;
-        		    }
-        		}
-        	else
-        		{
-        		aDataProviderId = dataProviderId;
-        		ret = EFalse;
-        		}
-        		
-        	CleanupStack::PopAndDestroy(localDataStores);
-        	}
-	
-	    CleanupStack::PopAndDestroy(&dataProvider);
-	    CleanupStack::PopAndDestroy(&task);
-		
-		if (!ret)
-			{
-			break;
-			}
-		}
-		
-    CleanupStack::PopAndDestroy(&arr);
-    
-    FLOG( _L("TAspTask::CheckLocalDatabaseL END") );
-    return ret;
-	}
-
-
-
-
-
-// End of file
-