richcallsettingsengine/rcse2/src/rcsedbimporter.cpp
branchRCL_3
changeset 21 f742655b05bf
parent 20 65a3ef1d5bd0
child 22 d38647835c2e
--- a/richcallsettingsengine/rcse2/src/rcsedbimporter.cpp	Thu Aug 19 09:45:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,998 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:  RCSE Settings Import from DBMS
-*
-*/
-
-
-#include "rcsedbimporter.h"
-#include "rcseconstants.h"
-#include "crcseprofileregistry.h"
-#include "crcseaudiocodecregistry.h"
-#include "rcsedefaultdbnames.h"
-#include "rcselogger.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Default constructor
-// ---------------------------------------------------------------------------
-//
-CRCSEDbImporter::CRCSEDbImporter()
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// ConstructL
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::ConstructL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ConstructL() - IN" );
-    User::LeaveIfError( iDbSession.Connect() );
-    RCSELOGSTRING( "CRCSEDbImporter::ConstructL() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-CRCSEDbImporter* CRCSEDbImporter::NewL()
-    {
-    CRCSEDbImporter* self = CRCSEDbImporter::NewLC();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// NewLC
-// ---------------------------------------------------------------------------
-//
-CRCSEDbImporter* CRCSEDbImporter::NewLC()
-    {
-    CRCSEDbImporter* self = new( ELeave ) CRCSEDbImporter;
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CRCSEDbImporter::~CRCSEDbImporter()
-    {
-    ReleaseImportLock();
-
-    iDb.Close();
-    iDbSession.Close();
-    iProfiles.ResetAndDestroy();
-    iCodecs.ResetAndDestroy();
-    iCodecIds.Close();
-    }
-
-// ---------------------------------------------------------------------------
-// Check if imported (restored) database file exists.
-// ---------------------------------------------------------------------------
-//
-TBool CRCSEDbImporter::ImportExists()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ImportExists() - IN" );
-
-    TBool profileImport( EFalse );
-    TBool codecImport( EFalse );
-
-    RDbs dbSession;
-    RDbNamedDatabase db;
-
-    TInt err( dbSession.Connect() );
-
-    if ( KErrNone != err )
-        {
-        return EFalse;
-        }
-    else
-        {
-        // Check voip profiles
-        err = db.Open( dbSession, KDbName, KDatabaseUID );
-        db.Close();
-
-        if ( KErrNone == err )
-            {
-            profileImport = ETrue;
-            }
-
-        // Check audio codecs
-        err = db.Open( dbSession, KDbCodecName, KDatabaseUID );
-        db.Close();
-
-        if ( KErrNone == err )
-            {
-            codecImport = ETrue;
-            }
-        }
-
-    dbSession.Close();
-
-    RCSELOGSTRING2( "CRCSEDbImporter::ImportExists(%d) - OUT", 
-        profileImport && codecImport );
-
-    // Return ETrue only when both of imports exist
-    return profileImport && codecImport;
-    }
-
-
-// ---------------------------------------------------------------------------
-// Check if import is already running.
-// ---------------------------------------------------------------------------
-//
-TBool CRCSEDbImporter::IsImportRunning()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::IsImportRunning() - IN" );
-
-    TBool ret( EFalse );
-
-    RDbs dbSession;
-    RDbNamedDatabase db;
-
-    TInt err( dbSession.Connect() );
-
-    if ( KErrNone != err )
-        {
-        ret = EFalse;
-        }
-    else
-        {
-        // Check if temporary table exists
-        err = db.Open( dbSession, KDbTempName, KDatabaseUID );
-        db.Close();
-
-        if ( KErrNone == err )
-            {
-            ret = ETrue;
-            }
-        }
-
-    dbSession.Close();
-
-    RCSELOGSTRING2( "CRCSEDbImporter::IsImportRunning(%d) - OUT", ret );
-    
-    return ret;
-    }
-
-
-// ---------------------------------------------------------------------------
-// Imports RCSE entries from db file and stores them to repository.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::ImportAndStoreL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ImportL() - IN" );
-
-    SetImportLock();
-
-    // Import settings data
-    ImportVoIPProfilesL();
-    ImportAudioCodecsL();
-
-    // Store audio codecs
-    StoreAudioCodecsL();
-
-    // Update and store VoIP profiles
-    UpdatePreferredCodecs();
-    StoreVoIPProfilesL();
-
-    DeleteImports();
-    ReleaseImportLock();
-
-    RCSELOGSTRING( "CRCSEDbImporter::ImportL() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Set locking data base file to prevent disturb during the import operation.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::SetImportLock()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::SetImportLock() - IN" );
-
-    // Create temporary db that indicates ongoing operation
-    iDb.Create( iDbSession, KDbTempName, KDatabaseUID );
-    iDb.Close();
-
-    RCSELOGSTRING( "CRCSEDbImporter::SetImportLock() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Release locking data base file.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::ReleaseImportLock()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ReleaseImportLock() - IN" );
-
-    // Delete temporary locking db
-    TInt err( iDb.Open( iDbSession, KDbTempName, KDatabaseUID ) );
-
-    if ( KErrNone == err )
-        {
-        iDb.Destroy();
-        iDb.Close();
-        RCSELOGSTRING( "Temporary db deleted" );
-        }
-    else
-        {
-        RCSELOGSTRING2( "Temporary db not deleted, err=%d", err );
-        }
-
-    RCSELOGSTRING( "CRCSEDbImporter::ReleaseImportLock() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Import VoIP profiles from database to array.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::ImportVoIPProfilesL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ImportVoIPProfilesL() - IN" );
-    User::LeaveIfError( iDb.Open( iDbSession, KDbName, KDatabaseUID ) );
-
-    // Create sql statement
-    HBufC* statement = HBufC::NewLC(
-        KSQLSelectAllStatement().Length() + 
-        KProfileTableName().Length() );
-
-    statement->Des().Format( 
-        KSQLSelectAllStatement, &KProfileTableName );
-
-    // Launch query
-    RDbView view;
-    User::LeaveIfError( view.Prepare( iDb, *statement ) );
-    CleanupClosePushL( view );
-    User::LeaveIfError( view.EvaluateAll() );
-    view.FirstL();
-
-    // Browse all result rows trough
-    while ( view.AtRow() )
-        {
-        view.GetL(); // Get the data row
-        const TInt cols( view.ColCount() + 1 );
-
-        CRCSEProfileEntry* entry = CRCSEProfileEntry::NewLC();
-
-        // Map the data from current row to profile entry.
-        for( TInt i = 1; i < cols; i++ )
-            {
-            MapColumnToEntryL( i, view, *entry );
-            }
-
-        iProfiles.AppendL( entry );
-        CleanupStack::Pop( entry );
-        view.NextL();
-        }
-
-    CleanupStack::PopAndDestroy( &view );
-    CleanupStack::PopAndDestroy( statement );
-
-    iDb.Close();
-    RCSELOGSTRING( "CRCSEDbImporter::ImportVoIPProfilesL() - OUT" );
-    }
-
-// ---------------------------------------------------------------------------
-// Import audio codecs from database to array.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::ImportAudioCodecsL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::ImportAudioCodecsL() - IN" );
-
-    User::LeaveIfError( iDb.Open( iDbSession, KDbCodecName, KDatabaseUID ) );
-
-    // Create sql statement
-    HBufC* statement = HBufC::NewLC(
-        KSQLSelectAllStatement().Length() + 
-        KAudioCodecTableName().Length() );
-
-    statement->Des().Format( 
-        KSQLSelectAllStatement, &KAudioCodecTableName );
-
-    // Launch query
-    RDbView view;
-    User::LeaveIfError( view.Prepare( iDb, *statement ) );
-    CleanupClosePushL( view );
-    User::LeaveIfError( view.EvaluateAll() );
-    view.FirstL();
-
-    // Browse all result rows trough
-    while ( view.AtRow() )
-        {
-        view.GetL(); // Get the data row
-        const TInt cols( view.ColCount() + 1 );
-
-        CRCSEAudioCodecEntry* entry = CRCSEAudioCodecEntry::NewLC();
-
-        // Map the data from current row to audio codec entry.
-        for( TInt i = 1; i < cols; i++ )
-            {
-            MapColumnToEntryL( i, view, *entry );
-            }
-
-        // Append entry and its ID
-        iCodecs.AppendL( entry );
-
-        TRCSEIdPair idPair;
-        idPair.iOldId =  entry->iCodecId;
-        iCodecIds.Append( idPair );
-
-        CleanupStack::Pop( entry );
-        view.NextL();
-        }
-
-    CleanupStack::PopAndDestroy( &view );
-    CleanupStack::PopAndDestroy( statement );
-
-    iDb.Close();
-
-    RCSELOGSTRING( "CRCSEDbImporter::ImportAudioCodecsL() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Delete imported (restored) rcse database files.
-// ---------------------------------------------------------------------------
-//
-void CRCSEDbImporter::DeleteImports()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::DeleteImports() - IN" );
-
-    TInt err( 0 );
-
-    // Delete VoIP profile import
-    err = iDb.Open( iDbSession, KDbName, KDatabaseUID );
-
-    if ( KErrNone == err )
-        {
-        iDb.Destroy();
-        iDb.Close();
-        RCSELOGSTRING( "Profile import deleted" );
-        }
-    else
-        {
-        RCSELOGSTRING2( "Profile import not deleted, err=%d", err );
-        }
-
-    // Delete audio codec import
-    err = iDb.Open( iDbSession, KDbCodecName, KDatabaseUID );
-
-    if ( KErrNone == err )
-        {
-        iDb.Destroy();
-        iDb.Close();
-        RCSELOGSTRING( "Codec import deleted" );
-        }
-    else
-        {
-        RCSELOGSTRING2( "Codec import not deleted, err=%d", err );
-        }
-
-    RCSELOGSTRING( "CRCSEDbImporter::DeleteImports() - OUT" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// Map query result from a given column to profile entry.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::MapColumnToEntryL( 
-    TInt aColumnIndex, 
-    const RDbView& aView, 
-    CRCSEProfileEntry& aEntry )
-    {
-    // Get the column definition
-    const TDbCol col( aView.ColDef( aColumnIndex ) );
-
-    // Maps the values using the names of columns
-    if ( col.iName == KProfileId )
-        {
-        aEntry.iId = aView.ColUint32( aColumnIndex );
-        }   
-    else if ( col.iName == KProtocolIds )
-        {        
-        const TDesC& ids = aView.ColDes( aColumnIndex );
-        // Extracts the numbers from ids to iIds.
-        GetProfileIdsFromDescriptorL( ids, aEntry.iIds );  
-        }
-    else if ( col.iName == KProviderName )
-        {
-        aEntry.iProviderName.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KSettingsName )
-        {
-        aEntry.iSettingsName.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KAutoComplete )
-        {
-        aEntry.iAutoComplete = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KEndMediaPort )
-        {
-        aEntry.iEndMediaPort = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHoldRingBack )
-        {
-        aEntry.iHoldRingBack = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KInbandDtmf)
-        {
-        aEntry.iInbandDTMF = static_cast<CRCSEProfileEntry::TOnOff>( 
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KMediaQOS )
-        {
-        aEntry.iMediaQOS = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KOutbandDtmf )
-        {
-        aEntry.iOutbandDTMF = static_cast<CRCSEProfileEntry::TOnOff>
-            ( aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KPreferredCodecs )
-        {
-        const TDesC& codecs = aView.ColDes( aColumnIndex );
-        // Extracts the numbers from codecs to iPreferredCodecs.
-        GetNumbersFromDescriptorL( codecs, aEntry.iPreferredCodecs );
-        }
-    else if ( col.iName == KSiqnalingQOS )
-        {
-        aEntry.iSiqnalingQOS = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KStartMediaPort )
-        {
-        aEntry.iStartMediaPort = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KCFNoAnswer )
-        {
-        aEntry.iCFNoAnswer = static_cast<CRCSEProfileEntry::TOnOff>
-                ( aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KCFBusy )
-        {
-        aEntry.iCFBusy = static_cast<CRCSEProfileEntry::TOnOff>
-                ( aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KCFUnconditional )
-        {
-        aEntry.iCFUnconditional = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KRedundancy )
-        {
-        aEntry.iRedundancy = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KSecureCallPreference )
-        {
-        aEntry.iSecureCallPreference = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KVoIPProfileLock )
-        {
-        aEntry.iVoIPProfileLock = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KAdhocAllowed )
-        {
-        aEntry.iAdhocAllowed = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPServerType )
-        {
-        aEntry.iSIPServerType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KSBCType )
-        {
-        aEntry.iSBCType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KSTUNServerType )
-        {
-        aEntry.iSTUNServerType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KWLANAPType )
-        {
-        aEntry.iWLANAPType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KPSTNGatewayType )
-        {
-        aEntry.iPSTNGatewayType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KSecurityGatewayType )
-        {
-        aEntry.iSecurityGatewayType.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KRTCP )
-        {
-        aEntry.iRTCP = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPVoIPUAHTerminalType )
-        {
-        aEntry.iSIPVoIPUAHTerminalType = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPVoIPUAHeaderWLANMAC )
-        {
-        aEntry.iSIPVoIPUAHeaderWLANMAC = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPVoIPUAHeaderString )
-        {
-        aEntry.iSIPVoIPUAHeaderString.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KProfileLockedToIAP )
-        {
-        aEntry.iProfileLockedToIAP = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KVoIPPluginUID )
-        {
-        aEntry.iVoIPPluginUID = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KAllowVoIPoverWCDMA )
-        {
-        aEntry.iAllowVoIPoverWCDMA = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KAllowVoIPoverBT )
-        {
-        aEntry.iAllowVoIPoverBT = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KMeanCountOfVoIPDigits )
-        {
-        aEntry.iMeanCountOfVoIPDigits = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KIgnoreAddrDomainPart )
-        {
-        aEntry.iIgnoreAddrDomainPart = aView.ColInt32( aColumnIndex );
-        }
-
-    else if ( col.iName == KHandoverDialect )
-        {
-        aEntry.iHandoverDialect = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KPSTelephonyHOPreference )
-        {
-        aEntry.iPSTelephonyHOPreference = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHOThresholdValueLL )
-        {
-        aEntry.iHOThresholdValueLL = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHOThresholdValueHL )
-        {
-        aEntry.iHOThresholdValueHL = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KNumberOfMeasurementsAbove )
-        {
-        aEntry.iNumberOfMeasurementsAbove = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KNumberOfMeasurementsBelow )
-        {
-        aEntry.iNumberOfMeasurementsBelow = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannInterParaHigh )
-        {
-        aEntry.iSmartScannInterParaHigh = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannInterParaMedium )
-        {
-        aEntry.iSmartScannInterParaMedium = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannInterParaLow )
-        {
-        aEntry.iSmartScannInterParaLow = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannInterParaStatic )
-        {
-        aEntry.iSmartScannInterParaStatic = aView.ColInt32( aColumnIndex );
-        }
-
-    else if ( col.iName == KSmartScannDurationHighMode )
-        {
-        aEntry.iSmartScannDurationHighMode = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannDurationMediumMode )
-        {
-        aEntry.iSmartScannDurationMediumMode = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSmartScannDurationLowMode )
-        {
-        aEntry.iSmartScannDurationLowMode = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHandoffNumber )
-        {
-        aEntry.iHandoffNumber = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHandbackNumber )
-        {
-        aEntry.iHandbackNumber = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHysterisisTimer )
-        {
-        aEntry.iHysterisisTimer = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHandOffProcessTimer )
-        {
-        aEntry.iHandOffProcessTimer = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KDisconnectProcessTimer )
-        {
-        aEntry.iDisconnectProcessTimer = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KHandoffPrefix )
-        {
-        aEntry.iHandoffPrefix.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KHandbackPrefix )
-        {
-        aEntry.iHandbackPrefix.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KHandoverTones )
-        {
-        aEntry.iHandoverTones = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSupportSMSoverWLAN )
-        {
-        aEntry.iSupportSMSoverWLAN = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KServiceProviderId )
-        {
-        aEntry.iServiceProviderId = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KUserPhoneUriParam )
-        {
-        aEntry.iUserPhoneUriParameter = static_cast<CRCSEProfileEntry::TOnOff>( 
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KSIPConnTestAddress )
-        {
-        aEntry.iSIPConnTestAddress.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KNATSettingsStorageId )
-        {
-        aEntry.iNATSettingsStorageId = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPMinSE )
-        {
-        aEntry.iSIPMinSE = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KSIPSessionExpires )
-        {
-        aEntry.iSIPSessionExpires = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KNATProtocol )
-        {
-        aEntry.iNATProtocol = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KNewServiceTable )
-        {
-        aEntry.iNewServiceTableEntry = static_cast<CRCSEProfileEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KSNAPId )
-        {
-        aEntry.iSNAPId = aView.ColUint32( aColumnIndex );
-        }
-    else
-        {
-        // Skip unknown column.
-        RCSELOGSTRING2( 
-            "CRCSEProfileRegistry::MapColumnToEntryL() - unknown %d",
-                 aColumnIndex );
-        }
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// Map query result from a given column to audio codec entry.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::MapColumnToEntryL( 
-    TInt aColumnIndex, 
-    const RDbView& aView, 
-    CRCSEAudioCodecEntry& aCodecEntry )
-    {    
-    // Get the column definition
-    const TDbCol col( aView.ColDef( aColumnIndex ) );
-
-    // Maps the values using the names of columns
-    if ( col.iName == KAudioCodecId )
-        {
-        aCodecEntry.iCodecId = aView.ColUint32( aColumnIndex );
-        }
-    else if ( col.iName == KMediaTypeName )
-        {
-        aCodecEntry.iMediaTypeName.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KMediaSubTypeName )
-        {
-        aCodecEntry.iMediaSubTypeName.Copy( aView.ColDes( aColumnIndex ) );
-        }
-    else if ( col.iName == KJitterBufferSize )
-        {
-        aCodecEntry.iJitterBufferSize = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KOctetAlign )
-        {
-        aCodecEntry.iOctetAlign = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KModeSet )
-        {
-        const TDesC& modeset = aView.ColDes( aColumnIndex );
-        GetNumbersFromDescriptorL( modeset, aCodecEntry.iModeSet );
-        }        
-    else if ( col.iName == KModeChangePeriod )
-        {
-        aCodecEntry.iModeChangePeriod = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KModeChangeNeighbor )
-        {
-        aCodecEntry.iModeChangeNeighbor = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KPtime )
-        {
-        aCodecEntry.iPtime = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KMaxptime )
-        {
-        aCodecEntry.iMaxptime = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KCrc )
-        {
-        aCodecEntry.iCrc = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KRobustSorting )
-        {
-        aCodecEntry.iRobustSorting = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }    
-    else if ( col.iName == KInterLeaving )
-        {
-        aCodecEntry.iInterLeaving = aView.ColInt32( aColumnIndex );
-        }    
-    else if ( col.iName == KChannels )
-        {
-        const TDesC& channels = aView.ColDes( aColumnIndex );
-        GetNumbersFromDescriptorL( channels, aCodecEntry.iChannels );
-        }                    
-    else if ( col.iName == KVAD )
-        {
-        aCodecEntry.iVAD = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KDTX )
-        {
-        aCodecEntry.iDTX = static_cast<CRCSEAudioCodecEntry::TOnOff>( 
-        aView.ColInt32( aColumnIndex ) );
-        }
-    else if ( col.iName == KSamplingRate )
-        {
-        aCodecEntry.iSamplingRate = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KAnnexb )
-        {
-        aCodecEntry.iAnnexb = static_cast<CRCSEAudioCodecEntry::TOnOff>(
-            aView.ColInt32( aColumnIndex) );
-        }
-    else if ( col.iName == KModeChangeCapability )
-        {
-        aCodecEntry.iModeChangeCapability = aView.ColInt32( aColumnIndex );
-        }
-    else if ( col.iName == KMaxRed )
-        {
-        aCodecEntry.iMaxRed = aView.ColInt32( aColumnIndex );
-        }
-    else
-        {
-        // Skip unknown column.
-        RCSELOGSTRING2( 
-            "CRCSEAudioCodecRegistry::MapColumnToEntryL() - unknown %d",
-                 aColumnIndex );
-        }
-
-    }
-
-// -----------------------------------------------------------------------------
-// Read TSettingIds structs from given descriptor to array.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::GetProfileIdsFromDescriptorL(
-    const TDesC& aNumbers,
-    RArray<TSettingIds>& aArray )
-    {
-    CleanupClosePushL( aArray );
-    
-    TLex lex( aNumbers );
-    
-    TSettingIds value;
-    
-    // Reset original array
-    aArray.Reset();
-    
-    while( !lex.Eos() )
-        {
-        lex.Val( value.iProfileType );
-        // Skip characters to space char.
-        lex.SkipCharacters();
-        lex.Inc( 1 );
-        lex.Val( value.iProfileId );
-        lex.SkipCharacters();
-        lex.Inc( 1 );
-        lex.Val( value.iProfileSpecificSettingId );
-        
-        aArray.AppendL( value );
-        if ( !lex.Eos() ) // Check that End of string is not next char.
-            {
-            // Go over the space character.
-            lex.Inc( 1 );
-            }
-        } 
-    
-    CleanupStack::Pop( &aArray );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Read IDs from given descriptor to array.
-// -----------------------------------------------------------------------------
-//
-template<class T>
-void CRCSEDbImporter::GetNumbersFromDescriptorL(
-    const TDesC& aNumbers,
-    RArray<T>& aArray )
-    {
-    CleanupClosePushL( aArray );
-    TLex lex( aNumbers );
-
-    // Reset original array
-    aArray.Reset();
-    
-    while( !lex.Eos() )
-        {
-        // Extract the number as unsigned int 32, which can be 
-        // converted to value wanted (template)
-        TUint32 value;
-        lex.Val( value, EDecimal );
-        aArray.AppendL( static_cast<T>( value ) );
-        // Skip characters to space char.
-        lex.SkipCharacters();
-        if ( !lex.Eos() ) // Check that End of string is not next char.
-            {
-            // Go over the space character.
-            lex.Inc( 1 );
-            }
-        }
-    
-    CleanupStack::Pop( &aArray );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Update new preferred audio codec IDs to imported VoIP profiles.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::UpdatePreferredCodecs()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::UpdatePreferredCodecs() - IN" );
-
-    // Update preferred codec IDs for each profile
-    const TInt count( iProfiles.Count() );
-    for( TInt i( 0 ); i < count; ++i )
-        {
-        // Browse preferred codecs array
-        const TInt codecCount( iProfiles[i]->iPreferredCodecs.Count() );
-        for ( TInt j( 0 ); j < codecCount; ++j )
-            {
-            // Search new codec ID from array
-            TUint32 oldId = iProfiles[i]->iPreferredCodecs[j];
-            TBool found( EFalse );
-
-            const TInt idCount( iCodecIds.Count() );
-            for ( TInt k( 0 ); k < idCount && !found; ++k )
-                {
-                found = ( oldId == iCodecIds[k].iOldId );
-
-                // Set new ID if it was found
-                if ( found )
-                    {
-                    iProfiles[i]->iPreferredCodecs[j] = iCodecIds[k].iNewId;
-                    RCSELOGSTRING4( 
-                        "Match %d. Codec index %d updated for %d. profile",
-                            k, j, i + 1 );
-                    }
-                else
-                    {
-                    RCSELOGSTRING2( "Skip %d", k );
-                    }
-                }
-            }
-        }
-
-    RCSELOGSTRING( "CRCSEDbImporter::UpdatePreferredCodecs() - OUT" );
-    }
-
-
-
-// -----------------------------------------------------------------------------
-// Store imported voip profiles.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::StoreVoIPProfilesL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::StoreVoIPProfilesL() - IN" );
-
-    CRCSEProfileRegistry* reg = CRCSEProfileRegistry::NewLC();
-    reg->AddL( iProfiles );
-    CleanupStack::PopAndDestroy( reg );
-
-    RCSELOGSTRING( "CRCSEDbImporter::StoreVoIPProfilesL() - OUT" );
-    }
-
-
-// -----------------------------------------------------------------------------
-// Store imported audio codecs.
-// -----------------------------------------------------------------------------
-//
-void CRCSEDbImporter::StoreAudioCodecsL()
-    {
-    RCSELOGSTRING( "CRCSEDbImporter::StoreAudioCodecsL() - IN" );
-
-    CRCSEAudioCodecRegistry* reg = CRCSEAudioCodecRegistry::NewLC();
-    reg->AddL( iCodecs );
-    CleanupStack::PopAndDestroy( reg );
-
-    // Update codec ID pairs
-    const TInt codecCount( iCodecs.Count() );
-    const TInt codecIdCount( iCodecIds.Count() );
-
-    __ASSERT_ALWAYS( codecCount == codecIdCount, User::Leave( KErrCorrupt ) );
-
-    for ( TInt i( 0 ); i < codecCount; ++i )
-        {
-        iCodecIds[ i ].iNewId = iCodecs[i]->iCodecId;
-        }
-
-    RCSELOGSTRING( "CRCSEDbImporter::StoreAudioCodecsL() - OUT" );
-    }
-
-
-
-
-
-
-
-
-
-
-
-
-
-