--- 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)
{