deviceupdatesui/deviceupdates/src/nsmldmsyncprofilelist.cpp
author hgs
Fri, 19 Mar 2010 04:28:07 +0530
changeset 33 7464c1e21dae
child 36 9eefb50e711a
permissions -rw-r--r--
201008_internal
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     1
/*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     2
* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     3
* All rights reserved.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     8
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
     9
* Initial Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    11
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    12
* Contributors:
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    13
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    14
* Description:  Methods for CNSmlDMSyncProfile
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    15
*
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    16
*/
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    17
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    18
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    19
#include <SyncMLTransportProperties.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    20
#include <centralrepository.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    21
#include <featmgr.h>
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    22
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    23
#include "NSmlDMSyncPrivateCRKeys.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    24
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    25
#include "NSmlDMSyncProfileList.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    26
#include "NSmlDMSyncProfile.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    27
#include "NSmlDMSyncDebug.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    28
#include "NSmlDMSyncAppEngine.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    29
#include "NSmlDMSyncUtil.h"
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    30
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    31
// ============================ MEMBER FUNCTIONS ==============================
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    32
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    33
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    34
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    35
// CNSmlDMSyncProfileList::NewL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    36
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    37
// Two-phased constructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    38
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    39
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    40
CNSmlDMSyncProfileList* CNSmlDMSyncProfileList::NewL( 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    41
                                                CNSmlDMSyncAppEngine* aEngine )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    42
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    43
    FLOG( "[OMADM] CNSmlDMSyncProfileList::NewL:");
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    44
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    45
    CNSmlDMSyncProfileList* self = 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    46
                                new(ELeave) CNSmlDMSyncProfileList( aEngine );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    47
	CleanupStack::PushL(self);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    48
	self->ConstructL();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    49
	CleanupStack::Pop( self );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    50
	return self;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    51
    }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    52
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    53
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    54
// Destructor.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    55
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    56
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    57
CNSmlDMSyncProfileList::~CNSmlDMSyncProfileList()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    58
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    59
    FLOG( "[OMADM] CNSmlDMSyncProfileList::~CNSmlDMSyncProfileList():" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    60
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    61
	iList.Close();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    62
    }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    63
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    64
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    65
// CNSmlDMSyncProfileList::ConstructL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    66
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    67
// Symbian 2nd phase constructor can leave.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    68
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    69
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    70
void CNSmlDMSyncProfileList::ConstructL(void)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    71
    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    72
    FLOG( "[OMADM] CNSmlDMSyncProfileList::ConstructL:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    73
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    74
    }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    75
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    76
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    77
// CNSmlDMSyncProfileList::CNSmlDMSyncProfileList.
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    78
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    79
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    80
CNSmlDMSyncProfileList::CNSmlDMSyncProfileList( CNSmlDMSyncAppEngine* aEngine )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    81
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    82
	FLOG( "[OMADM] CNSmlDMSyncProfileList::CNSmlDMSyncProfileList:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    83
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    84
	iEngine = aEngine;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    85
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    86
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    87
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    88
// CNSmlDMSyncProfileList::Count
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    89
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    90
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    91
TInt CNSmlDMSyncProfileList::Count()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    92
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    93
	return iList.Count();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    94
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    95
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    96
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    97
// CNSmlDMSyncProfileList::Item
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    98
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
    99
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   100
TNSmlDMSyncProfileItem CNSmlDMSyncProfileList::Item(TInt aIndex)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   101
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   102
	if ( ( aIndex < 0 ) || ( aIndex >= Count() ) )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   103
	    {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   104
		TUtil::Panic(KErrGeneral);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   105
	    }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   106
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   107
	return iList[aIndex];
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   108
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   109
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   110
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   111
// CNSmlDMSyncProfileList::FindProfile
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   112
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   113
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   114
TInt CNSmlDMSyncProfileList::FindProfile(const TDesC& aProfileName)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   115
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   116
	FLOG( "[OMADM] CNSmlDMSyncProfileList::FindProfile:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   117
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   118
	for ( TInt index = 0; index < Count(); index++ )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   119
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   120
		TPtrC ptr = Item(index).Name();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   121
		if ( ptr.Compare( aProfileName ) == 0 )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   122
			{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   123
			return index;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   124
			}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   125
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   126
	return KErrNotFound;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   127
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   128
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   129
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   130
// ReplaceProfileItemL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   131
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   132
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   133
void CNSmlDMSyncProfileList::ReplaceProfileItemL( 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   134
                                        TNSmlDMSyncProfileItem& aProfileItem )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   135
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   136
	// remove old profile with same id
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   137
	Remove( aProfileItem.iProfileId );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   138
	// add new profile 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   139
    User::LeaveIfError( iList.Append(aProfileItem) );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   140
    Sort();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   141
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   142
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   143
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   144
// CNSmlDMSyncProfileList::ReadProfileItemL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   145
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   146
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   147
void CNSmlDMSyncProfileList::ReadProfileItemL( TInt aIndex )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   148
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   149
	FLOG("[OMADM] CNSmlDMSyncProfileList::ReadProfileItemL:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   150
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   151
    CNSmlDMSyncProfile* profile = iEngine->OpenProfileL( aIndex, ESmlOpenRead );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   152
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   153
	TNSmlDMSyncProfileItem item = ReadProfileItemL( profile );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   154
	item.iMandatoryCheck = CheckMandatoryDataL( profile );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   155
	ReplaceProfileItemL( item );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   156
	iEngine->CloseProfile();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   157
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   158
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   159
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   160
// CNSmlDMSyncProfileList::ReadProfileItemsL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   161
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   162
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   163
void CNSmlDMSyncProfileList::ReadProfileItemsL()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   164
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   165
	ReadProfileItemsL( EFalse );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   166
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   167
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   168
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   169
// CNSmlDMSyncProfileList::ReadProfileItemsL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   170
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   171
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   172
void CNSmlDMSyncProfileList::ReadProfileItemsL( TBool aIncludeHidden )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   173
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   174
	FLOG( "[OMADM] CNSmlDMSyncProfileList::ReadProfileItemsL:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   175
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   176
	RArray<TSmlProfileId> arr;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   177
    iEngine->Session()->ListProfilesL( arr, ESmlDevMan );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   178
   	CleanupClosePushL(arr);
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   179
    TNSmlDMSyncProfileItem item;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   180
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   181
    TBool fotaSupported = FeatureManager::FeatureSupported( KFeatureIdSyncMlDmFota );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   182
    TBuf<KBufSize256> fotaProfileId;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   183
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   184
    if ( fotaSupported && !aIncludeHidden )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   185
    	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   186
        CRepository* centrep = CRepository::NewL( KCRUidNSmlDMSyncApp );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   187
        if ( centrep->Get( KNSmlDMFotaHiddenProfileIdKey, fotaProfileId ) != KErrNone )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   188
            {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   189
            fotaProfileId.Zero();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   190
            }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   191
        FTRACE( FPrint(
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   192
            _L("[OMADM] CNSmlDMSyncProfileList::ReadProfileItemsL() hidden FOTA profile id = \"%S\""),
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   193
            &fotaProfileId ) );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   194
        delete centrep;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   195
    	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   196
    
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   197
	for ( TInt index = 0; index < arr.Count(); index++ )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   198
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   199
	    TRAPD( error, iEngine->OpenProfileL( arr[index], ESmlOpenRead ) );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   200
	    if ( error == KErrNone )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   201
	        {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   202
	        TRAPD( retVal, item = ReadProfileItemL( iEngine->Profile() ) );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   203
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   204
            TBuf<KBufSize256> profileId;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   205
            iEngine->Profile()->GetServerId( profileId );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   206
            if ( (retVal == KErrNone)
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   207
                && ( fotaProfileId.Compare(profileId) != 0 ) )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   208
                {
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   209
                iList.Append( item );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   210
                }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   211
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   212
            iEngine->CloseProfile();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   213
	        }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   214
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   215
    CleanupStack::PopAndDestroy( &arr );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   216
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   217
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   218
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   219
// CNSmlDMSyncProfileList::ReadProfileItemL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   220
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   221
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   222
TNSmlDMSyncProfileItem CNSmlDMSyncProfileList::ReadProfileItemL( 
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   223
                                                CNSmlDMSyncProfile* aProfile )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   224
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   225
	FLOG( "[OMADM] CNSmlDMSyncProfileList::ReadProfileItemL:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   226
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   227
	TNSmlDMSyncProfileItem item;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   228
	item.iApplicationId = aProfile->CreatorId();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   229
	TBuf<KBufSize> buf;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   230
	aProfile->GetName( buf );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   231
	item.SetName( buf );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   232
	item.SetId( aProfile->ProfileId() );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   233
	item.iSynced    = aProfile->IsSynced();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   234
	item.iLastSync  = aProfile->LastSync();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   235
	item.iLastSuccessSync = aProfile->LastSuccessSync();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   236
	item.iBearer    = aProfile->BearerType();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   237
    item.iActive    = EFalse;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   238
    if ( aProfile->SASyncState() != ESASyncStateDisable )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   239
    	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   240
    	item.iActive = ETrue;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   241
    	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   242
	item.iDeleteAllowed = aProfile->DeleteAllowed();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   243
	item.iProfileLocked = aProfile->ProfileLocked();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   244
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   245
	// check whether all mandatory data exist
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   246
	item.iMandatoryCheck = CheckMandatoryDataL( aProfile );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   247
	return item;	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   248
    }
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   249
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   250
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   251
// CNSmlDMSyncProfileList::Reset
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   252
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   253
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   254
void CNSmlDMSyncProfileList::Reset()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   255
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   256
	FLOG( "[OMADM] CNSmlDMSyncProfileList::Reset:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   257
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   258
	iList.Reset();
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   259
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   260
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   261
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   262
// CNSmlDMSyncProfileList::Remove
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   263
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   264
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   265
void CNSmlDMSyncProfileList::Remove( TInt aProfileId )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   266
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   267
	FLOG( "[OMADM] CNSmlDMSyncProfileList::Remove:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   268
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   269
	for ( TInt index = 0; index < Count(); index++ )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   270
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   271
		TNSmlDMSyncProfileItem item = iList[index];
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   272
		if ( item.iProfileId == aProfileId )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   273
			{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   274
			iList.Remove( index );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   275
			return;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   276
			}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   277
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   278
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   279
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   280
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   281
// CNSmlDMSyncProfileList::CheckMandatoryDataL
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   282
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   283
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   284
TInt CNSmlDMSyncProfileList::CheckMandatoryDataL( CNSmlDMSyncProfile* aProfile )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   285
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   286
	FLOG( "[OMADM] CNSmlDMSyncProfileList::CheckMandatoryDataL:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   287
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   288
	TBuf<KBufSize> buf;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   289
	TInt num;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   290
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   291
	aProfile->GetName( buf );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   292
	if ( TUtil::IsEmpty( buf ) )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   293
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   294
		return EMandatoryNoProfileName;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   295
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   296
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   297
	aProfile->GetHostAddress( buf, num );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   298
	if ( TUtil::IsEmpty( buf ) )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   299
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   300
		return EMandatoryNoHostAddress;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   301
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   302
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   303
    return EMandatoryOk;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   304
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   305
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   306
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   307
// CNSmlDMSyncProfileList::IsEmpty
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   308
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   309
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   310
TBool CNSmlDMSyncProfileList::IsEmpty( const TDesC& aText )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   311
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   312
	FLOG( "[OMADM] CNSmlDMSyncProfileList::IsEmpty:" );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   313
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   314
	for ( TInt index = 0; index < aText.Length(); index++ )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   315
		{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   316
		TChar character = aText[index];
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   317
		if ( !character.IsSpace() )
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   318
			{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   319
			return EFalse;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   320
			}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   321
		}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   322
	return ETrue;
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   323
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   324
	
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   325
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   326
// Sort
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   327
// -----------------------------------------------------------------------------
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   328
//
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   329
void CNSmlDMSyncProfileList::Sort()
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   330
	{
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   331
	iList.Sort( TLinearOrder<TNSmlDMSyncProfileItem>(
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   332
	                                    TNSmlDMSyncProfileItem::CompareItem) );
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   333
	}
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   334
7464c1e21dae 201008_internal
hgs
parents:
diff changeset
   335
// End of File