mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp
branchRCL_3
changeset 42 4aca42fa4eb1
parent 28 f56ec6ce2732
child 55 6c1dfe4da5dd
equal deleted inserted replaced
34:e257e2b6459d 42:4aca42fa4eb1
    46 // ---------------------------------------------------------------------------
    46 // ---------------------------------------------------------------------------
    47 // C++ Constructor
    47 // C++ Constructor
    48 // ---------------------------------------------------------------------------
    48 // ---------------------------------------------------------------------------
    49 //
    49 //
    50 CMPXHarvesterDatabaseManager::CMPXHarvesterDatabaseManager( RFs& aFs ):
    50 CMPXHarvesterDatabaseManager::CMPXHarvesterDatabaseManager( RFs& aFs ):
    51         iFs( aFs )
    51         iFs( aFs ),
       
    52         iEMMC( EFalse )
    52 #ifdef __RAMDISK_PERF_ENABLE
    53 #ifdef __RAMDISK_PERF_ENABLE
    53         ,iRAMDiskPerfEnabled(EFalse),
    54         ,iRAMDiskPerfEnabled(EFalse),
    54         iMaximumAllowedRAMDiskSpaceToCopy(0),
    55         iMaximumAllowedRAMDiskSpaceToCopy(0),
    55         //iUpdateCount(0),
    56         //iUpdateCount(0),
    56         iMtpMode(EFalse)
    57         iMtpMode(EFalse)
    68 void CMPXHarvesterDatabaseManager::ConstructL()
    69 void CMPXHarvesterDatabaseManager::ConstructL()
    69     {
    70     {
    70     MPX_FUNC("CMPXHarvesterDatabaseManager::ConstructL");
    71     MPX_FUNC("CMPXHarvesterDatabaseManager::ConstructL");
    71     User::LeaveIfError( iDBSession.Connect() );
    72     User::LeaveIfError( iDBSession.Connect() );
    72 
    73 
       
    74     //Find out if the system has an internal drive (eMMC)
       
    75     TDriveInfo driveInfo;
       
    76     if( iFs.Drive( driveInfo, EDriveE ) == KErrNone )
       
    77     	{
       
    78         if ( driveInfo.iDriveAtt & KDriveAttInternal )
       
    79         	iEMMC = ETrue;
       
    80     	}
    73 #ifdef __RAMDISK_PERF_ENABLE
    81 #ifdef __RAMDISK_PERF_ENABLE
    74     TInt temp;
    82     TInt temp;
    75     CRepository* repository = CRepository::NewLC( KCRUIDMpxHarvesterFeatures );
    83     CRepository* repository = CRepository::NewLC( KCRUIDMpxHarvesterFeatures );
    76     MPX_DEBUG1("CMPXHarvesterDatabaseManager::ConstructL got repository");        
    84     MPX_DEBUG1("CMPXHarvesterDatabaseManager::ConstructL got repository");        
    77     User::LeaveIfError( repository->Get( KMpxHarvesterEnableRamDisk, temp ));
    85     User::LeaveIfError( repository->Get( KMpxHarvesterEnableRamDisk, temp ));
   160             TInt index = FindDatabaseIndex ( (TDriveNumber) driveNum );
   168             TInt index = FindDatabaseIndex ( (TDriveNumber) driveNum );
   161             if ( index == KErrNotFound )
   169             if ( index == KErrNotFound )
   162                 {
   170                 {
   163                 MPX_DEBUG1("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: re-creating database");
   171                 MPX_DEBUG1("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: re-creating database");
   164                 CMPXHarvesterDB* dB = CMPXHarvesterDB::NewL(
   172                 CMPXHarvesterDB* dB = CMPXHarvesterDB::NewL(
   165                     static_cast<TDriveNumber>(driveNum), iFs );
   173                     static_cast<TDriveNumber>(driveNum), iFs, iEMMC );
   166                 CleanupStack::PushL( dB );
   174                 CleanupStack::PushL( dB );
   167                 TRAPD(openError, rtn |= dB->OpenL() );  //lint !e665
   175                 TRAPD(openError, rtn |= dB->OpenL() );  //lint !e665
   168                 if(openError == KErrNone)
   176                 if(openError == KErrNone)
   169                     {
   177                     {
   170                      iDatabases.AppendL( dB );
   178                      iDatabases.AppendL( dB );
   210     CMPXHarvesterDB * db = NULL;
   218     CMPXHarvesterDB * db = NULL;
   211     TInt index = FindDatabaseIndex ( aDrive );
   219     TInt index = FindDatabaseIndex ( aDrive );
   212     if ( index == KErrNotFound )
   220     if ( index == KErrNotFound )
   213         {
   221         {
   214         index = iDatabases.Count();
   222         index = iDatabases.Count();
   215         db = CMPXHarvesterDB::NewL( aDrive, iFs );
   223         db = CMPXHarvesterDB::NewL( aDrive, iFs, iEMMC );
   216         CleanupStack::PushL( db );
   224         CleanupStack::PushL( db );
   217         iDatabases.AppendL( db );
   225         iDatabases.AppendL( db );
   218         CleanupStack::Pop( db );
   226         CleanupStack::Pop( db );
   219         }
   227         }
   220     else
   228     else
   998     
  1006     
   999     if ( aForRamDrive )
  1007     if ( aForRamDrive )
  1000         {
  1008         {
  1001         name.Append(iRAMFolder);
  1009         name.Append(iRAMFolder);
  1002         name.Append(aDriveUnit.Name()[0]);
  1010         name.Append(aDriveUnit.Name()[0]);
  1003         name.Append(KHarvesterDBName);
  1011 
       
  1012         //Use different name for Dbs if the system has an internal drive vs. MMC-only.
       
  1013         //Since hard-coded drive letters in the Thumbnail URIs
       
  1014         //So Dbs are not interchangeable between an internal drive system and MMC-only system.
       
  1015         if ( iEMMC )
       
  1016             name.Append( KHarvesterDBNameEMMC );
       
  1017         else
       
  1018             name.Append( KHarvesterDBName );
  1004         }
  1019         }
  1005     else
  1020     else
  1006         {
  1021         {
  1007         name.Append(aDriveUnit.Name());
  1022         name.Append(aDriveUnit.Name());
  1008         name.Append(KHarvesterDBPath);
  1023         name.Append(KHarvesterDBPath);
  1009         name.Append(KHarvesterDBName);
  1024         if ( iEMMC )
       
  1025             name.Append( KHarvesterDBNameEMMC );
       
  1026         else
       
  1027             name.Append( KHarvesterDBName );
  1010         }
  1028         }
  1011     
  1029     
  1012     MPX_DEBUG2("CMPXHarvesterDatabaseManager::GenerateHarvesterDbName name = %S", &name );
  1030     MPX_DEBUG2("CMPXHarvesterDatabaseManager::GenerateHarvesterDbName name = %S", &name );
  1013     return name;
  1031     return name;
  1014     }
  1032     }