diff -r 5a044f6358c2 -r 4baee4f15982 browserui/browser/Launcher2/src/LauncherServerBase.cpp --- 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 + +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) {