omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.cpp
author hgs
Tue, 13 Jul 2010 03:48:30 +0530
changeset 45 0f9fc722d255
parent 44 deviceupdatesui/omadmadapters/nsmldmalwaysonadapter/src/nsmldmalwaysonadapter.cpp@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) 2007 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:  Provides handling of Always-on settings in Device management.
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
#include <ecom/implementationproxy.h>
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
#include "nsmldmalwaysonadapter.h"
hgs
parents:
diff changeset
    22
#include "logger.h"
hgs
parents:
diff changeset
    23
hgs
parents:
diff changeset
    24
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
hgs
parents:
diff changeset
    27
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    28
// Maps plugin UID to its factory function (constructor)
hgs
parents:
diff changeset
    29
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    30
const TImplementationProxy ImplementationTable[] =
hgs
parents:
diff changeset
    31
    {
hgs
parents:
diff changeset
    32
    IMPLEMENTATION_PROXY_ENTRY(0x101f6d36, 
hgs
parents:
diff changeset
    33
                               CNSmlDmAOAdapter::NewL)
hgs
parents:
diff changeset
    34
    };
hgs
parents:
diff changeset
    35
hgs
parents:
diff changeset
    36
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    37
// For ecom plugin implementation
hgs
parents:
diff changeset
    38
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
    39
hgs
parents:
diff changeset
    40
EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
hgs
parents:
diff changeset
    41
    {
hgs
parents:
diff changeset
    42
    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
hgs
parents:
diff changeset
    43
    return ImplementationTable;
hgs
parents:
diff changeset
    44
    }
hgs
parents:
diff changeset
    45
hgs
parents:
diff changeset
    46
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    47
// CNSmlDmAOAdapter::NewL
hgs
parents:
diff changeset
    48
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    49
CNSmlDmAOAdapter* CNSmlDmAOAdapter::NewL( MSmlDmCallback* aDmCallback )
hgs
parents:
diff changeset
    50
    {
hgs
parents:
diff changeset
    51
    LOGSTRING("CNSmlDmAOAdapter::NewL: Start");
hgs
parents:
diff changeset
    52
    
hgs
parents:
diff changeset
    53
    CNSmlDmAOAdapter* self = new (ELeave) CNSmlDmAOAdapter( aDmCallback );
hgs
parents:
diff changeset
    54
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    55
    self->ConstructL();
hgs
parents:
diff changeset
    56
    CleanupStack::Pop( self );
hgs
parents:
diff changeset
    57
    
hgs
parents:
diff changeset
    58
    LOGSTRING("CNSmlDmAOAdapter::NewL: End");
hgs
parents:
diff changeset
    59
    return self;
hgs
parents:
diff changeset
    60
    }
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    63
// CNSmlDmAOAdapter::CNSmlDmAOAdapter
hgs
parents:
diff changeset
    64
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
CNSmlDmAOAdapter::CNSmlDmAOAdapter( MSmlDmCallback* aDmCallback ) 
hgs
parents:
diff changeset
    67
    : CSmlDmAdapter( aDmCallback )
hgs
parents:
diff changeset
    68
    {
hgs
parents:
diff changeset
    69
    }
hgs
parents:
diff changeset
    70
hgs
parents:
diff changeset
    71
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    72
// CNSmlDmAOAdapter::ConstructL
hgs
parents:
diff changeset
    73
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    74
void CNSmlDmAOAdapter::ConstructL()
hgs
parents:
diff changeset
    75
    {
hgs
parents:
diff changeset
    76
    LOGSTRING( "CNSmlDmAOAdapter::CNSmlDmAOAdapter: Start" );
hgs
parents:
diff changeset
    77
    
hgs
parents:
diff changeset
    78
    iSettingStore = CNSmlDmAOSettingStore::NewL( this );
hgs
parents:
diff changeset
    79
    
hgs
parents:
diff changeset
    80
    LOGSTRING( "CNSmlDmAOAdapter::CNSmlDmAOAdapter: End" );
hgs
parents:
diff changeset
    81
    }
hgs
parents:
diff changeset
    82
hgs
parents:
diff changeset
    83
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    84
// CNSmlDmAOAdapter::~CNSmlDmAOAdapter
hgs
parents:
diff changeset
    85
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    86
CNSmlDmAOAdapter::~CNSmlDmAOAdapter()
hgs
parents:
diff changeset
    87
    {
hgs
parents:
diff changeset
    88
    LOGSTRING( "CNSmlDmAOAdapter::~CNSmlDmAOAdapter: Start" );    
hgs
parents:
diff changeset
    89
 
hgs
parents:
diff changeset
    90
    //iBuffer.ResetAndDestroy();
hgs
parents:
diff changeset
    91
    //iBuffer.Close();
hgs
parents:
diff changeset
    92
    delete iSettingStore;
hgs
parents:
diff changeset
    93
 
hgs
parents:
diff changeset
    94
    LOGSTRING( "CNSmlDmAOAdapter::~CNSmlDmAOAdapter: End" );
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
    
hgs
parents:
diff changeset
    97
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
    98
// CNSmlDmAOAdapter::DDFVersionL
hgs
parents:
diff changeset
    99
// Returns ddf version nr
hgs
parents:
diff changeset
   100
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   101
void CNSmlDmAOAdapter::DDFVersionL( CBufBase& aDDFVersion )
hgs
parents:
diff changeset
   102
    {
hgs
parents:
diff changeset
   103
    LOGSTRING( "CNSmlDmAOAdapter::DDFVersionL: Start" );
hgs
parents:
diff changeset
   104
 
hgs
parents:
diff changeset
   105
    aDDFVersion.InsertL( 0, KNSmlDmAOAdapterDDFVersion );
hgs
parents:
diff changeset
   106
 
hgs
parents:
diff changeset
   107
    LOGSTRING( "CNSmlDmAOAdapter::DDFVersionL:End" );
hgs
parents:
diff changeset
   108
    }
hgs
parents:
diff changeset
   109
   
hgs
parents:
diff changeset
   110
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   111
// CNSmlDmAOAdapter::DDFStructureL
hgs
parents:
diff changeset
   112
//  Constructs the DDF structure
hgs
parents:
diff changeset
   113
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   114
void CNSmlDmAOAdapter::DDFStructureL( MSmlDmDDFObject& aDDF )
hgs
parents:
diff changeset
   115
    {
hgs
parents:
diff changeset
   116
    LOGSTRING( "CNSmlDmAOAdapter::DDFStructureL: Start" );
hgs
parents:
diff changeset
   117
    TSmlDmAccessTypes accessTypes;
hgs
parents:
diff changeset
   118
hgs
parents:
diff changeset
   119
    // VENDORCONFIG
hgs
parents:
diff changeset
   120
    MSmlDmDDFObject& ao = aDDF.AddChildObjectL( KNSmlDmAOAdapterAO );
hgs
parents:
diff changeset
   121
    
hgs
parents:
diff changeset
   122
    accessTypes.SetGet();    
hgs
parents:
diff changeset
   123
    
hgs
parents:
diff changeset
   124
    ao.SetAccessTypesL( accessTypes );
hgs
parents:
diff changeset
   125
    ao.SetOccurenceL( MSmlDmDDFObject::EOne );
hgs
parents:
diff changeset
   126
    ao.SetScopeL( MSmlDmDDFObject::EPermanent );
hgs
parents:
diff changeset
   127
    ao.SetDFFormatL( MSmlDmDDFObject::ENode );
hgs
parents:
diff changeset
   128
    ao.AddDFTypeMimeTypeL( KNSmlDmAOAdapterTextPlain );
hgs
parents:
diff changeset
   129
    ao.SetDescriptionL( KNSmlDmAOAdapterAODescription );
hgs
parents:
diff changeset
   130
    accessTypes.Reset();
hgs
parents:
diff changeset
   131
hgs
parents:
diff changeset
   132
    // VENDORCONFIG/Name
hgs
parents:
diff changeset
   133
    MSmlDmDDFObject& name = ao.AddChildObjectL( KNSmlDmAOAdapterName );
hgs
parents:
diff changeset
   134
    
hgs
parents:
diff changeset
   135
    accessTypes.SetGet();
hgs
parents:
diff changeset
   136
    accessTypes.SetReplace();
hgs
parents:
diff changeset
   137
    accessTypes.SetAdd();
hgs
parents:
diff changeset
   138
    
hgs
parents:
diff changeset
   139
    name.SetAccessTypesL( accessTypes );
hgs
parents:
diff changeset
   140
    name.SetOccurenceL( MSmlDmDDFObject::EOne );
hgs
parents:
diff changeset
   141
    name.SetScopeL( MSmlDmDDFObject::EDynamic );
hgs
parents:
diff changeset
   142
    name.SetDFFormatL( MSmlDmDDFObject::EChr );
hgs
parents:
diff changeset
   143
    name.SetDescriptionL( KNSmlDmAOAdapterNameDescription );
hgs
parents:
diff changeset
   144
    accessTypes.Reset();
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    // VENDORCONFIG/AWON-PDPC
hgs
parents:
diff changeset
   147
    MSmlDmDDFObject& awonPdpc = 
hgs
parents:
diff changeset
   148
                          ao.AddChildObjectL( KNSmlDmAOAdapterAwonPdpc );
hgs
parents:
diff changeset
   149
    
hgs
parents:
diff changeset
   150
    accessTypes.SetGet();
hgs
parents:
diff changeset
   151
    accessTypes.SetReplace();
hgs
parents:
diff changeset
   152
    accessTypes.SetAdd();
hgs
parents:
diff changeset
   153
    
hgs
parents:
diff changeset
   154
    awonPdpc.SetAccessTypesL( accessTypes );
hgs
parents:
diff changeset
   155
    awonPdpc.SetOccurenceL( MSmlDmDDFObject::EOne );
hgs
parents:
diff changeset
   156
    awonPdpc.SetScopeL( MSmlDmDDFObject::EDynamic );
hgs
parents:
diff changeset
   157
    awonPdpc.SetDFFormatL( MSmlDmDDFObject::EChr );
hgs
parents:
diff changeset
   158
    awonPdpc.SetDescriptionL( KNSmlDmAOAdapterAwonPdpcDescription );
hgs
parents:
diff changeset
   159
    accessTypes.Reset();
hgs
parents:
diff changeset
   160
        
hgs
parents:
diff changeset
   161
    // VENDORCONFIG/T-RETRY
hgs
parents:
diff changeset
   162
    MSmlDmDDFObject& tRetry = 
hgs
parents:
diff changeset
   163
                          ao.AddChildObjectL( KNSmlDmAOAdapterTRetry );
hgs
parents:
diff changeset
   164
    
hgs
parents:
diff changeset
   165
    accessTypes.SetGet();
hgs
parents:
diff changeset
   166
    accessTypes.SetReplace();
hgs
parents:
diff changeset
   167
    accessTypes.SetAdd();
hgs
parents:
diff changeset
   168
    
hgs
parents:
diff changeset
   169
    tRetry.SetAccessTypesL( accessTypes );
hgs
parents:
diff changeset
   170
    tRetry.SetOccurenceL( MSmlDmDDFObject::EOne );
hgs
parents:
diff changeset
   171
    tRetry.SetScopeL( MSmlDmDDFObject::EDynamic );
hgs
parents:
diff changeset
   172
    tRetry.SetDFFormatL( MSmlDmDDFObject::EChr );
hgs
parents:
diff changeset
   173
    tRetry.SetDescriptionL( KNSmlDmAOAdapterTRetryDescription );
hgs
parents:
diff changeset
   174
    accessTypes.Reset();
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    LOGSTRING( "CNSmlDmAOAdapter::DDFStructureL: End" );    
hgs
parents:
diff changeset
   177
    }
hgs
parents:
diff changeset
   178
hgs
parents:
diff changeset
   179
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   180
// CNSmlDmAOAdapter::UpdateLeafObjectL
hgs
parents:
diff changeset
   181
// Adds or updates leaf node value. 
hgs
parents:
diff changeset
   182
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   183
void CNSmlDmAOAdapter::UpdateLeafObjectL( const TDesC8& aURI, 
hgs
parents:
diff changeset
   184
                                          const TDesC8& aLUID, 
hgs
parents:
diff changeset
   185
                                          const TDesC8& aObject, 
hgs
parents:
diff changeset
   186
                                          const TDesC8& /*aType*/, 
hgs
parents:
diff changeset
   187
                                          TInt aStatusRef )
hgs
parents:
diff changeset
   188
    {
hgs
parents:
diff changeset
   189
    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: Start" );
hgs
parents:
diff changeset
   190
    LOGSTRING4( "\tUpdateLeafObjectL  \tURI: %S, \n\tLUID: %S,\
hgs
parents:
diff changeset
   191
                         \tobject: %S ", 
hgs
parents:
diff changeset
   192
                        &aURI, &aLUID, &aObject );
hgs
parents:
diff changeset
   193
        
hgs
parents:
diff changeset
   194
	// execute command and return status  
hgs
parents:
diff changeset
   195
    CSmlDmAOCommandElement* cmd = 
hgs
parents:
diff changeset
   196
    CSmlDmAOCommandElement::NewLC( ETrue, 
hgs
parents:
diff changeset
   197
                                   aStatusRef,
hgs
parents:
diff changeset
   198
                                   KNSmlDmAOInvalidRef, 
hgs
parents:
diff changeset
   199
                                   CNSmlDmAOAdapter::EAddCmd,
hgs
parents:
diff changeset
   200
                                   LastURISeg( aURI ), 
hgs
parents:
diff changeset
   201
                                   aObject);
hgs
parents:
diff changeset
   202
    
hgs
parents:
diff changeset
   203
    TInt luid( KDefaultLuid );
hgs
parents:
diff changeset
   204
    
hgs
parents:
diff changeset
   205
    if ( aLUID.Length() > 0 )
hgs
parents:
diff changeset
   206
        {
hgs
parents:
diff changeset
   207
        luid = DesToIntL( aLUID );    
hgs
parents:
diff changeset
   208
        }
hgs
parents:
diff changeset
   209
                                                                                                     
hgs
parents:
diff changeset
   210
    iSettingStore->ExecuteCmdL( *cmd, luid );    
hgs
parents:
diff changeset
   211
    
hgs
parents:
diff changeset
   212
    LOGSTRING2( "\tCmd executed with status: %d", 
hgs
parents:
diff changeset
   213
                          cmd->Status() );
hgs
parents:
diff changeset
   214
    Callback().SetStatusL( aStatusRef, cmd->Status() );     
hgs
parents:
diff changeset
   215
    CleanupStack::PopAndDestroy( cmd );                
hgs
parents:
diff changeset
   216
        
hgs
parents:
diff changeset
   217
    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: End" );    
hgs
parents:
diff changeset
   218
    }
hgs
parents:
diff changeset
   219
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   220
// CNSmlDmAOAdapter::DeleteObjectL
hgs
parents:
diff changeset
   221
// Not supported
hgs
parents:
diff changeset
   222
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
void CNSmlDmAOAdapter::DeleteObjectL( const TDesC8& /*aURI*/, 
hgs
parents:
diff changeset
   225
                                      const TDesC8& /*aLUID*/,
hgs
parents:
diff changeset
   226
						              TInt aStatusRef )
hgs
parents:
diff changeset
   227
    {
hgs
parents:
diff changeset
   228
    LOGSTRING( "CNSmlDmAOAdapter::DeleteObjectL: Start" );
hgs
parents:
diff changeset
   229
    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError); 
hgs
parents:
diff changeset
   230
    LOGSTRING( "CNSmlDmAOAdapter::DeleteObjectL: End" );
hgs
parents:
diff changeset
   231
    }
hgs
parents:
diff changeset
   232
    
hgs
parents:
diff changeset
   233
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   234
// CNSmlDmAOAdapter::FetchLeafObjectL
hgs
parents:
diff changeset
   235
// Fetches leaf object value.
hgs
parents:
diff changeset
   236
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   237
void CNSmlDmAOAdapter::FetchLeafObjectL( const TDesC8& aURI, 
hgs
parents:
diff changeset
   238
                                         const TDesC8& aLUID, 
hgs
parents:
diff changeset
   239
                                         const TDesC8& /*aType*/, 
hgs
parents:
diff changeset
   240
                                         const TInt aResultsRef, 
hgs
parents:
diff changeset
   241
                                         const TInt aStatusRef )
hgs
parents:
diff changeset
   242
    {
hgs
parents:
diff changeset
   243
    LOGSTRING( "NSmlDmAOAdapter::FetchLeafObjectL: Start" );
hgs
parents:
diff changeset
   244
    LOGSTRING3( "\tFetchLeafObjectL  \tURI: %S, \tLUID: %S,", 
hgs
parents:
diff changeset
   245
                        &aURI, &aLUID );
hgs
parents:
diff changeset
   246
    
hgs
parents:
diff changeset
   247
    CSmlDmAOCommandElement* cmd = 
hgs
parents:
diff changeset
   248
    CSmlDmAOCommandElement::NewLC( ETrue, 
hgs
parents:
diff changeset
   249
                                   aStatusRef, 
hgs
parents:
diff changeset
   250
                                   aResultsRef, 
hgs
parents:
diff changeset
   251
                                   CNSmlDmAOAdapter::EGetCmd,
hgs
parents:
diff changeset
   252
                                   LastURISeg( aURI ), 
hgs
parents:
diff changeset
   253
                                   KNullDesC8);
hgs
parents:
diff changeset
   254
hgs
parents:
diff changeset
   255
    TInt luid( KDefaultLuid );
hgs
parents:
diff changeset
   256
    
hgs
parents:
diff changeset
   257
    if ( aLUID.Length() > 0 )
hgs
parents:
diff changeset
   258
        {
hgs
parents:
diff changeset
   259
        luid = DesToIntL( aLUID );    
hgs
parents:
diff changeset
   260
        }
hgs
parents:
diff changeset
   261
        
hgs
parents:
diff changeset
   262
    iSettingStore->ExecuteCmdL( *cmd, luid );
hgs
parents:
diff changeset
   263
    LOGSTRING2( "\tCmd executed with status: %d ", 
hgs
parents:
diff changeset
   264
                          cmd->Status() );
hgs
parents:
diff changeset
   265
hgs
parents:
diff changeset
   266
    // if executed return status
hgs
parents:
diff changeset
   267
    if ( cmd->Executed() ) 
hgs
parents:
diff changeset
   268
        {
hgs
parents:
diff changeset
   269
        Callback().SetStatusL( aStatusRef, cmd->Status() );            
hgs
parents:
diff changeset
   270
        // if successful set results
hgs
parents:
diff changeset
   271
        if ( cmd->Status() == CSmlDmAdapter::EOk )
hgs
parents:
diff changeset
   272
            {
hgs
parents:
diff changeset
   273
            LOGSTRING2( "\tCmd executed with result: %S ", 
hgs
parents:
diff changeset
   274
                                  cmd->Data() );
hgs
parents:
diff changeset
   275
            CBufBase* result = CBufFlat::NewL( cmd->Data()->Size() );
hgs
parents:
diff changeset
   276
            CleanupStack::PushL( result );
hgs
parents:
diff changeset
   277
            result->InsertL( 0, *cmd->Data() );
hgs
parents:
diff changeset
   278
            Callback().SetResultsL( aResultsRef, *result, KNullDesC8 );
hgs
parents:
diff changeset
   279
            CleanupStack::PopAndDestroy( result );
hgs
parents:
diff changeset
   280
            }
hgs
parents:
diff changeset
   281
        }
hgs
parents:
diff changeset
   282
    else
hgs
parents:
diff changeset
   283
        {
hgs
parents:
diff changeset
   284
        // failed to execute command
hgs
parents:
diff changeset
   285
        Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
hgs
parents:
diff changeset
   286
        }
hgs
parents:
diff changeset
   287
    CleanupStack::PopAndDestroy( cmd );
hgs
parents:
diff changeset
   288
    
hgs
parents:
diff changeset
   289
    
hgs
parents:
diff changeset
   290
    LOGSTRING( "NSmlDmAOAdapter::FetchLeafObjectL: End" );
hgs
parents:
diff changeset
   291
    }
hgs
parents:
diff changeset
   292
hgs
parents:
diff changeset
   293
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   294
//  CNSmlDmAOAdapter::FetchLeafObjectSizeL
hgs
parents:
diff changeset
   295
//  Fetches leaf object size.
hgs
parents:
diff changeset
   296
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   297
void CNSmlDmAOAdapter::FetchLeafObjectSizeL( const TDesC8& aURI, 
hgs
parents:
diff changeset
   298
                                             const TDesC8& aLUID,
hgs
parents:
diff changeset
   299
									         const TDesC8& /* aType */, 
hgs
parents:
diff changeset
   300
									         TInt aResultsRef,
hgs
parents:
diff changeset
   301
									         TInt aStatusRef )
hgs
parents:
diff changeset
   302
    {
hgs
parents:
diff changeset
   303
    LOGSTRING( "CNSmlDmAOAdapter::FetchLeafObjectSizeL: Start" );
hgs
parents:
diff changeset
   304
    LOGSTRING3( "\tFetchLeafObjectSizeL  \tURI: %S, \tLUID: %S,", 
hgs
parents:
diff changeset
   305
                         &aURI, &aLUID );
hgs
parents:
diff changeset
   306
   
hgs
parents:
diff changeset
   307
    CSmlDmAOCommandElement* cmd = 
hgs
parents:
diff changeset
   308
    CSmlDmAOCommandElement::NewLC( ETrue, 
hgs
parents:
diff changeset
   309
                                   aStatusRef, 
hgs
parents:
diff changeset
   310
                                   aResultsRef, 
hgs
parents:
diff changeset
   311
                                   CNSmlDmAOAdapter::EGetSizeCmd,
hgs
parents:
diff changeset
   312
                                   LastURISeg( aURI ), 
hgs
parents:
diff changeset
   313
                                   KNullDesC8);
hgs
parents:
diff changeset
   314
                                   
hgs
parents:
diff changeset
   315
    TInt luid( KDefaultLuid );
hgs
parents:
diff changeset
   316
    
hgs
parents:
diff changeset
   317
    if ( aLUID.Length() > 0 )
hgs
parents:
diff changeset
   318
        {
hgs
parents:
diff changeset
   319
        luid = DesToIntL( aLUID );    
hgs
parents:
diff changeset
   320
        }
hgs
parents:
diff changeset
   321
                                       
hgs
parents:
diff changeset
   322
    iSettingStore->ExecuteCmdL( *cmd, luid );
hgs
parents:
diff changeset
   323
    
hgs
parents:
diff changeset
   324
    LOGSTRING2( "\tCmd executed with status: %d ", 
hgs
parents:
diff changeset
   325
                          cmd->Status() );
hgs
parents:
diff changeset
   326
    // if executed get status
hgs
parents:
diff changeset
   327
    if ( cmd->Executed() ) 
hgs
parents:
diff changeset
   328
        {
hgs
parents:
diff changeset
   329
        Callback().SetStatusL( aStatusRef, cmd->Status() );            
hgs
parents:
diff changeset
   330
        // if successful get results
hgs
parents:
diff changeset
   331
        if ( cmd->Status() == CSmlDmAdapter::EOk )
hgs
parents:
diff changeset
   332
            {
hgs
parents:
diff changeset
   333
            LOGSTRING2( "\tCmd executed with result: %S ", 
hgs
parents:
diff changeset
   334
                                  cmd->Data() );
hgs
parents:
diff changeset
   335
            CBufBase* result = CBufFlat::NewL( cmd->Data()->Size() );
hgs
parents:
diff changeset
   336
            CleanupStack::PushL( result );
hgs
parents:
diff changeset
   337
            result->InsertL( 0, *cmd->Data() );
hgs
parents:
diff changeset
   338
            Callback().SetResultsL( aResultsRef, *result, KNullDesC8 );
hgs
parents:
diff changeset
   339
            CleanupStack::PopAndDestroy( result );
hgs
parents:
diff changeset
   340
            }
hgs
parents:
diff changeset
   341
        }
hgs
parents:
diff changeset
   342
    else
hgs
parents:
diff changeset
   343
        {
hgs
parents:
diff changeset
   344
        // failed to execute command
hgs
parents:
diff changeset
   345
        Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );
hgs
parents:
diff changeset
   346
        }
hgs
parents:
diff changeset
   347
    
hgs
parents:
diff changeset
   348
    CleanupStack::PopAndDestroy( cmd );
hgs
parents:
diff changeset
   349
        
hgs
parents:
diff changeset
   350
    LOGSTRING( "CNSmlDmAOAdapter::FetchLeafObjectSizeL: End" );
hgs
parents:
diff changeset
   351
    }
hgs
parents:
diff changeset
   352
hgs
parents:
diff changeset
   353
// ------------------------------------------------------------------------
hgs
parents:
diff changeset
   354
//  CNSmlDmAOAdapter::ChildURIListL
hgs
parents:
diff changeset
   355
//  Fetches child nodes of a node. these may be either all VENDORCONFIG 
hgs
parents:
diff changeset
   356
//  nodes or leaf nodes under a VENDORCONFIG node. 
hgs
parents:
diff changeset
   357
// ------------------------------------------------------------------------
hgs
parents:
diff changeset
   358
void CNSmlDmAOAdapter::ChildURIListL( const TDesC8& aURI, 
hgs
parents:
diff changeset
   359
                                      const TDesC8& aLUID,
hgs
parents:
diff changeset
   360
					                  const CArrayFix<TSmlDmMappingInfo>& 
hgs
parents:
diff changeset
   361
					                  /*aPreviousURISegmentList*/,
hgs
parents:
diff changeset
   362
					                  TInt aResultsRef, 
hgs
parents:
diff changeset
   363
					                  TInt aStatusRef )
hgs
parents:
diff changeset
   364
    {
hgs
parents:
diff changeset
   365
    LOGSTRING( "CNSmlDmAOAdapter::ChildURIListL: Start" );
hgs
parents:
diff changeset
   366
    LOGSTRING3( "\tChildURIListL  URI: %S, LUID: %S ", 
hgs
parents:
diff changeset
   367
                        &aURI, &aLUID );
hgs
parents:
diff changeset
   368
    
hgs
parents:
diff changeset
   369
    CBufBase* resultList = CBufFlat::NewL( KSmlMaxURISegLen );
hgs
parents:
diff changeset
   370
    CleanupStack::PushL( resultList );
hgs
parents:
diff changeset
   371
	
hgs
parents:
diff changeset
   372
	// get all leaf nodes below VENDORCONFIG node
hgs
parents:
diff changeset
   373
    if ( !aURI.Compare( KNSmlDmAOAdapterAO ) )
hgs
parents:
diff changeset
   374
        {        
hgs
parents:
diff changeset
   375
        CSmlDmAOCommandElement* cmd = 
hgs
parents:
diff changeset
   376
        CSmlDmAOCommandElement::NewLC( EFalse, 
hgs
parents:
diff changeset
   377
                                       aStatusRef,
hgs
parents:
diff changeset
   378
                                       aResultsRef, 
hgs
parents:
diff changeset
   379
                                       CNSmlDmAOAdapter::EGetCmd, 
hgs
parents:
diff changeset
   380
                                       KNullDesC8, 
hgs
parents:
diff changeset
   381
                                       KNullDesC8 );
hgs
parents:
diff changeset
   382
                                       
hgs
parents:
diff changeset
   383
        TInt luid( KDefaultLuid );
hgs
parents:
diff changeset
   384
    
hgs
parents:
diff changeset
   385
        if ( aLUID.Length() > 0 )
hgs
parents:
diff changeset
   386
            {
hgs
parents:
diff changeset
   387
            luid = DesToIntL( aLUID );    
hgs
parents:
diff changeset
   388
            }
hgs
parents:
diff changeset
   389
                                           
hgs
parents:
diff changeset
   390
        iSettingStore->ExecuteCmdL( *cmd, luid );
hgs
parents:
diff changeset
   391
        
hgs
parents:
diff changeset
   392
        LOGSTRING2( "\tCmd executed with status: %d ", 
hgs
parents:
diff changeset
   393
                              cmd->Status() );
hgs
parents:
diff changeset
   394
   
hgs
parents:
diff changeset
   395
        Callback().SetStatusL( aStatusRef, cmd->Status() );
hgs
parents:
diff changeset
   396
        if( cmd->Status() == CSmlDmAdapter::EOk )
hgs
parents:
diff changeset
   397
            {
hgs
parents:
diff changeset
   398
            resultList->InsertL( 0, *cmd->Data() );
hgs
parents:
diff changeset
   399
            Callback().SetResultsL( aResultsRef, 
hgs
parents:
diff changeset
   400
                                    *resultList, 
hgs
parents:
diff changeset
   401
                                    KNullDesC8 );
hgs
parents:
diff changeset
   402
            } 
hgs
parents:
diff changeset
   403
   
hgs
parents:
diff changeset
   404
        CleanupStack::PopAndDestroy( cmd );               
hgs
parents:
diff changeset
   405
        }        
hgs
parents:
diff changeset
   406
   
hgs
parents:
diff changeset
   407
    CleanupStack::PopAndDestroy( resultList );
hgs
parents:
diff changeset
   408
    LOGSTRING( "CNSmlDmAOAdapter::ChildURIListL: End" );
hgs
parents:
diff changeset
   409
    }
hgs
parents:
diff changeset
   410
 
hgs
parents:
diff changeset
   411
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   412
//  CNSmlDmAOAdapter::AddNodeObjectL
hgs
parents:
diff changeset
   413
//  Not supported
hgs
parents:
diff changeset
   414
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   415
void CNSmlDmAOAdapter::AddNodeObjectL( const TDesC8& /*aURI*/, 
hgs
parents:
diff changeset
   416
                                       const TDesC8& /*aParentLUID*/,
hgs
parents:
diff changeset
   417
								       TInt aStatusRef )
hgs
parents:
diff changeset
   418
    {
hgs
parents:
diff changeset
   419
    LOGSTRING( "CNSmlDmAOAdapter::AddNodeObjectL: Start" );
hgs
parents:
diff changeset
   420
    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);
hgs
parents:
diff changeset
   421
    LOGSTRING( "CNSmlDmAOAdapter::AddNodeObjectL: End" );
hgs
parents:
diff changeset
   422
    }
hgs
parents:
diff changeset
   423
hgs
parents:
diff changeset
   424
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   425
//  CNSmlDmAOAdapter::UpdateLeafObjectL
hgs
parents:
diff changeset
   426
//  Not supported from stream
hgs
parents:
diff changeset
   427
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   428
void CNSmlDmAOAdapter::UpdateLeafObjectL( const TDesC8& /* aURI */, 
hgs
parents:
diff changeset
   429
                                          const TDesC8& /* aLUID */, 
hgs
parents:
diff changeset
   430
                                          RWriteStream*& /* aStream */, 
hgs
parents:
diff changeset
   431
                                          const TDesC8& /* aType */, 
hgs
parents:
diff changeset
   432
                                          TInt aStatusRef )
hgs
parents:
diff changeset
   433
    {
hgs
parents:
diff changeset
   434
    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: Start" );
hgs
parents:
diff changeset
   435
    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);    
hgs
parents:
diff changeset
   436
    LOGSTRING( "CNSmlDmAOAdapter::UpdateLeafObjectL: End" );
hgs
parents:
diff changeset
   437
    }
hgs
parents:
diff changeset
   438
hgs
parents:
diff changeset
   439
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   442
//  CNSmlDmAOAdapter::ExecuteCommandL
hgs
parents:
diff changeset
   443
//  Not supported
hgs
parents:
diff changeset
   444
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   445
void CNSmlDmAOAdapter::ExecuteCommandL( const TDesC8& /* aURI */, 
hgs
parents:
diff changeset
   446
                                        const TDesC8& /* aLUID */, 
hgs
parents:
diff changeset
   447
                                        const TDesC8& /* aArgument */, 
hgs
parents:
diff changeset
   448
                                        const TDesC8& /* aType */, 
hgs
parents:
diff changeset
   449
                                        TInt aStatusRef )
hgs
parents:
diff changeset
   450
    {
hgs
parents:
diff changeset
   451
    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: Start" );
hgs
parents:
diff changeset
   452
    Callback().SetStatusL(aStatusRef, CSmlDmAdapter::EError);    
hgs
parents:
diff changeset
   453
    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: End" );
hgs
parents:
diff changeset
   454
    }
hgs
parents:
diff changeset
   455
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   456
//  CNSmlDmAOAdapter::ExecuteCommandL
hgs
parents:
diff changeset
   457
//  Not supported
hgs
parents:
diff changeset
   458
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   459
void CNSmlDmAOAdapter::ExecuteCommandL( const TDesC8& /* aURI */, 
hgs
parents:
diff changeset
   460
                                        const TDesC8& /* aLUID */, 
hgs
parents:
diff changeset
   461
                                        RWriteStream*& /* aStream */, 
hgs
parents:
diff changeset
   462
                                        const TDesC8& /* aType */, 
hgs
parents:
diff changeset
   463
                                        TInt aStatusRef )
hgs
parents:
diff changeset
   464
    {
hgs
parents:
diff changeset
   465
    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: Start" );
hgs
parents:
diff changeset
   466
    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );    
hgs
parents:
diff changeset
   467
    LOGSTRING( "CNSmlDmAOAdapter::ExecuteCommandL: End" );
hgs
parents:
diff changeset
   468
    }
hgs
parents:
diff changeset
   469
 
hgs
parents:
diff changeset
   470
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   471
//  CNSmlDmAOAdapter::CopyCommandL
hgs
parents:
diff changeset
   472
//  Not supported
hgs
parents:
diff changeset
   473
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   474
void CNSmlDmAOAdapter::CopyCommandL( const TDesC8& /* aTargetURI */ , 
hgs
parents:
diff changeset
   475
                                     const TDesC8& /* aTargetLUID */ , 
hgs
parents:
diff changeset
   476
                                     const TDesC8& /* aSourceURI */ , 
hgs
parents:
diff changeset
   477
                                     const TDesC8& /* aSourceLUID */, 
hgs
parents:
diff changeset
   478
                                     const TDesC8& /* aType */ , 
hgs
parents:
diff changeset
   479
                                     TInt aStatusRef )
hgs
parents:
diff changeset
   480
    {
hgs
parents:
diff changeset
   481
    //not supported
hgs
parents:
diff changeset
   482
    LOGSTRING( "CNSmlDmAOAdapter::CopyCommandL: Sart" );
hgs
parents:
diff changeset
   483
    Callback().SetStatusL( aStatusRef, CSmlDmAdapter::EError );    
hgs
parents:
diff changeset
   484
    LOGSTRING( "CNSmlDmAOAdapter::CopyCommandL: End" );
hgs
parents:
diff changeset
   485
    }
hgs
parents:
diff changeset
   486
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   487
//  CNSmlDmAOAdapter::StartAtomicL
hgs
parents:
diff changeset
   488
//  Not supported
hgs
parents:
diff changeset
   489
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   490
void CNSmlDmAOAdapter::StartAtomicL()
hgs
parents:
diff changeset
   491
    {
hgs
parents:
diff changeset
   492
    LOGSTRING( "CNSmlDmAOAdapter::StartAtomicL: Start" );
hgs
parents:
diff changeset
   493
    LOGSTRING( "CNSmlDmAOAdapter::StartAtomicL: End" );
hgs
parents:
diff changeset
   494
    }
hgs
parents:
diff changeset
   495
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   496
//  CNSmlDmAOAdapter::CommitAtomicL
hgs
parents:
diff changeset
   497
//  Not supported
hgs
parents:
diff changeset
   498
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   499
void CNSmlDmAOAdapter::CommitAtomicL()
hgs
parents:
diff changeset
   500
    {
hgs
parents:
diff changeset
   501
    LOGSTRING( "CNSmlDmAOAdapter::CommitAtomicL: Start" );
hgs
parents:
diff changeset
   502
    LOGSTRING( "CNSmlDmAOAdapter::CommitAtomicL: End" );
hgs
parents:
diff changeset
   503
    }
hgs
parents:
diff changeset
   504
hgs
parents:
diff changeset
   505
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   506
//  CNSmlDmAOAdapter::RollbackAtomicL
hgs
parents:
diff changeset
   507
//  Not supported
hgs
parents:
diff changeset
   508
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   509
void CNSmlDmAOAdapter::RollbackAtomicL()
hgs
parents:
diff changeset
   510
    {
hgs
parents:
diff changeset
   511
    LOGSTRING( "CNSmlDmAOAdapter::RollbackAtomicL: Start" );
hgs
parents:
diff changeset
   512
    LOGSTRING( "CNSmlDmAOAdapter::RollbackAtomicL: End" );
hgs
parents:
diff changeset
   513
    }
hgs
parents:
diff changeset
   514
hgs
parents:
diff changeset
   515
TBool CNSmlDmAOAdapter::StreamingSupport( TInt& /* aItemSize */ )
hgs
parents:
diff changeset
   516
    {
hgs
parents:
diff changeset
   517
    LOGSTRING( "CNSmlDmAOAdapter::StreamingSupport: Start" );
hgs
parents:
diff changeset
   518
    LOGSTRING( "CNSmlDmAOAdapter::StreamingSupport: End" );
hgs
parents:
diff changeset
   519
    return EFalse;
hgs
parents:
diff changeset
   520
    }
hgs
parents:
diff changeset
   521
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   522
//  CNSmlDmAOAdapter::StreamCommittedL
hgs
parents:
diff changeset
   523
//  Not supported
hgs
parents:
diff changeset
   524
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   525
void CNSmlDmAOAdapter::StreamCommittedL()
hgs
parents:
diff changeset
   526
    {
hgs
parents:
diff changeset
   527
    LOGSTRING( "CNSmlDmAOAdapter::StreamCommittedL: Start" );
hgs
parents:
diff changeset
   528
    LOGSTRING( "CNSmlDmAOAdapter::StreamCommittedL: End" );
hgs
parents:
diff changeset
   529
    }
hgs
parents:
diff changeset
   530
hgs
parents:
diff changeset
   531
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   532
// CNSmlDmAOAdapter::CompleteOutstandingCmdsL
hgs
parents:
diff changeset
   533
// Buffering not needed because nodes can't be added
hgs
parents:
diff changeset
   534
// -------------------------------------------------------------------------
hgs
parents:
diff changeset
   535
void CNSmlDmAOAdapter::CompleteOutstandingCmdsL()
hgs
parents:
diff changeset
   536
    {
hgs
parents:
diff changeset
   537
    LOGSTRING( "CNSmlDmAOAdapter::CompleteOutstandingCmdsL: Start");
hgs
parents:
diff changeset
   538
    LOGSTRING( "CNSmlDmAOAdapter::CompleteOutstandingCmdsL: End" );    
hgs
parents:
diff changeset
   539
    }
hgs
parents:
diff changeset
   540
hgs
parents:
diff changeset
   541
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   542
// CNSmlDmAOAdapter::IntToDes8L
hgs
parents:
diff changeset
   543
// Converts integer to 8bit descriptor
hgs
parents:
diff changeset
   544
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   545
HBufC8* CNSmlDmAOAdapter::IntToDes8L( TInt aLuid ) const
hgs
parents:
diff changeset
   546
    {
hgs
parents:
diff changeset
   547
    HBufC8* buf = HBufC8::NewL( 10 ); //10 = max length of 32bit integer
hgs
parents:
diff changeset
   548
    TPtr8 ptrBuf = buf->Des();
hgs
parents:
diff changeset
   549
    ptrBuf.Num( aLuid );
hgs
parents:
diff changeset
   550
    return buf;
hgs
parents:
diff changeset
   551
    }
hgs
parents:
diff changeset
   552
    
hgs
parents:
diff changeset
   553
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   554
// CNSmlDmAOAdapter::DesToIntL
hgs
parents:
diff changeset
   555
// Converts 8bit descriptor to int
hgs
parents:
diff changeset
   556
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   557
TUint CNSmlDmAOAdapter::DesToIntL( const TDesC8& aLuid ) const
hgs
parents:
diff changeset
   558
    {
hgs
parents:
diff changeset
   559
    TLex8 lex( aLuid );
hgs
parents:
diff changeset
   560
    TUint value( 0 );
hgs
parents:
diff changeset
   561
    User::LeaveIfError( lex.Val( value ) );
hgs
parents:
diff changeset
   562
    return value;
hgs
parents:
diff changeset
   563
    }        
hgs
parents:
diff changeset
   564
hgs
parents:
diff changeset
   565
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   566
// CNSmlDmAOAdapter::LastURISeg
hgs
parents:
diff changeset
   567
// Returns the last uri segemnt of a uri. 
hgs
parents:
diff changeset
   568
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   569
TPtrC8 CNSmlDmAOAdapter::LastURISeg( const TDesC8& aURI ) const
hgs
parents:
diff changeset
   570
    {
hgs
parents:
diff changeset
   571
    TInt i;
hgs
parents:
diff changeset
   572
    for ( i=aURI.Length()-1; i >= 0; i-- )
hgs
parents:
diff changeset
   573
        {
hgs
parents:
diff changeset
   574
        if ( aURI[i]=='/' )
hgs
parents:
diff changeset
   575
            {
hgs
parents:
diff changeset
   576
            break;
hgs
parents:
diff changeset
   577
            }
hgs
parents:
diff changeset
   578
        }
hgs
parents:
diff changeset
   579
        
hgs
parents:
diff changeset
   580
    if ( i==0 )
hgs
parents:
diff changeset
   581
        {
hgs
parents:
diff changeset
   582
        return aURI;
hgs
parents:
diff changeset
   583
        }
hgs
parents:
diff changeset
   584
    else
hgs
parents:
diff changeset
   585
        {
hgs
parents:
diff changeset
   586
        return aURI.Mid( i + 1 );
hgs
parents:
diff changeset
   587
        }
hgs
parents:
diff changeset
   588
    }
hgs
parents:
diff changeset
   589
hgs
parents:
diff changeset
   590
hgs
parents:
diff changeset
   591
//---------------------- CSmlDmAOCommandElement -------------------------//
hgs
parents:
diff changeset
   592
hgs
parents:
diff changeset
   593
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   594
// CSmlDmAOCommandElement* CSmlDmAOCommandElement::NewLC
hgs
parents:
diff changeset
   595
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   596
hgs
parents:
diff changeset
   597
CSmlDmAOCommandElement* CSmlDmAOCommandElement::NewLC( TBool aLeaf,
hgs
parents:
diff changeset
   598
                                                       TInt aStatusRef, 
hgs
parents:
diff changeset
   599
                                                       TInt aResultRef, 
hgs
parents:
diff changeset
   600
                                                       CNSmlDmAOAdapter::TCommandType aCmdType,
hgs
parents:
diff changeset
   601
                                                       const TDesC8& aLastUriSeg, 
hgs
parents:
diff changeset
   602
                                                       const TDesC8& aData )
hgs
parents:
diff changeset
   603
    {
hgs
parents:
diff changeset
   604
    CSmlDmAOCommandElement* self = new (ELeave) CSmlDmAOCommandElement( aLeaf, 
hgs
parents:
diff changeset
   605
                                                                        aStatusRef, 
hgs
parents:
diff changeset
   606
                                                                        aResultRef, 
hgs
parents:
diff changeset
   607
                                                                        aCmdType );
hgs
parents:
diff changeset
   608
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
   609
    self->ConstructL( aLastUriSeg, aData );
hgs
parents:
diff changeset
   610
    return self;
hgs
parents:
diff changeset
   611
    }    
hgs
parents:
diff changeset
   612
    
hgs
parents:
diff changeset
   613
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   614
// CSmlDmAOCommandElement::~CSmlDmAOCommandElement
hgs
parents:
diff changeset
   615
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   616
CSmlDmAOCommandElement::~CSmlDmAOCommandElement()
hgs
parents:
diff changeset
   617
    {
hgs
parents:
diff changeset
   618
    delete iLastUriSeg;
hgs
parents:
diff changeset
   619
    delete iData;
hgs
parents:
diff changeset
   620
    }
hgs
parents:
diff changeset
   621
    
hgs
parents:
diff changeset
   622
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   623
// CSmlDmAOCommandElement::CSmlDmAOCommandElement
hgs
parents:
diff changeset
   624
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   625
CSmlDmAOCommandElement::CSmlDmAOCommandElement( TBool aLeaf,
hgs
parents:
diff changeset
   626
                                                TInt aStatusRef, 
hgs
parents:
diff changeset
   627
                                                TInt aResultRef, 
hgs
parents:
diff changeset
   628
                                                CNSmlDmAOAdapter::TCommandType  aCmdType )
hgs
parents:
diff changeset
   629
                                                : iStatus( CSmlDmAdapter::EError ),
hgs
parents:
diff changeset
   630
                                                iLeaf( aLeaf ),
hgs
parents:
diff changeset
   631
                                                iStatusRef( aStatusRef ),
hgs
parents:
diff changeset
   632
                                                iResultRef( aResultRef ),
hgs
parents:
diff changeset
   633
                                                iCmdType( aCmdType ),
hgs
parents:
diff changeset
   634
                                                iData( NULL )
hgs
parents:
diff changeset
   635
                                                
hgs
parents:
diff changeset
   636
    {
hgs
parents:
diff changeset
   637
    }
hgs
parents:
diff changeset
   638
hgs
parents:
diff changeset
   639
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   640
// CSmlDmAOCommandElement::ConstructL
hgs
parents:
diff changeset
   641
// --------------------------------------------------------------------------
hgs
parents:
diff changeset
   642
void CSmlDmAOCommandElement::ConstructL( const TDesC8& aLastUriSeg, 
hgs
parents:
diff changeset
   643
                                         const TDesC8& aData )
hgs
parents:
diff changeset
   644
    {
hgs
parents:
diff changeset
   645
    iLastUriSeg = aLastUriSeg.AllocL();    
hgs
parents:
diff changeset
   646
    iData = aData.AllocL();
hgs
parents:
diff changeset
   647
    }