metadataengine/server/src/mdsmaintenanceengine.cpp
branchRCL_3
changeset 9 82c0024438c8
parent 8 50de4d668bb6
child 14 3e156c80c15d
--- a/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Mar 31 22:19:07 2010 +0300
+++ b/metadataengine/server/src/mdsmaintenanceengine.cpp	Wed Apr 14 16:24:03 2010 +0300
@@ -119,6 +119,12 @@
     __LOG1( ELogAlways, "Trying to validate MDS DB, error expected if not created(first boot): %d", 0 );
     if ( !(iMaintenance->ValidateL( ) ) )
         {
+        // Pump up priority to load the MDS DB up as fast as possible to
+        // enable client side session connections
+        RProcess process;
+        process.SetPriority( EPriorityForeground );
+    
+        __LOG1( ELogAlways, "MDS DB not valid, creating tables: %d", 0 );
         // first-time init: re-form the database completely
     	iMaintenance->CreateDatabaseL( );
 		const TUint KMdSServerUid = 0x0320e65f; // temporal uid
@@ -156,6 +162,12 @@
        		TRAP_IGNORE( ImportMetadataL( aManipulate, aSchema, KMdsDefaultRomImportFile ) );
        		}
        	
+       	__LOG1( ELogAlways, "MDS DB tables created %d", 0 );
+
+        // Revert back to default MDS server priority when server is up and running
+        process.SetPriority( EPriorityBackground );
+        process.Close();
+       	
        	StoreDriveMediaIdsL();
         }
     else
@@ -168,6 +180,7 @@
 			User::Leave( err );
         	}
         }
+    __LOG1( ELogAlways, "CMdSMaintenanceEngine::InstallL complete: %d", 0 );
     }
 
 // ------------------------------------------------
@@ -247,17 +260,22 @@
     if( massStorageError == KErrNone )
         {
         TVolumeInfo massStorageVolumeInfo;
-        User::LeaveIfError( fs.Volume( massStorageVolumeInfo, drive ) );
-        const TUint32 massStorageMediaId( massStorageVolumeInfo.iUniqueID );
-        massStorageError = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive );
+        massStorageError = fs.Volume( massStorageVolumeInfo, drive );
         if( massStorageError == KErrNone )
             {
-            User::LeaveIfError( fs.Volume( massStorageVolumeInfo, drive ) );
-            // Update mass storage media id if the mass storage is not memory card
-            if( massStorageVolumeInfo.iUniqueID != massStorageMediaId && massStorageMediaId != 0 )
+            const TUint32 massStorageMediaId( massStorageVolumeInfo.iUniqueID );
+            massStorageError = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultRemovableMassStorage, drive );
+            if( massStorageError == KErrNone )
                 {
-                MMdsPreferences::InsertL( KMassStorageMediaIdKey, MMdsPreferences::EPreferenceValueSet,
-                        (TUint32) massStorageMediaId );
+                massStorageError = fs.Volume( massStorageVolumeInfo, drive );
+                // Update mass storage media id if the mass storage is not memory card
+                if( massStorageError == KErrNone &&
+                    massStorageVolumeInfo.iUniqueID != massStorageMediaId &&
+                    massStorageMediaId != 0 )
+                    {
+                    MMdsPreferences::InsertL( KMassStorageMediaIdKey, MMdsPreferences::EPreferenceValueSet,
+                            (TUint32) massStorageMediaId );
+                    }        
                 }
             }
         }