imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp
branchRCL_3
changeset 28 ff2fb7658ff7
parent 24 f0aa341a25bf
child 37 f759b6186ab5
equal deleted inserted replaced
24:f0aa341a25bf 28:ff2fb7658ff7
    42 const TInt KMinor = 2;
    42 const TInt KMinor = 2;
    43 
    43 
    44 const TInt KStoreUnrecoverableErr = KErrCorrupt;
    44 const TInt KStoreUnrecoverableErr = KErrCorrupt;
    45 
    45 
    46 // Database path without drive letter
    46 // Database path without drive letter
       
    47 //Symbian^3 v4
    47 _LIT( KThumbnailDatabaseName, ":[102830AB]thumbnail_v4.db" );
    48 _LIT( KThumbnailDatabaseName, ":[102830AB]thumbnail_v4.db" );
    48 
    49 
    49 _LIT( KDrv, ":");
    50 _LIT( KDrv, ":");
    50 
    51 
    51 // Allow access to database only for the server process
    52 // Allow access to database only for the server process
   207     if( iMaintenanceTimer )
   208     if( iMaintenanceTimer )
   208         {
   209         {
   209         iMaintenanceTimer->Cancel();
   210         iMaintenanceTimer->Cancel();
   210         delete iMaintenanceTimer;
   211         delete iMaintenanceTimer;
   211         iMaintenanceTimer = NULL;
   212         iMaintenanceTimer = NULL;
   212         }
       
   213     
       
   214     if(!iServer->IsFormatting())
       
   215         {
       
   216  	    FlushCacheTable( ETrue );
       
   217         }
   213         }
   218     
   214     
   219     CloseStatements();   
   215     CloseStatements();   
   220     iDatabase.Close();
   216     iDatabase.Close();
   221     
   217     
   568         inforows = stmt.ColumnInt64( column );  
   564         inforows = stmt.ColumnInt64( column );  
   569         }
   565         }
   570                 
   566                 
   571     stmt.Close();
   567     stmt.Close();
   572     
   568     
   573     if(ret < 0)
   569     if(rowStatus < 0)
   574         {
   570         {
   575 #ifdef _DEBUG
   571 #ifdef _DEBUG
   576         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
   572         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
   577         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
   573         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
   578 #endif
   574 #endif
   593         datarows = stmt.ColumnInt64( column );  
   589         datarows = stmt.ColumnInt64( column );  
   594         }
   590         }
   595             
   591             
   596     stmt.Close();
   592     stmt.Close();
   597     
   593     
   598     if(ret < 0)
   594     if( rowStatus < 0)
   599         {
   595         {
   600 #ifdef _DEBUG
   596 #ifdef _DEBUG
   601         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
   597         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
   602         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
   598         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
   603 #endif
   599 #endif
   645        minor = stmt.ColumnInt( column++);
   641        minor = stmt.ColumnInt( column++);
   646        }
   642        }
   647     
   643     
   648     stmt.Close();
   644     stmt.Close();
   649     
   645     
   650     if(ret < 0 )
   646     if( rowStatus < 0 )
   651         {
   647         {
   652 #ifdef _DEBUG
   648 #ifdef _DEBUG
   653          TPtrC errorMsg = iDatabase.LastErrorMessage();
   649          TPtrC errorMsg = iDatabase.LastErrorMessage();
   654         TN_DEBUG2( "RThumbnailTransaction::CheckVersion() lastError %S, ret = %d" , &errorMsg);
   650         TN_DEBUG2( "RThumbnailTransaction::CheckVersion() lastError %S, ret = %d" , &errorMsg);
   655 #endif
   651 #endif
   696        stmt.ColumnText( column, imei);  
   692        stmt.ColumnText( column, imei);  
   697        }
   693        }
   698     
   694     
   699     stmt.Close(); 
   695     stmt.Close(); 
   700     
   696     
   701     if(ret < 0 )
   697     if( rowStatus < 0 )
   702         {
   698         {
   703 #ifdef _DEBUG
   699 #ifdef _DEBUG
   704          TPtrC errorMsg = iDatabase.LastErrorMessage();
   700          TPtrC errorMsg = iDatabase.LastErrorMessage();
   705         TN_DEBUG2( "RThumbnailTransaction::CheckImei() lastError %S, ret = %d" , &errorMsg);
   701         TN_DEBUG2( "RThumbnailTransaction::CheckImei() lastError %S, ret = %d" , &errorMsg);
   706 #endif
   702 #endif
  1264                 TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - encode jpg" );
  1260                 TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - encode jpg" );
  1265             
  1261             
  1266                 HBufC8* data = NULL;
  1262                 HBufC8* data = NULL;
  1267                 CleanupStack::PushL( data );
  1263                 CleanupStack::PushL( data );
  1268                 
  1264                 
  1269                 CImageEncoder* encoder = CImageEncoder::DataNewL( data,  KJpegMime(), CImageEncoder::EOptionAlwaysThread );
  1265                 CImageEncoder* encoder = NULL;
       
  1266                 TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::EHwImplementation, data, CImageEncoder::EOptionAlwaysThread ) );
       
  1267                 if ( decErr != KErrNone )
       
  1268                     {
       
  1269                     TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder failed %d", decErr);
       
  1270                 
       
  1271                     TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, CImageEncoder::EOptionAlwaysThread ) );
       
  1272                     if ( decErr != KErrNone )
       
  1273                         {
       
  1274                         TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder failed %d", decErr);
       
  1275                     
       
  1276                         TRAPD( decErr, encoder = CImageEncoder::DataNewL( data,  KJpegMime(), CImageEncoder::EOptionAlwaysThread ) );
       
  1277                         if ( decErr != KErrNone )
       
  1278                             {
       
  1279                             TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder failed %d", decErr);
       
  1280                             
       
  1281                             User::Leave(decErr);
       
  1282                             }
       
  1283                         else
       
  1284                             {
       
  1285                             TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder created" );
       
  1286                             }
       
  1287                         }
       
  1288                     else
       
  1289                         {
       
  1290                         TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder created" );
       
  1291                         }
       
  1292                     }
       
  1293                 else
       
  1294                     {
       
  1295                     TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder created" );
       
  1296                     }             
       
  1297                 
  1270                 CleanupStack::Pop( data );
  1298                 CleanupStack::Pop( data );
  1271                 CleanupStack::PushL( encoder );
  1299                 CleanupStack::PushL( encoder );
  1272              
  1300              
  1273                 CFrameImageData* frameImageData = CFrameImageData::NewL();
  1301                 CFrameImageData* frameImageData = CFrameImageData::NewL();
  1274                 CleanupStack::PushL( frameImageData );
  1302                 CleanupStack::PushL( frameImageData );