omadm/omadmextensions/adapters/fota/src/nsmldmfotaadapterdb.cpp
changeset 18 7d11f9a6646f
parent 4 75a71fdb4c92
child 21 c707676bf59f
--- a/omadm/omadmextensions/adapters/fota/src/nsmldmfotaadapterdb.cpp	Tue Feb 02 00:03:17 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,881 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Fota adapter's DB implementation file
-*
-*/
-
-
-
-
-
-// INCLUDE FILES
-#include <sysutil.h>
-#include <bautils.h>
-
-#include "nsmldmfotaadapterdb.h"
-#include "nsmlconstants.h"
-#include "nsmldebug.h"
-
-#ifndef __WINS__
-                                    // This lowers the unnecessary compiler warning (armv5) to remark.
-                                    // "Warning: #174-D: expression has no effect..." is caused by 
-                                    // DBG_ARGS8 macro in no-debug builds.
-#pragma diag_remark 174
-#endif
-
-// ============================ MEMBER FUNCTIONS =============================
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::NewL()
-//  Creates a new instance of CNSmlDmFotaAdapterDb object.
-// ---------------------------------------------------------------------------
-// 
-CNSmlDmFotaAdapterDb* CNSmlDmFotaAdapterDb::NewL()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::NewL(): begin");
-    
-    CNSmlDmFotaAdapterDb* self = CNSmlDmFotaAdapterDb::NewLC(); 
-    CleanupStack::Pop( self );
-
-    _DBG_FILE("CNSmlDmFotaAdapterDb::NewL(): end");
-    
-    return self;
-    }   
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::NewLC()
-//  Creates a new instance of CNSmlDmFotaAdapterDb object. 
-//  Pushes and leaves new instance onto CleanupStack.
-// ---------------------------------------------------------------------------
-// 
-CNSmlDmFotaAdapterDb* CNSmlDmFotaAdapterDb::NewLC()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::NewLC(): begin");
-    
-    CNSmlDmFotaAdapterDb* self = new( ELeave ) CNSmlDmFotaAdapterDb();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::NewLC(): end");
-    
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::ConstructL()
-//  Second phase constructor.
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::ConstructL()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::ConstructL(): begin");
-    
-    User::LeaveIfError( iFsSession.Connect() );
-    User::LeaveIfError( iRdbSession.Connect() );
-    iFsSession.SetSessionToPrivate( KNSmlFotaAdapterDbDrive );
-
-    TParse name;
-
-#ifdef SYMBIAN_SECURE_DBMS
-	name.Set( KNSmlFotaAdapterDbName(), NULL, NULL );
-#else
-    name.Set( KNSmlFotaAdapterDbName(), KNSmlDatabasesNonSecurePath, NULL );
-#endif
-
-	TInt err = iDatabase.Open( iRdbSession,
-	                           name.FullName(),
-	                           KNSmlDBMSSecureMDHostOneID );
-    if ( err == KErrNotFound )
-        {
-        CreateDatabaseL( name.FullName() );
-        err = iDatabase.Open( iRdbSession,
-                              name.FullName(),
-                              KNSmlDBMSSecureMDHostOneID );
-        User::LeaveIfError( err );
-        }
-    else
-        {
-        
-        if ( ( err == KErrEof ) || ( err == KErrCorrupt ) || 
-             ( err == KErrArgument ) )
-            {
-            // something seriously wrong with the db, delete it and try 
-            // to create new
-            iRdbSession.DeleteDatabase( name.FullName(),
-                                        KNSmlDMHostOnePolicyUID );
-            CreateDatabaseL( name.FullName() );
-            err = iDatabase.Open( iRdbSession,
-                                  name.FullName(),
-                                  KNSmlDBMSSecureMDHostOneID );
-            }
-        
-        User::LeaveIfError( err );
-        }
-
-    User::LeaveIfError( iFwObjectTable.Open( iDatabase,
-                                             KNSmlTableFwMgmtObject ) );
-    iColSet = iFwObjectTable.ColSetL();
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::ConstructL(): end");
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::CNSmlDmFotaAdapterDb()
-//  Constructor.
-// ---------------------------------------------------------------------------
-// 
-CNSmlDmFotaAdapterDb::CNSmlDmFotaAdapterDb()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::CNSmlDmFotaAdapterDb(): begin");
-    _DBG_FILE("CNSmlDmFotaAdapterDb::CNSmlDmFotaAdapterDb(): end");
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::~CNSmlDmFotaAdapterDb()
-//  Destructor.
-// ---------------------------------------------------------------------------
-// 
-CNSmlDmFotaAdapterDb::~CNSmlDmFotaAdapterDb()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::~CNSmlDmFotaAdapterDb(): begin");
-
-    iView.Close();
-    
-    delete iColSet;
-    iFwObjectTable.Close();
-        
-    iDatabase.Close();
-    iFsSession.Close();
-    iRdbSession.Close();
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::~CNSmlDmFotaAdapterDb(): ends");
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::AddFwObjectL()
-//  Inserts new uninitialized row to FwMgmtObject table and returns its id.
-// ---------------------------------------------------------------------------
-// 
-TNSmlDmFwObjectId CNSmlDmFotaAdapterDb::AddFwObjectL()
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::AddFwObjectL(): begin");
-    
-    // Check OOD before inserting new row into FwMgmtObject table
-    if ( SysUtil::FFSSpaceBelowCriticalLevelL( &iFsSession, 
-                                               KNSmlMaxFwMgmtObjectRowSize ) )
-        {
-        User::Leave( KErrDiskFull );
-        }
-    
-    iDatabase.Begin();
-    
-    // Insert new row, and set finalt result to its null value
-    iFwObjectTable.InsertL();
-    iFwObjectTable.SetColL( iColSet->ColNo( KNSmlFwMgmtObjectResult ), 
-                            KNSmlFotaNullResult );
-    iFwObjectTable.PutL();
-    
-    CommitAndCompact();
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::AddFwObjectL(): end");
-    
-    return iFwObjectTable.ColUint( iColSet->ColNo( KNSmlFwMgmtObjectId ) );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::DeleteFwObjectL()
-//  Deletes a row from FwMgmtObject table identified by aId. If such row is 
-//  not found, returns KErrNotFound, KErrNone otherwise.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::DeleteFwObjectL( const TNSmlDmFwObjectId aId )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::DeleteFwObjectL(): begin");
-    
-    HBufC* sql = HBufC::NewL( KNSmlDeleteFwMgmtObject().Length() + 
-                              KNSmlFwMgmtObjectIntegerLength );
-    sql->Des().Format( KNSmlDeleteFwMgmtObject, aId );
-    
-    iDatabase.Begin();
-    TInt result = iDatabase.Execute( *sql );
-    CommitAndCompact();
-    
-    delete sql;
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::DeleteFwObjectL(): end");
-    
-    return ( result == 0 ) ? KErrNotFound : KErrNone;
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL()
-//  Finds all the rows in FwMgmtObject table that have null final result and
-//  puts the PkgIds of those rows to aArray.
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL( RNSmlDmFwObjectArray& aArray )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL(): begin");
-    
-    aArray.Reset();
-    
-    HBufC* sql = HBufC::NewLC( KNSmlGetUnfinishedFwMgmtObjects().Length() + 
-                               KNSmlFwMgmtObjectIntLength );
-    sql->Des().Format( KNSmlGetUnfinishedFwMgmtObjects, KNSmlFotaNullResult );
-    
-    PrepareViewL( *sql, iView.EReadOnly );
-
-    CleanupStack::PopAndDestroy( sql );
-    
-    while ( iView.NextL() )
-        {
-        // get final result and append it to aArray
-        iView.GetL();
-        aArray.AppendL( iView.ColUint( 
-                        iColSet->ColNo( KNSmlFwMgmtObjectId ) ) );
-        }
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL(): end");
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL()
-//  Finds all the rows in FwMgmtObject table that have null final result, 
-//  server id equals to aServerId and management uri is not an empty string.
-//  Puts the PkgIds of those rows to aArray.
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL( RNSmlDmFwObjectArray& aArray, 
-                                                  const TDesC8& aServerId )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL(serverid): begin");
-    
-    aArray.Reset();
-    
-    HBufC* serverId = ConvertTo16BitLC( aServerId );
-    
-    HBufC* sql = HBufC::NewLC( 
-                        KNSmlGetUnfinishedFwMgmtObjectByServerId().Length() + 
-                        KNSmlFwMgmtObjectIntLength + 
-                        serverId->Length() );
-    
-    sql->Des().Format( KNSmlGetUnfinishedFwMgmtObjectByServerId, 
-                       KNSmlFotaNullResult, 
-                       serverId );
-    
-    PrepareViewL( *sql, iView.EReadOnly );
-
-    CleanupStack::PopAndDestroy( sql );
-    CleanupStack::PopAndDestroy( serverId );
-    
-    while ( iView.NextL() )
-        {
-        // get final result and append it to aArray
-        iView.GetL();
-        aArray.AppendL( iView.ColUint( 
-                        iColSet->ColNo( KNSmlFwMgmtObjectId ) ) );
-        }
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::GetEmptyFinalResultsL( serverid ): end");
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::PkgNameL()
-//  Returns the PkgName field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::PkgNameL( const TNSmlDmFwObjectId aId )
-    {
-    return StrValueL( KNSmlFwMgmtObjectName, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::PkgVersionL()
-//  Returns the PkgVersion field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::PkgVersionL( const TNSmlDmFwObjectId aId )
-    {
-    return StrValueL( KNSmlFwMgmtObjectVersion, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::PkgUrlL()
-//  Returns the PkgUrl field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::PkgUrlL( const TNSmlDmFwObjectId aId )
-    {
-    return LongStrValueL( KNSmlFwMgmtObjectUrl, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::MgmtUriL()
-//  Returns the MgmtUri field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::MgmtUriL( const TNSmlDmFwObjectId aId )
-    {
-    return StrValueL( KNSmlFwMgmtObjectMgmtUri, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::ProfileIdL()
-//  Returns the ProfileId field from FW object identified by aId. If no such 
-//  object is found, returns KErrNotFound.
-// ---------------------------------------------------------------------------
-// 
-TSmlProfileId CNSmlDmFotaAdapterDb::ProfileIdL( const TNSmlDmFwObjectId aId )
-    {
-    return IntValueL( KNSmlFwMgmtObjectProfileId, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::ServerIdL()
-//  Returns the ServerId field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::ServerIdL( const TNSmlDmFwObjectId aId )
-    {
-    return StrValueL( KNSmlFwMgmtObjectServerId, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::FinalResultL()
-//  Returns the FinalResult field from FW object identified by aId. If no such 
-//  object is found, returns KErrNotFound.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::FinalResultL( const TNSmlDmFwObjectId aId )
-    {
-    return IntValueL( KNSmlFwMgmtObjectResult, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::CorrelatorL()
-//  Returns the Correlator field from FW object identified by aId. If no such 
-//  object is found, returns NULL.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::CorrelatorL( const TNSmlDmFwObjectId aId )
-    {
-    return StrValueL( KNSmlFwMgmtObjectCorrelator, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetPkgNameL()
-//  Sets aName as the value of PkgName in FW object identified by aId. If no 
-//  such object is found, returns KErrNotFound. If name is too large for the 
-//  database, returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetPkgNameL( const TDesC8& aName, 
-                                        const TNSmlDmFwObjectId aId )
-    {
-    if ( aName.Length() > KFotaMaxPkgNameLength )
-        {
-        return KErrOverflow;
-        }
-    
-    return SetStrValueL( KNSmlFwMgmtObjectName, aName, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetPkgVersionL()
-//  Sets aVersion as the value of PkgVersion in FW object identified by aId.
-//  If no such object is found, returns KErrNotFound. If version is too 
-//  large for the database, returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetPkgVersionL( const TDesC8& aVersion, 
-                                           const TNSmlDmFwObjectId aId )
-    {
-    if ( aVersion.Length() > KFotaMaxPkgVersionLength )
-        {
-        return KErrOverflow;
-        }
-    
-    return SetStrValueL( KNSmlFwMgmtObjectVersion, aVersion, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetPkgUrlL()
-//  Sets aUrl as the value of PkgURL in FW object identified by aId. If no 
-//  such object is found, returns KErrNotFound. If url is too large for the 
-//  database, returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetPkgUrlL( const TDesC8& aUrl, 
-                                       const TNSmlDmFwObjectId aId )
-    {
-    if ( aUrl.Length() > KFotaMaxPkgURLLength )
-        {
-        return KErrOverflow;
-        }
-    
-    return SetLongStrValueL( KNSmlFwMgmtObjectUrl, aUrl, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetMgmtUriL()
-//  Sets aUri as the value of MgmtURI in FW object identified by aId. If no 
-//  such object is found, returns KErrNotFound. If uri is too large for the 
-//  database, returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetMgmtUriL( const TDesC8& aUri, 
-                                        const TNSmlDmFwObjectId aId )
-    {
-    if ( aUri.Length() > KNSmlMaxMgmtUriLength )
-        {
-        return KErrOverflow;
-        }
-    
-    return SetStrValueL( KNSmlFwMgmtObjectMgmtUri, aUri, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetServerInfoL()
-//  Sets aProfileId as the value of ProfileId and aServerId as the value of 
-//  ServerId in FW object identified by aId. If no such object is found, 
-//  returns KErrNotFound. If server id is too large for the database, 
-//  returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetServerInfoL( const TSmlProfileId aProfile, 
-                                           const TDesC8& aServerId, 
-                                           const TNSmlDmFwObjectId aId )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetServerInfoL(): begin");
-    
-    if ( aServerId.Length() > KNSmlMaxServerIdLength )
-        {
-        return KErrOverflow;
-        }
-    
-    HBufC* serverId = ConvertTo16BitLC( aServerId );
-    TInt ret = UpdateRowL( aId );
-    
-    if ( ret == KErrNone )
-        {
-        // do update
-        iView.SetColL( iColSet->ColNo( KNSmlFwMgmtObjectProfileId ), 
-                       aProfile );
-        iView.SetColL( iColSet->ColNo( KNSmlFwMgmtObjectServerId ), 
-                       *serverId );
-        iView.PutL();
-        }
-    
-    CommitAndCompact();
-    
-    CleanupStack::PopAndDestroy( serverId );
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetServerInfoL(): end");
-    
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetFinalResultL()
-//  Sets aResult as the value of FinalResult in FW object identified by aId.
-//  If no such object is found, returns KErrNotFound.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetFinalResultL( const TInt aResult, 
-                                            const TNSmlDmFwObjectId aId )
-    {
-    return SetIntValueL( KNSmlFwMgmtObjectResult, aResult, aId );
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetCorrelatorL()
-//  Sets aCorrealtor as the value of Correlator in FW object identified by aId.
-//  If no such object is found, returns KErrNotFound. If given correlator is 
-//  too large for the database, returns KErrOverflow.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetCorrelatorL( const TDesC8& aCorrelator, 
-                                           const TNSmlDmFwObjectId aId )
-    {
-    if ( aCorrelator.Length() > KNSmlMaxCorrelatorLength )
-        {
-        return KErrOverflow;
-        }
-    
-    return SetStrValueL( KNSmlFwMgmtObjectCorrelator, aCorrelator, aId );
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::CreateDatabaseL()
-//  Creates Fota database.
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::CreateDatabaseL( const TDesC& aFullName )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::CreateDatabaseL(): begin");
-
-    // Check OOD before creating new Fota DB
-    if ( SysUtil::FFSSpaceBelowCriticalLevelL( &iFsSession, 
-                                               KNSmlFotaAdapterEmptyDbSize ) )
-        {
-        User::Leave( KErrDiskFull );
-        }
-
-    // create sql query string, 5 = amount of length integers used in Format()
-    HBufC* createFwMgmtTable = HBufC::NewLC( 
-                                    KNSmlCreateFwMgmtObjectTable().Length() + 
-                                    KNSmlFwMgmtObjectIntLength*5 );
-    
-    createFwMgmtTable->Des().Format( KNSmlCreateFwMgmtObjectTable, 
-                                     KFotaMaxPkgNameLength,
-                                     KFotaMaxPkgVersionLength,
-                                     KNSmlMaxMgmtUriLength,
-                                     KNSmlMaxServerIdLength,
-                                     KNSmlMaxCorrelatorLength );
-
-    User::LeaveIfError( iDatabase.Create( iRdbSession,
-	                                      aFullName,
-	                                      KNSmlDBMSSecureMDHostOneID ) );
-    iDatabase.Begin();
-    iDatabase.Execute( *createFwMgmtTable );
-
-    CommitAndCompact();
-    iDatabase.Close();
-    
-    CleanupStack::PopAndDestroy( createFwMgmtTable );
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::CreateDatabaseL(): end");
-    }   
-
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetStrValueL()
-//  Sets aValue as the value of aColumn in FW object identified by aObject.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetStrValueL( const TDesC& aColumn, 
-                                         const TDesC8& aValue,
-                                         const TNSmlDmFwObjectId aObject )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetStrValueL(): begin");
-    
-    HBufC* value = ConvertTo16BitLC( aValue );
-    
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::SetStrValueL(): ('%S', '%S', %d)"), 
-              &aColumn, value, aObject );
-    
-    TInt ret = UpdateRowL( aObject );
-    
-    if ( ret == KErrNone )
-        {
-        // do update
-        iView.SetColL( iColSet->ColNo( aColumn ), *value );
-        iView.PutL();
-        }
-    
-    CommitAndCompact();
-    
-    CleanupStack::PopAndDestroy( value );
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetStrValueL(): end");
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetLongStrValueL()
-//  Streams aValue and its length as the value of aColumn in FW object 
-//  identified by aObject.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetLongStrValueL( const TDesC& aColumn, 
-                                             const TDesC8& aValue, 
-                                             const TNSmlDmFwObjectId aObject )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetLongStrValueL(): begin");
-    
-    HBufC* value = ConvertTo16BitLC( aValue );
-    
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::SetStrValueL(): ('%S', '%S', %d)"),
-              &aColumn, value, aObject );
-    
-    TInt ret = UpdateRowL( aObject );
-    
-    if ( ret == KErrNone )
-        {
-        // do update
-        
-        RDbColWriteStream wStream;
-        wStream.OpenL( iView, iColSet->ColNo( aColumn ) );
-        CleanupClosePushL( wStream );
-        
-        wStream.WriteInt32L( value->Length() );
-        wStream.WriteL( *value, value->Length() );
-        
-        CleanupStack::PopAndDestroy( &wStream );
-        
-        iView.PutL();
-        }
-    
-    CommitAndCompact();
-    
-    CleanupStack::PopAndDestroy( value );
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetLongStrValueL(): end");
-    
-    return ret;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::SetIntValueL()
-//  Sets aValue as the value of aColumn in FW object identified by aObject.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::SetIntValueL( const TDesC& aColumn, 
-                                         const TInt aValue, 
-                                         const TNSmlDmFwObjectId aObject )
-    {
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetIntValueL(): begin");
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::SetIntValueL(): ('%S', %d, %d)"), 
-              &aColumn, aValue, aObject );
-    
-    TInt ret = UpdateRowL( aObject );
-    
-    if ( ret == KErrNone )
-        {
-        // do update
-        iView.SetColL( iColSet->ColNo( aColumn ), aValue );
-        iView.PutL();
-        }
-    
-    CommitAndCompact();
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::SetIntValueL(): end");
-    
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::UpdateRowL()
-//  Prepares iView when setting a value to one of the rows in DB table. 
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::UpdateRowL( const TNSmlDmFwObjectId aObject )
-    {
-    TInt ret = KErrNone;
-    
-    HBufC* sql = FwMgmtObjectRowSqlLC( aObject );
-    PrepareViewL( *sql, iView.EUpdatable );
-    iDatabase.Begin();
-
-    CleanupStack::PopAndDestroy( sql );
-    
-    if ( iView.FirstL() )
-        {
-        // fw object exists
-        // Get current row for accessing and initiate update
-        iView.GetL();
-        iView.UpdateL();
-        }
-    else
-        {
-        // fw object does not exists, cannot update
-        ret = KErrNotFound;
-        }
-    
-    return ret;
-    }
-    
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::StrValueL()
-//  Returns the value in FW object identified by aObject in column aColumn.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::StrValueL( const TDesC& aColumn, 
-                                         const TNSmlDmFwObjectId aObject )
-    {
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::StrValueL('%S', %d): begin"), 
-              &aColumn, aObject );
-    
-    HBufC8* value = NULL;
-    
-    FetchRowL( aObject );
-    
-    if ( iView.FirstL() )
-        {
-        // get value
-        iView.GetL();
-        TPtrC res = iView.ColDes( iColSet->ColNo( aColumn ) );
-        
-        // convert to 8-bit
-        value = HBufC8::NewL( res.Length() );
-        value->Des().Copy( res );
-        }
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::StrValueL(): end");
-    
-    return value;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::LongStrValueL()
-//  Returns the value in FW object identified by aObject in column aColumn.
-// ---------------------------------------------------------------------------
-// 
-HBufC8* CNSmlDmFotaAdapterDb::LongStrValueL( const TDesC& aColumn, 
-                                             const TNSmlDmFwObjectId aObject )
-    {
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::LongStrValueL('%S', %d): begin"), 
-              &aColumn, aObject );
-    
-    HBufC8* value = NULL;
-    
-    FetchRowL( aObject );
-    
-    if ( iView.FirstL() )
-        {
-        // get value
-        iView.GetL();
-        
-        RDbColReadStream rStream;
-        rStream.OpenL( iView, iColSet->ColNo( aColumn ) );
-        CleanupClosePushL( rStream );
-        
-        TInt length = 0;
-        TRAPD( err, length = rStream.ReadInt32L() );
-        
-        HBufC* buf = HBufC::NewLC( length );
-        TPtr bufPtr = buf->Des();
-        
-        if ( err == KErrNone )
-            {
-            rStream.ReadL( bufPtr, length );
-            }
-        
-        // convert to 8-bit
-        value = HBufC8::NewL( bufPtr.Length() );
-        value->Des().Copy( bufPtr );
-        
-        CleanupStack::PopAndDestroy( buf );
-        CleanupStack::PopAndDestroy( &rStream );
-        }
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::LongStrValueL(): end");
-    
-    return value;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::IntValueL()
-//  Returns the value in FW object identified by aObject in column aColumn.
-// ---------------------------------------------------------------------------
-// 
-TInt CNSmlDmFotaAdapterDb::IntValueL( const TDesC& aColumn,
-                                      const TNSmlDmFwObjectId aObject )
-    {
-    DBG_ARGS( _S16("CNSmlDmFotaAdapterDb::IntValueL('%S', %d): begin"), 
-              &aColumn, aObject );
-    
-    TInt value = KErrNotFound;
-    
-    FetchRowL( aObject );
-    
-    if ( iView.FirstL() )
-        {
-        iView.GetL();
-        value = iView.ColInt( iColSet->ColNo( aColumn ) );
-        }
-    
-    _DBG_FILE("CNSmlDmFotaAdapterDb::IntValueL(): end");
-    
-    return value;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::FetchRowL()
-//  Prepares iView when getting a single row from DB.
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::FetchRowL( const TNSmlDmFwObjectId aObject )
-    {
-    HBufC* sql = FwMgmtObjectRowSqlLC( aObject );
-    
-    PrepareViewL( *sql, iView.EReadOnly );
-
-    CleanupStack::PopAndDestroy( sql );
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::FwMgmtObjectRowSqlLC()
-//  Returns a buffer containing formatted SQL statement for getting a FW object 
-//  identified by aId.
-// ---------------------------------------------------------------------------
-// 
-HBufC* CNSmlDmFotaAdapterDb::FwMgmtObjectRowSqlLC( TNSmlDmFwObjectId aId ) const
-    {
-    HBufC* sql = HBufC::NewLC( KNSmlGetFwMgmtObject().Length() + 
-                               KNSmlFwMgmtObjectIntegerLength );
-    
-    TPtr sqlPtr = sql->Des();
-    sqlPtr.Format( KNSmlGetFwMgmtObject, aId );
-    return sql;
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::PrepareViewL()
-//  Closes and prepares the view
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::PrepareViewL( const TDesC& aSql, 
-                                         RDbRowSet::TAccess aAccess )
-    {
-    iView.Close();
-    User::LeaveIfError( iView.Prepare( iDatabase, TDbQuery(aSql), aAccess ) );
-    
-    if ( iView.Unevaluated() )
-        {
-        User::LeaveIfError( iView.EvaluateAll() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::CommitAndCompact()
-//  Commits update and compacts the database
-// ---------------------------------------------------------------------------
-// 
-void CNSmlDmFotaAdapterDb::CommitAndCompact() 
-    {
-    iDatabase.Commit();
-    iDatabase.Compact();
-    }
-
-// ---------------------------------------------------------------------------
-//  CNSmlDmFotaAdapterDb::ConvertTo16BitLC()
-//  Returns a pointer to a unicode copy of the given 8-bit descriptor.
-//  The pointer to the copy is allocated from heap and pushed on the 
-//  CleanupStack.
-// ---------------------------------------------------------------------------
-// 
-HBufC* CNSmlDmFotaAdapterDb::ConvertTo16BitLC( const TDesC8& aDes ) const
-    {
-    HBufC* buf = HBufC::NewLC( aDes.Length() );
-    buf->Des().Copy( aDes );
-    
-    return buf;
-    }