diff -r 7b872347d83b -r 6d0b9f605b61 richcallsettingsengine/rcse2/inc/rcsedbimporter.h --- a/richcallsettingsengine/rcse2/inc/rcsedbimporter.h Tue Feb 02 00:05:57 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2007-2007 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 -* -*/ - - - -#ifndef C_RCSEDBIMPORTER_H -#define C_RCSEDBIMPORTER_H - - -#include -#include - -#include "crcseprofileentry.h" -#include "crcseaudiocodecentry.h" - - -/** Struct for mapping old and new ids of entries */ -class TRCSEIdPair - { -public: - TUint32 iOldId; - TUint32 iNewId; - }; - -/** - * Utility class that imports rcse settings from database and - * stores them to central repository. - * - * Enables the restoring of voip settings from previous SW versions. - * - * @code - * if ( CRCSEDbImporter::ImportExists() && - !CRCSEDbImporter::IsImportRunning() ) - { - CRCSEDbImporter* importer = CRCSEDbImporter::NewLC(); - importer->ImportAndStoreL(); - CleanupStack::PopAndDestroy( importer ); - } - - * @endcode - * - * @lib rcse.lib - * @since S60 v3.2 - */ -class CRCSEDbImporter : public CBase - { - -public: - - static CRCSEDbImporter* NewL(); - - static CRCSEDbImporter* NewLC(); - - /** - * Destructor. - */ - virtual ~CRCSEDbImporter(); - - /** - * Check if there is imported (restored) rcse database file. - * - * @since S60 v3.2 - * @return ETrue if imported db file found - */ - static TBool ImportExists(); - - /** - * Check if there is import operation already started. - * - * @since S60 v3.2 - * @return ETrue if import is already ongoing - */ - static TBool IsImportRunning(); - - /** - * Imports rcse entries from database and stores them to repository. - * - * @since S60 v3.2 - */ - void ImportAndStoreL(); - -private: - - CRCSEDbImporter(); - - void ConstructL(); - - /** - * Sets lock that prevents other instances to start import operation. - * - * @since S60 v3.2 - */ - void SetImportLock(); - - /** - * Release import lock. - * - * @since S60 v3.2 - */ - void ReleaseImportLock(); - - /** - * Imports RCSE profile entries from database to the iProfiles array. - * - * @since S60 v3.2 - */ - void ImportVoIPProfilesL(); - - /** - * Imports RCSE audio codec entries from database to the iCodecs array. - * - * @since S60 v3.2 - */ - void ImportAudioCodecsL(); - - /** - * Deletes all imported db files - * - * @since S60 v3.2 - */ - void DeleteImports(); - - /** - * Maps data from database query to profile entry. - * - * @since S60 v3.2 - * @param aColumnIndex Column that is mappped. - * @param aView Query results. - * @param aEntry Data from requested column is mapped and - * stored to this entry. - */ - void MapColumnToEntryL( TInt aColumnIndex, - const RDbView& aView, - CRCSEProfileEntry& aEntry ); - - /** - * Maps data from database query to audio codec entry. - * - * @since S60 v3.2 - * @param aColumnIndex Column that is mappped. - * @param aView Query results. - * @param aEntry Data from requested column is mapped and - * stored to this entry. - */ - void MapColumnToEntryL( TInt aColumnIndex, - const RDbView& aView, - CRCSEAudioCodecEntry& aEntry ); - - - /** - * Reads TSettingIds structs from given descriptor to array. - * - * @since S60 v3.2 - * @param aNumbers Descriptor containing TSettingIds structs. - * @param aArray Container for TSettingIds structs. - */ - void GetProfileIdsFromDescriptorL( const TDesC& aNumbers, - RArray& aArray ); - - - - /** - * Reads IDs from given descriptor to array. - * - * @since S60 v3.2 - * @param aNumbers Descriptor containing list of IDs. - * @param aArray Container for IDs. - */ - template - void GetNumbersFromDescriptorL( const TDesC& aNumbers, - RArray& aArray ); - - - /** - * Updates new preferred audio codec IDs to imported VoIP - * profile entries. - * - * @since S60 v3.2 - */ - void UpdatePreferredCodecs(); - - /** - * Stores imported voip profiles. - * - * @since S60 v3.2 - */ - void StoreVoIPProfilesL(); - - /** - * Stores imported audio codecs. - * - * @since S60 v3.2 - */ - void StoreAudioCodecsL(); - - - -private: // data - - /** - * Database object. - * Own. - */ - RDbNamedDatabase iDb; - - /** - * Database session. - * Own. - */ - RDbs iDbSession; - - /** - * Container for imported VoIP profiles. - * Own. - */ - RPointerArray iProfiles; - - /** - * Container for imported Audio Codecs. - * Own. - */ - RPointerArray iCodecs; - - /** - * An array for pairs of old and new codec IDs - * Own. - */ - RArray iCodecIds; - -private: - // For testing - #ifdef TEST_EUNIT - friend class UT_CRCSEDbImporter; - #endif - - - - }; - - - -#endif // C_RCSEDBIMPORTER_H