browserui/browser/Launcher2/src/LauncherServerBase.cpp
branchRCL_3
changeset 63 4baee4f15982
parent 32 92a061761a7b
--- a/browserui/browser/Launcher2/src/LauncherServerBase.cpp	Thu Jul 15 18:42:04 2010 +0300
+++ b/browserui/browser/Launcher2/src/LauncherServerBase.cpp	Thu Aug 19 09:57:56 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description: 
+* Description:
 *      Implementation of CLauncherServerBase
 *
 *
@@ -28,27 +28,30 @@
 #include "eikenv.h"
 #include "eikappui.h"
 #include "logger.h"
+#include <SysUtil.h>
+
+const TInt KMinimumCDriveDiskSpace = 512 * 1024;
 
 // -----------------------------------------------------------------------------
-// CLauncherServerBase::CBrowserLauncherService()    
+// CLauncherServerBase::CBrowserLauncherService()
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CLauncherServerBase::CLauncherServerBase()    
+EXPORT_C CLauncherServerBase::CLauncherServerBase()
     {
     LOG_ENTERFN( "CLauncherServerBase::CLauncherServerBase" );
-    
+
     iClientBuffer = NULL;
     CEikonEnv* browserAppEnv = CEikonEnv::Static();
     if ( browserAppEnv )
-    	{
-    	iBrowserAppUi = ( CBrowserAppUi* ) browserAppEnv->EikAppUi();
-    	if ( iBrowserAppUi )
+        {
+        iBrowserAppUi = ( CBrowserAppUi* ) browserAppEnv->EikAppUi();
+        if ( iBrowserAppUi )
             {
             iBrowserDocument = ( CBrowserAppDocument* ) iBrowserAppUi->Document();
             }
-    	}
+        }
     }
-	
+
 // -----------------------------------------------------------------------------
 // CLauncherServerBase::ServiceL()
 // -----------------------------------------------------------------------------
@@ -57,7 +60,7 @@
     {
     LOG_ENTERFN( "CLauncherServerBase::ServiceL" );
     LOG_WRITE_FORMAT(" Function: %d", aMessage.Function());
-    
+
     switch ( aMessage.Function() )
         {
         case ELauncherSendSync :
@@ -122,44 +125,44 @@
 void CLauncherServerBase::HandleMessageSyncL()
     {
     LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncL" );
-    
+
     // Client parameters. These will be filled by function
     // UnPackLauncherDataL()...
     TUid embeddingApplicationUid;
     TBrowserOverriddenSettings settings;
-    TBrowserOverriddenSettings* pSettings;	
+    TBrowserOverriddenSettings* pSettings;
     TInt folderUid;
     TPtrC seamlessParam;
     TBool isContentHandlerRegistered( EFalse );
-    TBool isOverridenSettings( EFalse );	
+    TBool isOverridenSettings( EFalse );
 
     TInt result; // The result of the processed data.
-    	
+
     // Read the recieved data buffer
     HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMySyncMessage.GetDesLengthL( 0 ) );
     TPtr8 incomingDataPointer = incomingDataBuffer->Des( );
     iMySyncMessage.ReadL( 0, incomingDataPointer );
     LOG_WRITE(" ReadL OK");
-    	
-    // Unpack the recieved data buffer 
-    pSettings = &settings;		
-    TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, 
-    											pSettings, 
-    											folderUid, 
-    											seamlessParam, 
-    											incomingDataPointer, 
-    											isContentHandlerRegistered, 
-    											isOverridenSettings );
-    											
+
+    // Unpack the recieved data buffer
+    pSettings = &settings;
+    TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid,
+                                                pSettings,
+                                                folderUid,
+                                                seamlessParam,
+                                                incomingDataPointer,
+                                                isContentHandlerRegistered,
+                                                isOverridenSettings );
+
     // Process the unpacked data.
     result = ProcessMessageSyncL( embeddingApplicationUid,
-    							  settings, 
-    							  folderUid, 
-    							  seamlessParam, 
-    							  isContentHandlerRegistered );
+                                  settings,
+                                  folderUid,
+                                  seamlessParam,
+                                  isContentHandlerRegistered );
 
     // Cleanup, and complete the client`s request.
-    CleanupStack::PopAndDestroy( ); // incomingDataBuffer	
+    CleanupStack::PopAndDestroy( ); // incomingDataBuffer
     iMySyncMessage.Complete( result );
     }
 
@@ -170,40 +173,51 @@
 void CLauncherServerBase::HandleMessageASyncL()
     {
     LOG_ENTERFN( "CLauncherServerBase::HandleMessageASyncL" );
-    
+
+    // Check for ciritical disk space if starts in embeded mode
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    TInt drive( EDriveC );
+    TBool isSpace( EFalse );
+    TInt err( KErrNone );
+    TRAP( err, isSpace = !SysUtil::DiskSpaceBelowCriticalLevelL(&fs, KMinimumCDriveDiskSpace, drive ));
+    fs.Close();
+    if (!isSpace)
+        User::Leave(KErrDiskFull);
+
     // Client parameters. These will be filled by function
     // UnPackLauncherDataL()...
-    TUid embeddingApplicationUid;    
+    TUid embeddingApplicationUid;
     TBrowserOverriddenSettings settings;
-    TBrowserOverriddenSettings* pSettings;	
+    TBrowserOverriddenSettings* pSettings;
     TInt folderUid;
     TPtrC seamlessParam;
     TBool isContentHandlerRegistered( EFalse );
     TBool isOverridenSettings( EFalse );
-        
+
     // Read the recieved data buffer
     HBufC8* incomingDataBuffer = HBufC8::NewMaxLC( iMyAsyncMessage.GetDesLengthL( 0 ) );
     TPtr8 incomingDataPointer = incomingDataBuffer->Des( );
     iMyAsyncMessage.ReadL( 0, incomingDataPointer );
     LOG_WRITE(" ReadL OK");
-     	
-    // Unpack the recieved data buffer 
-    pSettings = &settings;		
-    TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid, 
-    											pSettings, 
-    											folderUid, 
-    											seamlessParam, 
-    											incomingDataPointer, 
-    											isContentHandlerRegistered, 
-    											isOverridenSettings );
+
+    // Unpack the recieved data buffer
+    pSettings = &settings;
+    TLauncherPackageUtils::UnPackLauncherDataL( embeddingApplicationUid,
+                                                pSettings,
+                                                folderUid,
+                                                seamlessParam,
+                                                incomingDataPointer,
+                                                isContentHandlerRegistered,
+                                                isOverridenSettings );
 
     // Process the unpacked data.
     ProcessMessageASyncL( embeddingApplicationUid,
-    					  settings, 
-    					  folderUid, 
-    					  seamlessParam, 
-    					  isContentHandlerRegistered, 
-    					  isOverridenSettings );
+                          settings,
+                          folderUid,
+                          seamlessParam,
+                          isContentHandlerRegistered,
+                          isOverridenSettings );
 
     // Cleanup.
     CleanupStack::PopAndDestroy( ); // incomingDataBuffer
@@ -212,29 +226,29 @@
 void CLauncherServerBase::HandleMessageSyncBufferL()
     {
     LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBufferL" );
-    
+
     ProcessMessageSyncBufferL();
     // And complete client`s request.
     iMySyncMessage.Complete( KErrNone );
     }
-	
+
 void CLauncherServerBase::HandleMessageSyncBoolsL()
     {
     LOG_ENTERFN( "CLauncherServerBase::HandleMessageSyncBoolsL" );
-    
+
     TBool clientWantsToContinue = iMySyncMessage.Int0();
     TBool wasContentHandled = iMySyncMessage.Int1();
     ProcessBoolsL( clientWantsToContinue, wasContentHandled );
     // And complete client`s request.
     iMySyncMessage.Complete( KErrNone );
     }
-    
+
 void CLauncherServerBase::HandleBrowserExit()
     {
-    LOG_ENTERFN( "CLauncherServerBase::HandleBrowserExit" );    
+    LOG_ENTERFN( "CLauncherServerBase::HandleBrowserExit" );
     DoBrowserExit( );
     }
-	
+
 /* Capability check will come later...
 CLauncherServerBase::CLauncherServerBase(TCapability aClientReqs = ECapability_None):iClientReqs(aClientReqs)
     {