omadmadapters/syncmlds/inc/NSmlDSSettingsAdapter.h
author hgs
Tue, 13 Jul 2010 03:48:30 +0530
changeset 45 0f9fc722d255
parent 44 deviceupdatesui/omadmadapters/syncmlds/inc/NSmlDSSettingsAdapter.h@137912d1a556
permissions -rw-r--r--
201021_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
44
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:    Device Management DS Settings adapter header file
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#ifndef __NSMLDSSETTINGSADAPTER_H__
hgs
parents:
diff changeset
    22
#define __NSMLDSSETTINGSADAPTER_H__
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// INCLUDES
hgs
parents:
diff changeset
    25
#include <smldmadapter.h>   //adapter interface
hgs
parents:
diff changeset
    26
#include <SyncMLClientDS.h> //DS Client API
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
// CONSTANTS
hgs
parents:
diff changeset
    29
const TInt KNSmlDSGranularity = 4;
hgs
parents:
diff changeset
    30
const TUint8 KNSmlDMColon = ':';
hgs
parents:
diff changeset
    31
const TUint8 KNSmlDMUriSeparator = '/';
hgs
parents:
diff changeset
    32
hgs
parents:
diff changeset
    33
//DDF accepted DS-fieldnames for DS-profile
hgs
parents:
diff changeset
    34
_LIT8( KNSmlDdfRoot,            "SyncML");
hgs
parents:
diff changeset
    35
_LIT8( KNSmlDdfAddr,				"Addr" );
hgs
parents:
diff changeset
    36
_LIT8( KNSmlDdfAddrType,			"AddrType" );
hgs
parents:
diff changeset
    37
_LIT8( KNSmlDdfPortNbr,			"PortNbr" );
hgs
parents:
diff changeset
    38
_LIT8( KNSmlDdfName,				"Name" );
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
_LIT8( KNSmlDdfDB,				"DB" );
hgs
parents:
diff changeset
    41
_LIT8( KNSmlDdfCTType,			"CTType" );
hgs
parents:
diff changeset
    42
_LIT( KNSmlDdfCTVer,			"CTVer" );
hgs
parents:
diff changeset
    43
_LIT8( KNSmlDdfCTVerL,			"CTVerL" );
hgs
parents:
diff changeset
    44
hgs
parents:
diff changeset
    45
_LIT8( KNSmlDdfRDBURI,			"RDBURI" );
hgs
parents:
diff changeset
    46
_LIT8( KNSmlDdfLDBURI,			"LDBURI" );
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
_LIT8( KNSmlDdfClientUserName,	"ClientUserName" );
hgs
parents:
diff changeset
    49
_LIT8( KNSmlDdfClientPW,			"ClientPW" );
hgs
parents:
diff changeset
    50
_LIT( KNSmlDdfClientNonce,		"ClientNonce" );
hgs
parents:
diff changeset
    51
_LIT8( KNSmlDdfServerId,			"ServerId" );
hgs
parents:
diff changeset
    52
_LIT8( KNSmlDdfHidden,			"Hidden" );
hgs
parents:
diff changeset
    53
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
_LIT( KNSmlADdfAdapterId,		"AdapterId" );
hgs
parents:
diff changeset
    56
hgs
parents:
diff changeset
    57
_LIT8( KNSmlDdfToNAPID,			"ToNapID" );
hgs
parents:
diff changeset
    58
_LIT( KNSmlDdfAdapterType,		"/DB/" );
hgs
parents:
diff changeset
    59
hgs
parents:
diff changeset
    60
//DDF DS-field descriptions
hgs
parents:
diff changeset
    61
_LIT8( KNSmlDdfRootDescription,     "DS-Settings DDF description");
hgs
parents:
diff changeset
    62
_LIT8( KNSmlDdfAddrDescription,	    "DS server address" );
hgs
parents:
diff changeset
    63
_LIT8( KNSmlDdfAddrTypeDescription,	"Type of used DS server address" );
hgs
parents:
diff changeset
    64
_LIT8( KNSmlDdfPortNbrDescription,	"DS Server port number" );
hgs
parents:
diff changeset
    65
_LIT8( KNSmlDdfNameDescription,		"Displayable name for the management account" );
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
_LIT8( KNSmlDdfDBDescription,		"DB node is parent to all Database objects" );
hgs
parents:
diff changeset
    68
_LIT( KNSmlDdfCTDescription,		"CT node is parent to all Content objects" );
hgs
parents:
diff changeset
    69
_LIT8( KNSmlDdfCTTypeDescription,	"CTType define supported media content of database" );
hgs
parents:
diff changeset
    70
_LIT( KNSmlDdfCTVerDescription,		"CTVer node is a parent to all Content Version objects" );
hgs
parents:
diff changeset
    71
_LIT( KNSmlDdfCTVerLDescription,	"CTVerL define version of supported contenttype" );
hgs
parents:
diff changeset
    72
hgs
parents:
diff changeset
    73
_LIT8( KNSmlDdfRDBURIDescription,	"The relative or absolute URI of remote database" );
hgs
parents:
diff changeset
    74
_LIT8( KNSmlDdfLDBURIDescription,	"The relative or absolute URI of local database" );
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
_LIT8( KNSmlDdfClientUserNameDescription,	"DS username" );
hgs
parents:
diff changeset
    77
_LIT8( KNSmlDdfServerIdDescription,     	"Server identifier" );
hgs
parents:
diff changeset
    78
_LIT8( KNSmlDdfClientPWDescription,			"A password or secret to authenticate to the server" );
hgs
parents:
diff changeset
    79
_LIT8( KNSmlDdfToNAPIDDescription,			"Logical reference to connectivity information" );
hgs
parents:
diff changeset
    80
_LIT8( KNSmlDdfHiddenDescription,			"Hidden profile (not shown on UI)" );
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
_LIT8( KNSmlBufExe,				"BufExe" );
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
//Default data values
hgs
parents:
diff changeset
    85
_LIT( KNSmlDefName,				"DSAdapterIns" );
hgs
parents:
diff changeset
    86
_LIT8( KNSmlDefDSAcc,			"DSAcc" );
hgs
parents:
diff changeset
    87
_LIT8( KNSmlDSStart,			"SyncML/DSAcc/DSId" );
hgs
parents:
diff changeset
    88
_LIT( KNSmlDSStartDB,			"/DB/" );
hgs
parents:
diff changeset
    89
_LIT( KNSmlDefDSIAP,			"AP" );
hgs
parents:
diff changeset
    90
_LIT8( KNSmlIAPId,			    "NSmlIapId" );
hgs
parents:
diff changeset
    91
_LIT8( KSegmDSAcc2,              "CTType/RDBURI/LDBURI" );
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
_LIT8( KNSmlDSSettingsHTTP,  "http://" );
hgs
parents:
diff changeset
    94
_LIT8( KNSmlDSSettingsHTTPS, "https://" );
hgs
parents:
diff changeset
    95
const TInt KNSmlDSSettingsHTTPPort = 80;
hgs
parents:
diff changeset
    96
const TInt KNSmlDSSettingsHTTPSPort = 443;
hgs
parents:
diff changeset
    97
_LIT8( KNSmlDSUriDotSlash, "./");
hgs
parents:
diff changeset
    98
_LIT8( KNSmlDSSlash, "/");
hgs
parents:
diff changeset
    99
_LIT8(KVersion, "1.1");
hgs
parents:
diff changeset
   100
_LIT8( KMimeType, "text/plain" );
hgs
parents:
diff changeset
   101
_LIT8( KDSSettingsTitle, "DS-settings title" );
hgs
parents:
diff changeset
   102
hgs
parents:
diff changeset
   103
_LIT8( KDBUri1, "SyncML/DSAcc/*/DB/*" );
hgs
parents:
diff changeset
   104
_LIT8( KDSAccMatch, "SyncML/DSAcc/*" );
hgs
parents:
diff changeset
   105
_LIT8( KDSAccMatch2, "SyncML/DSAcc/*/*" );
hgs
parents:
diff changeset
   106
_LIT8( KDSDBMatch, "SyncML/DSAcc/*/DB/*" );
hgs
parents:
diff changeset
   107
_LIT8( KDSDBMatch2, "SyncML/DSAcc/*/DB" );
hgs
parents:
diff changeset
   108
_LIT8( KSegmDSAcc,"Addr/AddrType/PortNbr/Name/DB/ClientUserName/ClientPW/ToNapID/ServerId" );
hgs
parents:
diff changeset
   109
_LIT8( KDSDBAddMatch, "*DSAcc/*/DB/*" );
hgs
parents:
diff changeset
   110
_LIT8( KDSDBAddMatch2, "*DSAcc/*/DB/*/*" );
hgs
parents:
diff changeset
   111
_LIT8( KDSDBAddMatch3, "*DSAcc/*/DB" );
hgs
parents:
diff changeset
   112
hgs
parents:
diff changeset
   113
_LIT8( KCTTypeMatch, "*/CTType*" );
hgs
parents:
diff changeset
   114
_LIT8( KRDBUriMatch, "*/RDBURI*" );
hgs
parents:
diff changeset
   115
_LIT8( KLDBUriMatch, "*/LDBURI*" );
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
_LIT8( KDummyTxt, "/Dummy" );
hgs
parents:
diff changeset
   118
_LIT8( KFormat, "%d" );
hgs
parents:
diff changeset
   119
_LIT8( KDSAcc1, "SyncML/DSAcc" );
hgs
parents:
diff changeset
   120
_LIT8( Kprev,"CTId" );
hgs
parents:
diff changeset
   121
_LIT8( Kprev2, "/CTId" );
hgs
parents:
diff changeset
   122
_LIT8( KDSprev,"DSId" );
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
hgs
parents:
diff changeset
   125
// DATA TYPES
hgs
parents:
diff changeset
   126
enum TNSmlDSFieldType
hgs
parents:
diff changeset
   127
	{
hgs
parents:
diff changeset
   128
	EStr,
hgs
parents:
diff changeset
   129
	EInt,
hgs
parents:
diff changeset
   130
	EParam,
hgs
parents:
diff changeset
   131
	EWrong
hgs
parents:
diff changeset
   132
	};
hgs
parents:
diff changeset
   133
hgs
parents:
diff changeset
   134
enum TNSmlDSLeafType
hgs
parents:
diff changeset
   135
	{
hgs
parents:
diff changeset
   136
	EDSDelete,
hgs
parents:
diff changeset
   137
	EDSUnset
hgs
parents:
diff changeset
   138
	};
hgs
parents:
diff changeset
   139
hgs
parents:
diff changeset
   140
enum TNSmlDSProfileDataID
hgs
parents:
diff changeset
   141
	{
hgs
parents:
diff changeset
   142
	EProfileName,
hgs
parents:
diff changeset
   143
	EProfileIAPId,
hgs
parents:
diff changeset
   144
	EProfileMediumType,
hgs
parents:
diff changeset
   145
	EProfileSyncServerUsername,
hgs
parents:
diff changeset
   146
	EProfileSyncServerPassword,
hgs
parents:
diff changeset
   147
	EProfileURL,
hgs
parents:
diff changeset
   148
	EProfilePort,
hgs
parents:
diff changeset
   149
	EProfileServerId,
hgs
parents:
diff changeset
   150
	EHiddenProfile,
hgs
parents:
diff changeset
   151
	ESyncAccepted
hgs
parents:
diff changeset
   152
	};
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
enum TNSmlDSMediumType
hgs
parents:
diff changeset
   155
	{
hgs
parents:
diff changeset
   156
	ENone,
hgs
parents:
diff changeset
   157
    EHttp,
hgs
parents:
diff changeset
   158
	EWsp,
hgs
parents:
diff changeset
   159
    EObex
hgs
parents:
diff changeset
   160
	};
hgs
parents:
diff changeset
   161
	
hgs
parents:
diff changeset
   162
struct TNSmlDSAddElement
hgs
parents:
diff changeset
   163
	{
hgs
parents:
diff changeset
   164
	HBufC8  *iUri;
hgs
parents:
diff changeset
   165
	HBufC8 *iData;
hgs
parents:
diff changeset
   166
	TInt iStatusRef;
hgs
parents:
diff changeset
   167
	TBool iLeaf;
hgs
parents:
diff changeset
   168
	TBool iDone;
hgs
parents:
diff changeset
   169
	};
hgs
parents:
diff changeset
   170
hgs
parents:
diff changeset
   171
struct TNSmlDSBufferElement
hgs
parents:
diff changeset
   172
	{
hgs
parents:
diff changeset
   173
	CArrayFixFlat<TNSmlDSAddElement> *iNodeBuf;
hgs
parents:
diff changeset
   174
	HBufC8* iMappingName;
hgs
parents:
diff changeset
   175
	HBufC8* iName;
hgs
parents:
diff changeset
   176
	TBool iExecuted;
hgs
parents:
diff changeset
   177
	TInt  iLuid;
hgs
parents:
diff changeset
   178
	};
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
// FORWARD DECLARATIONS
hgs
parents:
diff changeset
   181
class CNSmlDSSettingsAdapter;
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
/**
hgs
parents:
diff changeset
   184
*  CNSmlDSSettingsAdapter class 
hgs
parents:
diff changeset
   185
*  Contains the whole implementation of the Device Management DS settings adapter.
hgs
parents:
diff changeset
   186
*
hgs
parents:
diff changeset
   187
*  @lib nsmldssettingsadapter.dll
hgs
parents:
diff changeset
   188
*/
hgs
parents:
diff changeset
   189
class CNSmlDSSettingsAdapter : public CSmlDmAdapter
hgs
parents:
diff changeset
   190
	{
hgs
parents:
diff changeset
   191
    public: // Constructors and destructor
hgs
parents:
diff changeset
   192
	    /**
hgs
parents:
diff changeset
   193
        * Two-phased constructor.
hgs
parents:
diff changeset
   194
        */
hgs
parents:
diff changeset
   195
        static CNSmlDSSettingsAdapter* NewL(MSmlDmCallback* aDmCallback );
hgs
parents:
diff changeset
   196
	    static CNSmlDSSettingsAdapter* NewLC(MSmlDmCallback* aDmCallback );
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
	    void ConstructL();
hgs
parents:
diff changeset
   199
    
hgs
parents:
diff changeset
   200
        /**
hgs
parents:
diff changeset
   201
        * Destructor.
hgs
parents:
diff changeset
   202
        */
hgs
parents:
diff changeset
   203
	    virtual ~CNSmlDSSettingsAdapter();
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    public: // Functions from base classes
hgs
parents:
diff changeset
   206
        
hgs
parents:
diff changeset
   207
        /**
hgs
parents:
diff changeset
   208
        * From      CSmlDmAdapter   DDFVersionL returns current version of the DDF.
hgs
parents:
diff changeset
   209
        * @since    Series60_3.0
hgs
parents:
diff changeset
   210
        * @param    aVersion        DDF version of the adapter.
hgs
parents:
diff changeset
   211
        * @return   none
hgs
parents:
diff changeset
   212
        */
hgs
parents:
diff changeset
   213
	    void DDFVersionL( CBufBase& aVersion );
hgs
parents:
diff changeset
   214
hgs
parents:
diff changeset
   215
        /**
hgs
parents:
diff changeset
   216
        * From      CSmlDmAdapter   DDFStructureL for filling the DDF structure of the adapter.
hgs
parents:
diff changeset
   217
        * @since    Series60_3.0
hgs
parents:
diff changeset
   218
        * @param    aDDF            Reference to root object.
hgs
parents:
diff changeset
   219
        * @return   none
hgs
parents:
diff changeset
   220
        */
hgs
parents:
diff changeset
   221
	    void DDFStructureL( MSmlDmDDFObject& aDDF );
hgs
parents:
diff changeset
   222
hgs
parents:
diff changeset
   223
        /**
hgs
parents:
diff changeset
   224
        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
hgs
parents:
diff changeset
   225
        *                           data in existing leaf objects.
hgs
parents:
diff changeset
   226
        * @since    Series60_3.0
hgs
parents:
diff changeset
   227
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   228
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   229
        * @param    aObject         Data of the object
hgs
parents:
diff changeset
   230
        * @param    aType           MIME type of the object
hgs
parents:
diff changeset
   231
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   232
        * @return   none
hgs
parents:
diff changeset
   233
        */
hgs
parents:
diff changeset
   234
	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   235
                                const TDesC8& aObject, const TDesC8& aType, 
hgs
parents:
diff changeset
   236
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   237
        
hgs
parents:
diff changeset
   238
        /**
hgs
parents:
diff changeset
   239
        * From      CSmlDmAdapter   DeleteObjectL deletes an object and its child objects.
hgs
parents:
diff changeset
   240
        * @since    Series60_3.0
hgs
parents:
diff changeset
   241
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   242
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   243
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   244
        * @return   none
hgs
parents:
diff changeset
   245
        */
hgs
parents:
diff changeset
   246
	    void DeleteObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   247
                            const TInt aStatusRef ); 
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
        /**
hgs
parents:
diff changeset
   250
        * From      CSmlDmAdapter   FetchLeafObjectL fetches data of a leaf object.
hgs
parents:
diff changeset
   251
        * @since    Series60_3.0
hgs
parents:
diff changeset
   252
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   253
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   254
        * @param    aType           MIME type of the object
hgs
parents:
diff changeset
   255
        * @param    aResultsRef    	Reference to correct results
hgs
parents:
diff changeset
   256
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   257
        * @return   none
hgs
parents:
diff changeset
   258
        */
hgs
parents:
diff changeset
   259
	    void FetchLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   260
                                const TDesC8& aType, const TInt aResultsRef, 
hgs
parents:
diff changeset
   261
                                const TInt aStatusRef ); 
hgs
parents:
diff changeset
   262
        
hgs
parents:
diff changeset
   263
        /**
hgs
parents:
diff changeset
   264
        * From      CSmlDmAdapter   ChildURIListL fetches URI list.
hgs
parents:
diff changeset
   265
        * @since    Series60_3.0
hgs
parents:
diff changeset
   266
        * @param    aURI                    URI of the object
hgs
parents:
diff changeset
   267
        * @param    aLUID                   LUID of the object
hgs
parents:
diff changeset
   268
        * @param    aPreviousURISegmentList URI list with mapping LUID information
hgs
parents:
diff changeset
   269
        * @param    aResultsRef    	        Reference to correct results
hgs
parents:
diff changeset
   270
        * @param    aStatusRef              Reference to correct command
hgs
parents:
diff changeset
   271
        * @return   none
hgs
parents:
diff changeset
   272
        */
hgs
parents:
diff changeset
   273
	    void ChildURIListL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   274
                            const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList, 
hgs
parents:
diff changeset
   275
                            const TInt aResultsRef, const TInt aStatusRef );  
hgs
parents:
diff changeset
   276
hgs
parents:
diff changeset
   277
        /**
hgs
parents:
diff changeset
   278
        * From      CSmlDmAdapter   AddNodeObjectL adds node object.
hgs
parents:
diff changeset
   279
        * @since    Series60_3.0
hgs
parents:
diff changeset
   280
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   281
        * @param    aParentLUID     LUID of the parent object
hgs
parents:
diff changeset
   282
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   283
        * @return   none
hgs
parents:
diff changeset
   284
        */
hgs
parents:
diff changeset
   285
	    void AddNodeObjectL( const TDesC8& aURI, const TDesC8& aParentLUID, 
hgs
parents:
diff changeset
   286
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
        /**
hgs
parents:
diff changeset
   289
        * From      CSmlDmAdapter   UpdateLeafObjectL creates new leaf objects, or replaces 
hgs
parents:
diff changeset
   290
        *                           data in existing leaf objects.
hgs
parents:
diff changeset
   291
        * @since    Series60_3.0
hgs
parents:
diff changeset
   292
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   293
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   294
        * @param    aStream         Data of the object
hgs
parents:
diff changeset
   295
        * @param    aType           MIME type of the object
hgs
parents:
diff changeset
   296
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   297
        * @return   none
hgs
parents:
diff changeset
   298
        */
hgs
parents:
diff changeset
   299
	    void UpdateLeafObjectL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   300
                                RWriteStream*& aStream, const TDesC8& aType, 
hgs
parents:
diff changeset
   301
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   302
hgs
parents:
diff changeset
   303
        /**
hgs
parents:
diff changeset
   304
        * From      CSmlDmAdapter   FetchLeafObjectSizeL fetches the size of a leaf object.
hgs
parents:
diff changeset
   305
        * @since    Series60_3.0
hgs
parents:
diff changeset
   306
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   307
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   308
        * @param    aType           MIME type of the object
hgs
parents:
diff changeset
   309
        * @param    aResultsRef    	Reference to correct results
hgs
parents:
diff changeset
   310
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   311
        * @return   none
hgs
parents:
diff changeset
   312
        */
hgs
parents:
diff changeset
   313
	    void FetchLeafObjectSizeL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   314
                                    const TDesC8& aType, const TInt aResultsRef, 
hgs
parents:
diff changeset
   315
                                    const TInt aStatusRef );
hgs
parents:
diff changeset
   316
        
hgs
parents:
diff changeset
   317
        /**
hgs
parents:
diff changeset
   318
        * From      CSmlDmAdapter   The function implements execute command.
hgs
parents:
diff changeset
   319
        * @since    Series60_3.0
hgs
parents:
diff changeset
   320
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   321
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   322
        * @param    aArgument       Argument for the command
hgs
parents:
diff changeset
   323
        * @param    aType       	MIME type of the object
hgs
parents:
diff changeset
   324
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   325
        * @return   none
hgs
parents:
diff changeset
   326
        */
hgs
parents:
diff changeset
   327
	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   328
                                const TDesC8& aArgument, const TDesC8& aType, 
hgs
parents:
diff changeset
   329
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   330
hgs
parents:
diff changeset
   331
        /**
hgs
parents:
diff changeset
   332
        * From      CSmlDmAdapter   The function implements execute command.
hgs
parents:
diff changeset
   333
        * @since    Series60_3.0
hgs
parents:
diff changeset
   334
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   335
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   336
        * @param    aStream         Argument for the command
hgs
parents:
diff changeset
   337
        * @param    aType       	MIME type of the object
hgs
parents:
diff changeset
   338
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   339
        * @return   none
hgs
parents:
diff changeset
   340
        */
hgs
parents:
diff changeset
   341
	    void ExecuteCommandL( const TDesC8& aURI, const TDesC8& aLUID, 
hgs
parents:
diff changeset
   342
                                RWriteStream*& aStream, const TDesC8& aType, 
hgs
parents:
diff changeset
   343
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   344
hgs
parents:
diff changeset
   345
         /**
hgs
parents:
diff changeset
   346
        * From      CSmlDmAdapter   The function implements execute command.
hgs
parents:
diff changeset
   347
        * @since    Series60_3.0
hgs
parents:
diff changeset
   348
        * @param    aTargetURI      Target URI for the command
hgs
parents:
diff changeset
   349
        * @param    aTargetLUID     LUID of the target object
hgs
parents:
diff changeset
   350
        * @param    aSourceURI      Source URI for the command
hgs
parents:
diff changeset
   351
        * @param    aSourceLUID    	LUID of the source object
hgs
parents:
diff changeset
   352
        * @param    aType           MIME type of the object
hgs
parents:
diff changeset
   353
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   354
        * @return   none
hgs
parents:
diff changeset
   355
        */
hgs
parents:
diff changeset
   356
	    void CopyCommandL( const TDesC8& aTargetURI, const TDesC8& aTargetLUID, 
hgs
parents:
diff changeset
   357
                                const TDesC8& aSourceURI, const TDesC8& aSourceLUID, 
hgs
parents:
diff changeset
   358
                                const TDesC8& aType, TInt aStatusRef );
hgs
parents:
diff changeset
   359
        
hgs
parents:
diff changeset
   360
        /**
hgs
parents:
diff changeset
   361
        * From      CSmlDmAdapter   The function indicates start of Atomic command.
hgs
parents:
diff changeset
   362
        * @since    Series60_3.0
hgs
parents:
diff changeset
   363
        * @param    none
hgs
parents:
diff changeset
   364
        * @return   none
hgs
parents:
diff changeset
   365
        */
hgs
parents:
diff changeset
   366
	    void StartAtomicL();
hgs
parents:
diff changeset
   367
hgs
parents:
diff changeset
   368
        /**
hgs
parents:
diff changeset
   369
        * From      CSmlDmAdapter   The function indicates successful end of Atomic command.
hgs
parents:
diff changeset
   370
        * @since    Series60_3.0
hgs
parents:
diff changeset
   371
        * @param    none
hgs
parents:
diff changeset
   372
        * @return   none
hgs
parents:
diff changeset
   373
        */
hgs
parents:
diff changeset
   374
	    void CommitAtomicL();
hgs
parents:
diff changeset
   375
hgs
parents:
diff changeset
   376
        /**
hgs
parents:
diff changeset
   377
        * From      CSmlDmAdapter   The function indicates unsuccessful end of Atomic command.
hgs
parents:
diff changeset
   378
        * @since    Series60_3.0
hgs
parents:
diff changeset
   379
        * @param    none
hgs
parents:
diff changeset
   380
        * @return   none
hgs
parents:
diff changeset
   381
        */
hgs
parents:
diff changeset
   382
	    void RollbackAtomicL();
hgs
parents:
diff changeset
   383
hgs
parents:
diff changeset
   384
        /**
hgs
parents:
diff changeset
   385
        * From      CSmlDmAdapter   Returns ETrue if adapter supports streaming otherwise EFalse.
hgs
parents:
diff changeset
   386
        * @since    Series60_3.0
hgs
parents:
diff changeset
   387
        * @param    aItemSize       Size limit for stream usage.
hgs
parents:
diff changeset
   388
        * @return   ETrue or EFalse
hgs
parents:
diff changeset
   389
        */
hgs
parents:
diff changeset
   390
	    TBool StreamingSupport( TInt& aItemSize );
hgs
parents:
diff changeset
   391
hgs
parents:
diff changeset
   392
        /**
hgs
parents:
diff changeset
   393
        * From      CSmlDmAdapter   Called when stream returned from UpdateLeafObjectL or 
hgs
parents:
diff changeset
   394
        *                           ExecuteCommandL has been written to and committed.
hgs
parents:
diff changeset
   395
        * @since    Series60_3.0
hgs
parents:
diff changeset
   396
        * @param    none
hgs
parents:
diff changeset
   397
        * @return   none
hgs
parents:
diff changeset
   398
        */
hgs
parents:
diff changeset
   399
	    void StreamCommittedL();
hgs
parents:
diff changeset
   400
hgs
parents:
diff changeset
   401
        /**
hgs
parents:
diff changeset
   402
        * From      CSmlDmAdapter   The function tells the adapter that all the commands of the message that
hgs
parents:
diff changeset
   403
	    *                           can be passed to the adapter have now been passed.
hgs
parents:
diff changeset
   404
        * @since    Series60_3.0
hgs
parents:
diff changeset
   405
        * @param    none
hgs
parents:
diff changeset
   406
        * @return   none
hgs
parents:
diff changeset
   407
        */
hgs
parents:
diff changeset
   408
	    void CompleteOutstandingCmdsL();
hgs
parents:
diff changeset
   409
hgs
parents:
diff changeset
   410
    private:
hgs
parents:
diff changeset
   411
hgs
parents:
diff changeset
   412
        /**
hgs
parents:
diff changeset
   413
        * C++ default constructor.
hgs
parents:
diff changeset
   414
        */
hgs
parents:
diff changeset
   415
        CNSmlDSSettingsAdapter();
hgs
parents:
diff changeset
   416
	    CNSmlDSSettingsAdapter( TAny* aEcomArguments );
hgs
parents:
diff changeset
   417
        
hgs
parents:
diff changeset
   418
        /**
hgs
parents:
diff changeset
   419
        * The function checks if field to be handled is valid.
hgs
parents:
diff changeset
   420
        * @param    none
hgs
parents:
diff changeset
   421
        * @return   ETrue if valid field otherwise EFalse.
hgs
parents:
diff changeset
   422
        */   
hgs
parents:
diff changeset
   423
	    TBool AcceptDSField();
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
        /**
hgs
parents:
diff changeset
   426
        * The function returns enum value for a field to be handled.
hgs
parents:
diff changeset
   427
        * @param    none
hgs
parents:
diff changeset
   428
        * @return   enum value for a field to be handled.
hgs
parents:
diff changeset
   429
        */ 
hgs
parents:
diff changeset
   430
        TInt GetDSField() const;
hgs
parents:
diff changeset
   431
hgs
parents:
diff changeset
   432
        /**
hgs
parents:
diff changeset
   433
        * The function checks if field type to be handled is valid.
hgs
parents:
diff changeset
   434
        * @param    none
hgs
parents:
diff changeset
   435
        * @return   enum value for a field type.
hgs
parents:
diff changeset
   436
        */ 
hgs
parents:
diff changeset
   437
        TInt GetDSFieldTypeL() const;
hgs
parents:
diff changeset
   438
hgs
parents:
diff changeset
   439
        /**
hgs
parents:
diff changeset
   440
        * The function converts LUID to integer.
hgs
parents:
diff changeset
   441
        * @param    aLUID     LUID data to be converted.
hgs
parents:
diff changeset
   442
        * @return   Integer value for a LUID.
hgs
parents:
diff changeset
   443
        */    
hgs
parents:
diff changeset
   444
        TInt IntLUID(const TDesC8& aLUID);
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
         /**
hgs
parents:
diff changeset
   447
        * The function converts data to integer and returns it.
hgs
parents:
diff changeset
   448
        * @param    aObject     Data object to be converted.
hgs
parents:
diff changeset
   449
        * @return   Integer value for an object.
hgs
parents:
diff changeset
   450
        */
hgs
parents:
diff changeset
   451
        TInt GetIntObject( const TDesC8& aObject );
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
        /**
hgs
parents:
diff changeset
   454
        * The function converts data to integer and returns it.
hgs
parents:
diff changeset
   455
        * @param    aObject     Data object to be converted.
hgs
parents:
diff changeset
   456
        * @return   16-bit integer value for an object.
hgs
parents:
diff changeset
   457
        */
hgs
parents:
diff changeset
   458
	    TInt GetIntObject16( const TDesC& aObject );
hgs
parents:
diff changeset
   459
hgs
parents:
diff changeset
   460
        /**
hgs
parents:
diff changeset
   461
        * The function stores integer value to buffer and returns reference to it.
hgs
parents:
diff changeset
   462
        * @param    aObject     data to be stored to buffer.
hgs
parents:
diff changeset
   463
        * @return   reference to data buffer.
hgs
parents:
diff changeset
   464
        */
hgs
parents:
diff changeset
   465
        TDesC8& SetIntObjectLC( const TInt& aObject );
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
        /**
hgs
parents:
diff changeset
   468
        * The function checks if data length is valid.
hgs
parents:
diff changeset
   469
        * @param    aProfileItem    Field / Leaf ID to be handled.
hgs
parents:
diff changeset
   470
        * @param    aSource         Data to be handled.
hgs
parents:
diff changeset
   471
        * @return   ETrue if data length is not valid otherwise EFalse.
hgs
parents:
diff changeset
   472
        */ 
hgs
parents:
diff changeset
   473
        TBool NotValidStrLenght( const TInt& aProfileItem, const TDesC8& aSource );
hgs
parents:
diff changeset
   474
hgs
parents:
diff changeset
   475
        /**
hgs
parents:
diff changeset
   476
        * The function finds out the last element of the uri.
hgs
parents:
diff changeset
   477
        * @param    aSource     Uri object that contains all elements.
hgs
parents:
diff changeset
   478
        * @return   KErrNone if successful.
hgs
parents:
diff changeset
   479
        */
hgs
parents:
diff changeset
   480
        TInt    SetField( const TDesC8& aSource );
hgs
parents:
diff changeset
   481
hgs
parents:
diff changeset
   482
        /**
hgs
parents:
diff changeset
   483
        * The function converts 16-bit data to 8-bit and returns reference to it.
hgs
parents:
diff changeset
   484
        * @param    aSource    Reference data to be converted.
hgs
parents:
diff changeset
   485
        * @return   Reference to 8-bit data buffer.
hgs
parents:
diff changeset
   486
        */ 
hgs
parents:
diff changeset
   487
        TDesC8&  ConvertTo8LC( const TDesC& aSource );
hgs
parents:
diff changeset
   488
hgs
parents:
diff changeset
   489
        /**
hgs
parents:
diff changeset
   490
        * The function converts 8-bit data to 16-bit and returns reference to it.
hgs
parents:
diff changeset
   491
        * @param    aSource    Reference data to be converted.
hgs
parents:
diff changeset
   492
        * @return   Reference to 16-bit data buffer.
hgs
parents:
diff changeset
   493
        */ 
hgs
parents:
diff changeset
   494
	    TDesC16& ConvertTo16LC( const TDesC8& aSource );
hgs
parents:
diff changeset
   495
hgs
parents:
diff changeset
   496
        /**
hgs
parents:
diff changeset
   497
        * The function adds new dataprovider for a profile.
hgs
parents:
diff changeset
   498
        * @param    aIntLUID        Profile integer LUID.
hgs
parents:
diff changeset
   499
        * @param    aMIMEType       Requested MIME type of the data provider.
hgs
parents:
diff changeset
   500
        * @param    aDataProviderId Reference to object where new data provider id to be saved.
hgs
parents:
diff changeset
   501
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   502
        */ 
hgs
parents:
diff changeset
   503
        TInt AddNewDataProviderL( TInt aIntLUID, const TDesC8& aMIMEType, TInt& aDataProviderId );
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
        /**
hgs
parents:
diff changeset
   506
        * The function gets the uri for profile IAP ID.
hgs
parents:
diff changeset
   507
        * @param    aLUID       Profile integer LUID.
hgs
parents:
diff changeset
   508
        * @param    aObject     Reference to object where URI to be stored.
hgs
parents:
diff changeset
   509
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   510
        */ 
hgs
parents:
diff changeset
   511
        TInt GetToNAPIDL( const TInt aLUID, CBufBase& aObject );
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
        /**
hgs
parents:
diff changeset
   514
        * The function sets the profile IAP id based on URI.
hgs
parents:
diff changeset
   515
        * @param    aLUID       Profile integer LUID.
hgs
parents:
diff changeset
   516
        * @param    aObject     Access point URI.
hgs
parents:
diff changeset
   517
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   518
        */ 
hgs
parents:
diff changeset
   519
        TInt SetToNAPIDL( const TInt aLUID, const TDesC8& aObject );
hgs
parents:
diff changeset
   520
hgs
parents:
diff changeset
   521
        /**
hgs
parents:
diff changeset
   522
        * The function sets the new node to buffer (in case of content type).
hgs
parents:
diff changeset
   523
        * @param    aURI            URI of the node.
hgs
parents:
diff changeset
   524
        * @param    aParentLUID     LUID for the parent object.
hgs
parents:
diff changeset
   525
        * @param    aStatusRef      Command status reply reference.
hgs
parents:
diff changeset
   526
        * @return   none
hgs
parents:
diff changeset
   527
        */ 
hgs
parents:
diff changeset
   528
        void AddNodeBufferL( const TDesC8& aURI, const TDesC8& aParentLUID, 
hgs
parents:
diff changeset
   529
                                const TInt aStatusRef );
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
        /**
hgs
parents:
diff changeset
   532
        * The function sets new leaf object to buffer (in case DB level object).
hgs
parents:
diff changeset
   533
        * @param    aURI            URI of the node.
hgs
parents:
diff changeset
   534
        * @param    aParentLUID     LUID for the parent object.
hgs
parents:
diff changeset
   535
        * @param    aStatusRef      Command status reply reference.
hgs
parents:
diff changeset
   536
        * @return   none
hgs
parents:
diff changeset
   537
        */ 
hgs
parents:
diff changeset
   538
        void AddLeafBufferL( const TDesC8& aURI,const TDesC8& aParentLUID, 
hgs
parents:
diff changeset
   539
                                const TDesC8& aObject, const TInt aStatusRef );
hgs
parents:
diff changeset
   540
hgs
parents:
diff changeset
   541
        /**
hgs
parents:
diff changeset
   542
        * The function finds out the last segment of the URI.
hgs
parents:
diff changeset
   543
        * @param    aURI        URI to be handled.
hgs
parents:
diff changeset
   544
        * @return   Pointer to last URI segment.
hgs
parents:
diff changeset
   545
        */ 
hgs
parents:
diff changeset
   546
        TPtrC8 LastURISeg( const TDesC8& aURI );
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
        /**
hgs
parents:
diff changeset
   549
        * The function removes the last segment of the URI.
hgs
parents:
diff changeset
   550
        * @param    aURI        URI to be handled.
hgs
parents:
diff changeset
   551
        * @return   Pointer to recontructed URI.
hgs
parents:
diff changeset
   552
        */ 
hgs
parents:
diff changeset
   553
        TPtrC8 RemoveLastURISeg( const TDesC8& aURI );
hgs
parents:
diff changeset
   554
hgs
parents:
diff changeset
   555
        /**
hgs
parents:
diff changeset
   556
        * The function executes command from the buffer based on URI.
hgs
parents:
diff changeset
   557
        * @param    aURI        URI to be handled first.
hgs
parents:
diff changeset
   558
        * @return   none
hgs
parents:
diff changeset
   559
        */ 
hgs
parents:
diff changeset
   560
        void ExecuteBufferL( const TDesC8& aURI );
hgs
parents:
diff changeset
   561
hgs
parents:
diff changeset
   562
        /**
hgs
parents:
diff changeset
   563
        * The function gets the profile Id (LUID) for given URI.
hgs
parents:
diff changeset
   564
        * @param    aURI        URI which LUID to be fetched.
hgs
parents:
diff changeset
   565
        * @return   LUID for the URI.
hgs
parents:
diff changeset
   566
        */ 
hgs
parents:
diff changeset
   567
        TInt GetProfileIdFromURIL( const TDesC8& aURI );
hgs
parents:
diff changeset
   568
hgs
parents:
diff changeset
   569
        /**
hgs
parents:
diff changeset
   570
        * The function gets the MIME type for given data provider.
hgs
parents:
diff changeset
   571
        * @param    aDataProviderId Data provider ID.
hgs
parents:
diff changeset
   572
        * @param    aProfileLUID    Profile LUID.
hgs
parents:
diff changeset
   573
        * @param    aObject         Reference where fetched MIME type to be stored.
hgs
parents:
diff changeset
   574
        * @return   KErrNone if successful otherwise error cose.
hgs
parents:
diff changeset
   575
        */ 
hgs
parents:
diff changeset
   576
        TInt GetContentTypeL( const TInt aDataProviderId, const TInt aProfileLUID, 
hgs
parents:
diff changeset
   577
                                CBufBase*& aObject );
hgs
parents:
diff changeset
   578
hgs
parents:
diff changeset
   579
	    /**
hgs
parents:
diff changeset
   580
        * The function find out the buffer index for given URI.
hgs
parents:
diff changeset
   581
        * @param    aURI        URI which position in the buffer to be solved.
hgs
parents:
diff changeset
   582
        * @return   Buffer position for given URI. If not found value is -1.
hgs
parents:
diff changeset
   583
        */ 
hgs
parents:
diff changeset
   584
        TInt GetBufferIndex( const TDesC8& aURI );
hgs
parents:
diff changeset
   585
hgs
parents:
diff changeset
   586
        /**
hgs
parents:
diff changeset
   587
        * The function sets the LUID to buffer for given URI.
hgs
parents:
diff changeset
   588
        * @param    aURI        URI which position in the buffer to be solved.
hgs
parents:
diff changeset
   589
        * @param    aLUID       LUID for an URI.
hgs
parents:
diff changeset
   590
        * @return   Value > 0 if URI found, otherwise value is 0.
hgs
parents:
diff changeset
   591
        */ 
hgs
parents:
diff changeset
   592
	    TInt SetBufferLUID( const TDesC8& aURI, const TInt aLUID );
hgs
parents:
diff changeset
   593
hgs
parents:
diff changeset
   594
        /**
hgs
parents:
diff changeset
   595
        * The function find out the port number from URL and stores it to aPort.
hgs
parents:
diff changeset
   596
        * @param    aRealURI    Reference data to be containing the whole URI.
hgs
parents:
diff changeset
   597
        * @param    aPort       Reference variable where port number will be stored.
hgs
parents:
diff changeset
   598
        * @return   KErrNone if successful otherwise KErrNotFound.
hgs
parents:
diff changeset
   599
        */ 
hgs
parents:
diff changeset
   600
	    TInt  ParseUri( const TDesC8& aRealURI, TInt& aPort );
hgs
parents:
diff changeset
   601
        
hgs
parents:
diff changeset
   602
        /**
hgs
parents:
diff changeset
   603
        * The function checks if requested profile ID exits.
hgs
parents:
diff changeset
   604
        * @param    aIntLUID    Integer value for a LUID of the profile.
hgs
parents:
diff changeset
   605
        * @return   ETrue if profile exits otherwise EFalse.
hgs
parents:
diff changeset
   606
        */ 
hgs
parents:
diff changeset
   607
	    TBool FindProfileIdL( const TInt aIntLUID );
hgs
parents:
diff changeset
   608
hgs
parents:
diff changeset
   609
        /**
hgs
parents:
diff changeset
   610
        * The function gets the profile ID from Client API.
hgs
parents:
diff changeset
   611
        * @param    aIntLUID    Integer value for a LUID of the profile.
hgs
parents:
diff changeset
   612
        * @param    aProfileID  Reference to object where profile ID to be stored.
hgs
parents:
diff changeset
   613
        * @return   KErrNone if successful otherwise KErrNotFound.
hgs
parents:
diff changeset
   614
        */ 
hgs
parents:
diff changeset
   615
        TInt GetProfileIdentifierL( const TInt aIntLUID, TInt& aProfileID );
hgs
parents:
diff changeset
   616
hgs
parents:
diff changeset
   617
        /**
hgs
parents:
diff changeset
   618
        * The function gets the profile data acording to URI leaf.
hgs
parents:
diff changeset
   619
        * @param    aIntLUID    Profile ID.
hgs
parents:
diff changeset
   620
        * @param    aObject     Reference where fetched data to be stored.
hgs
parents:
diff changeset
   621
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   622
        */ 
hgs
parents:
diff changeset
   623
        TInt GetDSFieldDataL( const TInt aIntLUID, CBufBase*& aObject );
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
        /**
hgs
parents:
diff changeset
   626
        * The function gets the profile medium type value.
hgs
parents:
diff changeset
   627
        * @param    aIntLUID     Reference where data to be stored.
hgs
parents:
diff changeset
   628
        * @return   Medium type for profile connection.
hgs
parents:
diff changeset
   629
        */ 
hgs
parents:
diff changeset
   630
        TInt GetProfileConnectiontypeL( const TInt aIntLUID );
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
        /**
hgs
parents:
diff changeset
   633
        * The function gets the profile Addr leaf value.
hgs
parents:
diff changeset
   634
        * @param    aIntLUID    Profile ID.
hgs
parents:
diff changeset
   635
        * @param    aURL        Reference where fetched data to be stored.
hgs
parents:
diff changeset
   636
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   637
        */ 
hgs
parents:
diff changeset
   638
        TInt GetProfileServerURLL( const TInt aIntLUID, CBufBase*& aURL );
hgs
parents:
diff changeset
   639
hgs
parents:
diff changeset
   640
        /**
hgs
parents:
diff changeset
   641
        * The function gets the profile user name value.
hgs
parents:
diff changeset
   642
        * @param    aIntLUID    Profile ID.
hgs
parents:
diff changeset
   643
        * @param    aUserName   Reference where fetched data to be stored.
hgs
parents:
diff changeset
   644
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   645
        */ 
hgs
parents:
diff changeset
   646
	    TInt GetProfileUserNameL( const TInt aIntLUID, CBufBase*& aUserName );
hgs
parents:
diff changeset
   647
hgs
parents:
diff changeset
   648
        /**
hgs
parents:
diff changeset
   649
        * The function gets the profile user name value.
hgs
parents:
diff changeset
   650
        * @param    aIntLUID    Profile ID.
hgs
parents:
diff changeset
   651
        * @param    aServerId   Reference where fetched data to be stored.
hgs
parents:
diff changeset
   652
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   653
        */ 
hgs
parents:
diff changeset
   654
	    TInt GetProfileServerIdL( const TInt aIntLUID, CBufBase*& aServerId );
hgs
parents:
diff changeset
   655
hgs
parents:
diff changeset
   656
        /**
hgs
parents:
diff changeset
   657
        * The function gets the profile IAP Id (ToNAPID) value.
hgs
parents:
diff changeset
   658
        * @param    aIntLUID    Profile ID.
hgs
parents:
diff changeset
   659
        * @param    aIAPid      Reference where fetched data to be stored.
hgs
parents:
diff changeset
   660
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   661
        */ 
hgs
parents:
diff changeset
   662
	    TInt GetProfileIAPIdL( const TInt aIntLUID, TInt& aIAPid );		
hgs
parents:
diff changeset
   663
hgs
parents:
diff changeset
   664
        /**
hgs
parents:
diff changeset
   665
        * The function gets the profile Name value.
hgs
parents:
diff changeset
   666
        * @param    aIntLUID        Profile ID.
hgs
parents:
diff changeset
   667
        * @param    aDisplayName    Reference where fetched data to be stored.
hgs
parents:
diff changeset
   668
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   669
        */ 
hgs
parents:
diff changeset
   670
	    TInt GetProfileDisplayNameL( const TInt aIntLUID, CBufBase*& aDisplayName );
hgs
parents:
diff changeset
   671
hgs
parents:
diff changeset
   672
        /**
hgs
parents:
diff changeset
   673
        * The function creates new DM profile.
hgs
parents:
diff changeset
   674
        * @param    aPID    Reference to variable where new profile Id will be stored.
hgs
parents:
diff changeset
   675
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   676
        */ 
hgs
parents:
diff changeset
   677
	    TInt CreateNewProfileL( TInt& aPID );
hgs
parents:
diff changeset
   678
hgs
parents:
diff changeset
   679
        /**
hgs
parents:
diff changeset
   680
        * The function sets the profile Addr leaf value.
hgs
parents:
diff changeset
   681
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   682
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   683
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   684
        */ 
hgs
parents:
diff changeset
   685
        TInt SetProfileServerURIL( const TInt aPID, const TDesC8& aObj );
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
        /**
hgs
parents:
diff changeset
   688
        * The function sets the profile Name leaf value.
hgs
parents:
diff changeset
   689
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   690
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   691
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   692
        */     
hgs
parents:
diff changeset
   693
        TInt SetProfileDisplayNameL( const TInt aPID, const TDesC8& aObj );
hgs
parents:
diff changeset
   694
hgs
parents:
diff changeset
   695
        /**
hgs
parents:
diff changeset
   696
        * The function sets the profile UserName leaf value.
hgs
parents:
diff changeset
   697
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   698
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   699
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   700
        */ 
hgs
parents:
diff changeset
   701
	    TInt SetProfileUserNameL( const TInt aPID, const TDesC8& aObj );
hgs
parents:
diff changeset
   702
hgs
parents:
diff changeset
   703
        /**
hgs
parents:
diff changeset
   704
        * The function sets the profile UserName leaf value.
hgs
parents:
diff changeset
   705
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   706
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   707
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   708
        */ 
hgs
parents:
diff changeset
   709
	    TInt SetProfileServerIdL( const TInt aPID, const TDesC8& aObj );
hgs
parents:
diff changeset
   710
hgs
parents:
diff changeset
   711
        /**
hgs
parents:
diff changeset
   712
        * The function sets the profile password leaf value.
hgs
parents:
diff changeset
   713
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   714
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   715
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   716
        */ 
hgs
parents:
diff changeset
   717
        TInt SetProfilePasswordL( const TInt aPID, const TDesC8& aObj );
hgs
parents:
diff changeset
   718
hgs
parents:
diff changeset
   719
        /**
hgs
parents:
diff changeset
   720
        * General function that checks which leaf to be handled based on field id.
hgs
parents:
diff changeset
   721
        * @param    aPID        Profile ID.
hgs
parents:
diff changeset
   722
        * @param    aObj        Data to be stored for a profile.
hgs
parents:
diff changeset
   723
        * @param    aFieldID    Internal value for a leaf to be handled.
hgs
parents:
diff changeset
   724
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   725
        */ 
hgs
parents:
diff changeset
   726
        TInt SetProfileStrValueL( const TInt aPID, const TDesC8& aObj, 
hgs
parents:
diff changeset
   727
                                    const TInt aFieldID );
hgs
parents:
diff changeset
   728
hgs
parents:
diff changeset
   729
        /**
hgs
parents:
diff changeset
   730
        * The function deletes the profile data.
hgs
parents:
diff changeset
   731
        * @param    aPID    Profile ID.
hgs
parents:
diff changeset
   732
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   733
        */ 
hgs
parents:
diff changeset
   734
        TInt DeleteProfileL( const TInt aPID );
hgs
parents:
diff changeset
   735
hgs
parents:
diff changeset
   736
        /**
hgs
parents:
diff changeset
   737
        * The function creates list of the content types that profile supports.
hgs
parents:
diff changeset
   738
        * @param    aURI                    URI that contains content types.
hgs
parents:
diff changeset
   739
        * @param    aPID                    Profile ID.
hgs
parents:
diff changeset
   740
        * @param    aCurrentURISegmentList  Reference to list to be filled.
hgs
parents:
diff changeset
   741
        * @param    aPreviousURISegmentList Previous, existing list for content types.
hgs
parents:
diff changeset
   742
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   743
        */ 
hgs
parents:
diff changeset
   744
        TInt CreateURITaskSegmentListL( const TDesC8& aURI, const TInt aPID, 
hgs
parents:
diff changeset
   745
                                    CBufBase*& aCurrentURISegmentList, 
hgs
parents:
diff changeset
   746
                                    const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList );
hgs
parents:
diff changeset
   747
hgs
parents:
diff changeset
   748
        /**
hgs
parents:
diff changeset
   749
        * The function creates list of the existing profiles.
hgs
parents:
diff changeset
   750
        * @param    aCurrentURISegmentList  Reference to list to be filled.
hgs
parents:
diff changeset
   751
        * @param    aPreviousURISegmentList Previous, existing list for profiles.
hgs
parents:
diff changeset
   752
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   753
        */ 
hgs
parents:
diff changeset
   754
        TInt CreateURIProfileSegmentListL( CBufBase*& aCurrentURISegmentList, 
hgs
parents:
diff changeset
   755
                                    const CArrayFix<TSmlDmMappingInfo>& aPreviousURISegmentList );
hgs
parents:
diff changeset
   756
        
hgs
parents:
diff changeset
   757
        /**
hgs
parents:
diff changeset
   758
        * The function opens the server session and profile via client API.
hgs
parents:
diff changeset
   759
        * @param    aIntLUID    Integer value for a LUID of the profile.
hgs
parents:
diff changeset
   760
        * @param    aMode       Read or Read and Write mode for a profile data.
hgs
parents:
diff changeset
   761
        * @return   KErrNone if successful otherwise KErrNotFound.
hgs
parents:
diff changeset
   762
        */ 
hgs
parents:
diff changeset
   763
        TInt OpenSyncSessionAndDSProfileL( const TInt aIntLUID, TSmlOpenMode aMode );
hgs
parents:
diff changeset
   764
hgs
parents:
diff changeset
   765
        /**
hgs
parents:
diff changeset
   766
        * The function closes the DS profile session.
hgs
parents:
diff changeset
   767
        * @param    none.
hgs
parents:
diff changeset
   768
        * @return   none.
hgs
parents:
diff changeset
   769
        */ 
hgs
parents:
diff changeset
   770
	    void CloseDSProfile();
hgs
parents:
diff changeset
   771
hgs
parents:
diff changeset
   772
        /**
hgs
parents:
diff changeset
   773
        * The function checks if profile has the requested task id.
hgs
parents:
diff changeset
   774
        * @param    aProfLUID       Integer value for a LUID of the profile.
hgs
parents:
diff changeset
   775
        * @param    aDataProviderId DataProvider id to be searched.
hgs
parents:
diff changeset
   776
        * @return   ETrue if task found otherwise EFalse.
hgs
parents:
diff changeset
   777
        */ 
hgs
parents:
diff changeset
   778
        TBool FindTaskIDL( const TInt aProfLUID, const TInt aDataProviderId );
hgs
parents:
diff changeset
   779
hgs
parents:
diff changeset
   780
        /**
hgs
parents:
diff changeset
   781
        * The function deletes task for given profile.
hgs
parents:
diff changeset
   782
        * @param    aLUID           Integer value for a LUID of the profile.
hgs
parents:
diff changeset
   783
        * @param    aDataProviderId DataProvider id to be searched.
hgs
parents:
diff changeset
   784
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   785
        */ 
hgs
parents:
diff changeset
   786
	    TInt DeleteTaskByIDL( const TInt aLUID, const TInt aDataProviderId );
hgs
parents:
diff changeset
   787
hgs
parents:
diff changeset
   788
        /**
hgs
parents:
diff changeset
   789
        * The function gets the LDBURI (local datastore) for given profile.
hgs
parents:
diff changeset
   790
        * @param    aDataProviderId DataProvider id to be searched.
hgs
parents:
diff changeset
   791
        * @param    aProfileLUID    Profile Id.
hgs
parents:
diff changeset
   792
        * @param    aObject         Reference to object where fetched value to be saved.
hgs
parents:
diff changeset
   793
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   794
        */ 
hgs
parents:
diff changeset
   795
        TInt GetClientDataSourceL( const TInt aDataProviderId, const TInt aProfileLUID, 
hgs
parents:
diff changeset
   796
                                    CBufBase*& aObject );
hgs
parents:
diff changeset
   797
        /**
hgs
parents:
diff changeset
   798
        * The function gets the RDBURI (remote datastore) for given profile.
hgs
parents:
diff changeset
   799
        * @param    aDataProviderId DataProvider id to be searched.
hgs
parents:
diff changeset
   800
        * @param    aProfileLUID    Profile Id.
hgs
parents:
diff changeset
   801
        * @param    aObject         Reference to object where fetched value to be saved.
hgs
parents:
diff changeset
   802
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   803
        */ 
hgs
parents:
diff changeset
   804
        TInt GetServerDataSourceL( const TInt aDataProviderId, const TInt aProfileLUID, 
hgs
parents:
diff changeset
   805
                                    CBufBase*& aObject );
hgs
parents:
diff changeset
   806
hgs
parents:
diff changeset
   807
        /**
hgs
parents:
diff changeset
   808
        * The function replaces the LDBURI or RDBURI values for given profile.
hgs
parents:
diff changeset
   809
        * @param    aProfileLUID    Profile Id.
hgs
parents:
diff changeset
   810
        * @param    aDataProviderId DataProvider id to be searched.
hgs
parents:
diff changeset
   811
        * @param    aObject         Data to be stored.
hgs
parents:
diff changeset
   812
        * @param    aField          Field Id to be handled.
hgs
parents:
diff changeset
   813
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   814
        */ 
hgs
parents:
diff changeset
   815
        TInt UpdateDataSourceL( const TInt aProfileLUID, const TInt aDataProviderId, 
hgs
parents:
diff changeset
   816
                                    const TDesC8& aObject, const HBufC8& aField );
hgs
parents:
diff changeset
   817
hgs
parents:
diff changeset
   818
        /**
hgs
parents:
diff changeset
   819
        * The function fetches the object (leaf) data based on given URI.
hgs
parents:
diff changeset
   820
        * @param    aURI            URI of the object
hgs
parents:
diff changeset
   821
        * @param    aLUID           LUID of the object
hgs
parents:
diff changeset
   822
        * @param    aObj            Reference to object where fetched data to be saved.
hgs
parents:
diff changeset
   823
        * @param    aStatusRef      Reference to correct command
hgs
parents:
diff changeset
   824
        * @return   none
hgs
parents:
diff changeset
   825
        */
hgs
parents:
diff changeset
   826
        TInt FetchObjectL( const TDesC8& aURI, const TDesC8& aLUID, CBufBase*& aObj, 
hgs
parents:
diff changeset
   827
                                    const TInt aStatusRef );
hgs
parents:
diff changeset
   828
        
hgs
parents:
diff changeset
   829
        /**
hgs
parents:
diff changeset
   830
        * The function fills the node info.
hgs
parents:
diff changeset
   831
        * @param    aNode           Reference to node or leaf which info to be filled.
hgs
parents:
diff changeset
   832
        * @param    aAccTypes       Access rights for a leaf / node.
hgs
parents:
diff changeset
   833
        * @param    aOccurrence     Occurance of the node / leaf.
hgs
parents:
diff changeset
   834
        * @param    aScope          Scope (dynamic / permanent) of the leaf / node.
hgs
parents:
diff changeset
   835
        * @param    aFormat         Data format of the leaf / node.
hgs
parents:
diff changeset
   836
        * @param    aDescription    Description of the node / leaf.
hgs
parents:
diff changeset
   837
        * @param    aDefaultValue   Default value for a leaf or node.
hgs
parents:
diff changeset
   838
        * @param    aMimeType       MIME type for a leaf / node.
hgs
parents:
diff changeset
   839
        * @return   none
hgs
parents:
diff changeset
   840
        */ 
hgs
parents:
diff changeset
   841
        void FillNodeInfoL( MSmlDmDDFObject& aNode, TSmlDmAccessTypes aAccTypes, 
hgs
parents:
diff changeset
   842
                                MSmlDmDDFObject::TOccurence aOccurrence, 
hgs
parents:
diff changeset
   843
                                MSmlDmDDFObject::TScope aScope, 
hgs
parents:
diff changeset
   844
                                MSmlDmDDFObject::TDFFormat aFormat, 
hgs
parents:
diff changeset
   845
                                const TDesC8& aDescription, 
hgs
parents:
diff changeset
   846
                                const TDesC8& aDefaultValue, const TDesC8& aMimeType );
hgs
parents:
diff changeset
   847
        
hgs
parents:
diff changeset
   848
        /**
hgs
parents:
diff changeset
   849
        * The function set's the address type / medium type value for a profile.
hgs
parents:
diff changeset
   850
        * @param    aLUID       LUID for a profile.
hgs
parents:
diff changeset
   851
        * @param    aIntObj     Address type value.
hgs
parents:
diff changeset
   852
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   853
        */ 
hgs
parents:
diff changeset
   854
        TInt SetProfileAddrTypeL( const TInt aLUID, const TInt aIntObj );
hgs
parents:
diff changeset
   855
hgs
parents:
diff changeset
   856
        /**
hgs
parents:
diff changeset
   857
        * The function adds port number to address URL.
hgs
parents:
diff changeset
   858
        * @param    aLUID       Profile ID.
hgs
parents:
diff changeset
   859
        * @param    aPort       Reference to port number data.
hgs
parents:
diff changeset
   860
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   861
        */ 
hgs
parents:
diff changeset
   862
        TInt SetProfileConnectionPortNrL( const TInt aLUID, const TDesC8& aPort );
hgs
parents:
diff changeset
   863
hgs
parents:
diff changeset
   864
        /**
hgs
parents:
diff changeset
   865
        * The function adds port number to address URL.
hgs
parents:
diff changeset
   866
        * @param    aSrvURI     Original address URI.
hgs
parents:
diff changeset
   867
        * @param    aNewURI     New URI when port number has been added or deleted.
hgs
parents:
diff changeset
   868
        * @param    aPort       Reference to port number data.
hgs
parents:
diff changeset
   869
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   870
        */ 
hgs
parents:
diff changeset
   871
        void SetPortNrToAddrStr( const TDesC8& aSrvURI, HBufC8* aNewURI, 
hgs
parents:
diff changeset
   872
                                    const TDesC8& aPort );
hgs
parents:
diff changeset
   873
        
hgs
parents:
diff changeset
   874
        /**
hgs
parents:
diff changeset
   875
        * The function checks if MIME type allready exits.
hgs
parents:
diff changeset
   876
        * @param    aLuid       Profile LUID.
hgs
parents:
diff changeset
   877
        * @param    aMimeType   MIME type to be searched.
hgs
parents:
diff changeset
   878
        * @return   ETrue if MIME type found else EFalse.
hgs
parents:
diff changeset
   879
        */ 
hgs
parents:
diff changeset
   880
        TBool MimeTypeAllreadyExitsL( const TInt aLuid, const TDesC8& aMimeType );
hgs
parents:
diff changeset
   881
hgs
parents:
diff changeset
   882
        /**
hgs
parents:
diff changeset
   883
        * The function sets the RDBURI (remote datastore) to memeber variable.
hgs
parents:
diff changeset
   884
        * @param    aStore       Value for a RDBURI.
hgs
parents:
diff changeset
   885
        * @return   none.
hgs
parents:
diff changeset
   886
        */ 
hgs
parents:
diff changeset
   887
        void SetRDBDataStore( const TDesC8& aStore );
hgs
parents:
diff changeset
   888
hgs
parents:
diff changeset
   889
        /**
hgs
parents:
diff changeset
   890
        * The function sets the IAP Id value to profile connection data.
hgs
parents:
diff changeset
   891
        * @param    aLuid       Profile LUID.
hgs
parents:
diff changeset
   892
        * @param    aIAPid      Id for an IAP.
hgs
parents:
diff changeset
   893
        * @return   KErrNone if successful otherwise error code.
hgs
parents:
diff changeset
   894
        */ 
hgs
parents:
diff changeset
   895
        TInt SetProfileIAPIdL( const TInt aLUID, const TInt aIAPid );
hgs
parents:
diff changeset
   896
hgs
parents:
diff changeset
   897
        /**
hgs
parents:
diff changeset
   898
        * The function gets UID for the profile medium type.
hgs
parents:
diff changeset
   899
        * @param    aIntObj         Profile LUID.
hgs
parents:
diff changeset
   900
        * @param    aMediumType     Requested medium type.
hgs
parents:
diff changeset
   901
        * @return   none.
hgs
parents:
diff changeset
   902
        */ 
hgs
parents:
diff changeset
   903
        void GetMediumTypeL(const TInt aIntObj, TSmlTransportId& aMediumType);
hgs
parents:
diff changeset
   904
        
hgs
parents:
diff changeset
   905
        /**
hgs
parents:
diff changeset
   906
        * The function checks if the URI is of format ./SyncML/DMAcc/DMId<num>
hgs
parents:
diff changeset
   907
        * Example ./SyncML/DMAcc/DMId000 
hgs
parents:
diff changeset
   908
        * @param    aURI       aURI.
hgs
parents:
diff changeset
   909
        * @return   true/false
hgs
parents:
diff changeset
   910
        */                          
hgs
parents:
diff changeset
   911
        TBool IsDSAccUriFormatMatchPredefined(const TDesC8 & aURI);
hgs
parents:
diff changeset
   912
        
hgs
parents:
diff changeset
   913
         /**
hgs
parents:
diff changeset
   914
        * The function constructs ./SyncML/DMAcc/x nodes and
hgs
parents:
diff changeset
   915
        * returns the profile ID matching the aURI.
hgs
parents:
diff changeset
   916
        * @param    aURI       aURI.
hgs
parents:
diff changeset
   917
        * @return   KErrNotFound/ProfileID
hgs
parents:
diff changeset
   918
        */  
hgs
parents:
diff changeset
   919
        
hgs
parents:
diff changeset
   920
        TInt ConstructTreeL(const TDesC8& aURI);
hgs
parents:
diff changeset
   921
hgs
parents:
diff changeset
   922
   /**
hgs
parents:
diff changeset
   923
        * The function extracts Syncml/DSAcc/x node from aURI		        
hgs
parents:
diff changeset
   924
        * @param    aURI     Syncml/DSAcc aURI.
hgs
parents:
diff changeset
   925
        * @return   Syncml/DSAcc/x node.
hgs
parents:
diff changeset
   926
    */ 
hgs
parents:
diff changeset
   927
		TPtrC8 GetDynamicDSNodeUri(const TDesC8& aURI);
hgs
parents:
diff changeset
   928
hgs
parents:
diff changeset
   929
    private:    // Data
hgs
parents:
diff changeset
   930
	    
hgs
parents:
diff changeset
   931
        // Callback interface for returning result or status
hgs
parents:
diff changeset
   932
	    MSmlDmCallback*	iCallBack;
hgs
parents:
diff changeset
   933
        // Client API session class 
hgs
parents:
diff changeset
   934
        RSyncMLSession iSyncSession;
hgs
parents:
diff changeset
   935
        // Client API DS profile handling
hgs
parents:
diff changeset
   936
        RSyncMLDataSyncProfile iDSProfile;
hgs
parents:
diff changeset
   937
  
hgs
parents:
diff changeset
   938
        // Buffer for URI leaf element
hgs
parents:
diff changeset
   939
        HBufC8* iField;
hgs
parents:
diff changeset
   940
        // Pointer to buffer structure
hgs
parents:
diff changeset
   941
        CArrayFixFlat<TNSmlDSBufferElement> *iBuffer;
hgs
parents:
diff changeset
   942
        
hgs
parents:
diff changeset
   943
        // Buffer for URI leaf element
hgs
parents:
diff changeset
   944
        HBufC8* iPrevURI;
hgs
parents:
diff changeset
   945
        // Buffer for profile port number handling
hgs
parents:
diff changeset
   946
        HBufC8* iPortNbr;
hgs
parents:
diff changeset
   947
        // Buffer for profile remote data store handling
hgs
parents:
diff changeset
   948
        HBufC16* iRdbDataStore;
hgs
parents:
diff changeset
   949
        // Information about leaf command
hgs
parents:
diff changeset
   950
        TNSmlDSLeafType	  iLeafType;
hgs
parents:
diff changeset
   951
hgs
parents:
diff changeset
   952
        // LUID to be handled
hgs
parents:
diff changeset
   953
	    TInt iLUID;
hgs
parents:
diff changeset
   954
        // Parent LUID
hgs
parents:
diff changeset
   955
	    TInt iParentLUID;
hgs
parents:
diff changeset
   956
        // For handling profile medium type 
hgs
parents:
diff changeset
   957
	    TInt iObject;
hgs
parents:
diff changeset
   958
        // Previously handled LUID
hgs
parents:
diff changeset
   959
        TInt iPrevLUID;
hgs
parents:
diff changeset
   960
        
hgs
parents:
diff changeset
   961
        // Status information if session allready opened
hgs
parents:
diff changeset
   962
        TBool iSyncSessionOpen;
hgs
parents:
diff changeset
   963
        // Status of command was inside the module from buffer execution
hgs
parents:
diff changeset
   964
        TBool iBufferExecution;
hgs
parents:
diff changeset
   965
        
hgs
parents:
diff changeset
   966
        // buffered data for updating port number
hgs
parents:
diff changeset
   967
        HBufC8* iPortBuf;
hgs
parents:
diff changeset
   968
        TInt iPortBufLUID;
hgs
parents:
diff changeset
   969
        TInt iPortBufStatusRef;
hgs
parents:
diff changeset
   970
   };
hgs
parents:
diff changeset
   971
hgs
parents:
diff changeset
   972
#endif // __NSmlDSSETTINGSADAPTER_H__
hgs
parents:
diff changeset
   973
hgs
parents:
diff changeset
   974
// End of File