userlibandfileserver/fileserver/sfat32/fat_table32.cpp
changeset 189 a5496987b1da
parent 90 947f0dc9f7a8
child 254 1560c419b176
equal deleted inserted replaced
177:a232af6b0b1f 189:a5496987b1da
   690     Constructor
   690     Constructor
   691 */
   691 */
   692 CAtaFatTable::CAtaFatTable(CFatMountCB& aOwner)
   692 CAtaFatTable::CAtaFatTable(CFatMountCB& aOwner)
   693              :CFatTable(aOwner), iDriveInteface(aOwner.DriveInterface())
   693              :CFatTable(aOwner), iDriveInteface(aOwner.DriveInterface())
   694     {
   694     {
   695         iState = ENotInitialised;
   695     iState = ENotInitialised;
   696     }
   696     }
   697 
   697 
   698 
   698 
   699 CAtaFatTable::~CAtaFatTable()
   699 CAtaFatTable::~CAtaFatTable()
   700     {
   700     {
  1042         if(pFatBitCache)
  1042         if(pFatBitCache)
  1043             {//-- bit cache is present, we need to populate (or repopulate it)
  1043             {//-- bit cache is present, we need to populate (or repopulate it)
  1044             //-- create helper thread object and start the thread
  1044             //-- create helper thread object and start the thread
  1045             ipHelperThread = CFat32BitCachePopulator::NewL(*this);
  1045             ipHelperThread = CFat32BitCachePopulator::NewL(*this);
  1046 
  1046 
  1047             ipHelperThread->Launch(); 
  1047             if(ipHelperThread->Launch() != KErrNone)
  1048             //-- background FAT bit cache populating thread is running now.
  1048                 {//-- failed for some reason
  1049             //-- the result of thread start up and completion isn't very interesting: If it fails to 
  1049                 DestroyHelperThread();
  1050             //-- properly populate the cache, nothing fatal will happen.
  1050                 }
       
  1051                 else
       
  1052                 {
       
  1053                 //-- background FAT bit cache populating thread is running now.
       
  1054                 //-- the result of thread start up and completion isn't very interesting: If it fails to 
       
  1055                 //-- properly populate the cache, nothing fatal will happen.
       
  1056                 }
  1051             }
  1057             }
  1052 
  1058 
  1053         //-- CFat32BitCachePopulator doesn't affect FAT table state. 
  1059         //-- CFat32BitCachePopulator doesn't affect FAT table state. 
  1054         SetState(EMounted);
  1060         SetState(EMounted);
  1055         return; 
  1061         return; 
  1478                 TInt nMntDebugFlags;
  1484                 TInt nMntDebugFlags;
  1479                 if(bFat32BkGndScan && RProperty::Get(KSID_Test1, iOwner->DriveNumber(), nMntDebugFlags) == KErrNone)
  1485                 if(bFat32BkGndScan && RProperty::Get(KSID_Test1, iOwner->DriveNumber(), nMntDebugFlags) == KErrNone)
  1480                 {//-- test property for this drive is defined
  1486                 {//-- test property for this drive is defined
  1481                     if(nMntDebugFlags & KMntDisable_FatBkGndScan)
  1487                     if(nMntDebugFlags & KMntDisable_FatBkGndScan)
  1482                     {
  1488                     {
  1483                     __PRINT(_L("#- FAT32 BkGnd scan is disabled is disabled by debug interface."));
  1489                     __PRINT(_L("#- FAT32 BkGnd scan is disabled by debug interface."));
  1484                     bFat32BkGndScan = EFalse;
  1490                     bFat32BkGndScan = EFalse;
  1485                     }
  1491                     }
  1486             
  1492             
  1487                 }
  1493                 }
  1488 #endif
  1494 #endif
  1542     //-- 2. create helper thread object and start the thread
  1548     //-- 2. create helper thread object and start the thread
  1543     ipHelperThread = CFat32FreeSpaceScanner::NewL(*this);
  1549     ipHelperThread = CFat32FreeSpaceScanner::NewL(*this);
  1544     
  1550     
  1545     SetState(EFreeClustersScan);
  1551     SetState(EFreeClustersScan);
  1546     
  1552     
  1547     ipHelperThread->Launch(); 
  1553     User::LeaveIfError(ipHelperThread->Launch()); 
       
  1554     
  1548     //-- background FAT scanning thread is running now
  1555     //-- background FAT scanning thread is running now
  1549     }
  1556     }
  1550 
  1557 
  1551 //-----------------------------------------------------------------------------
  1558 //-----------------------------------------------------------------------------
  1552 /**
  1559 /**
  1962         ForceStop();
  1969         ForceStop();
  1963         ASSERT(0);
  1970         ASSERT(0);
  1964         return nRes;
  1971         return nRes;
  1965         }
  1972         }
  1966 
  1973 
  1967    //-- Helper FAT thread is running now
  1974     //-- Helper FAT thread is running now
  1968    return KErrNone; 
  1975     return KErrNone; 
  1969     }
  1976     }
  1970 
  1977 
  1971 
  1978 
  1972 //#######################################################################################################################################
  1979 //#######################################################################################################################################
  1973 //#     CFat32ScanThread implementation
  1980 //#     CFat32ScanThread implementation
  1981 
  1988 
  1982 //-----------------------------------------------------------------------------
  1989 //-----------------------------------------------------------------------------
  1983 
  1990 
  1984 /**
  1991 /**
  1985     Launches the FAT32_ScanThread scaner thread.
  1992     Launches the FAT32_ScanThread scaner thread.
  1986     @return  standard error code
  1993     @return  KErrNone if the thread launched OK
       
  1994              standard error code otherwise
  1987 */
  1995 */
  1988 TInt CFat32ScanThread::Launch()
  1996 TInt CFat32ScanThread::Launch()
  1989     {
  1997     {
  1990     return DoLaunchThread(FAT32_ScanThread, this);    
  1998     return DoLaunchThread(FAT32_ScanThread, this);    
  1991     }
  1999     }