imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp
branchRCL_3
changeset 10 ee674526fac5
parent 9 dea39715fc05
child 11 85a88bc05e45
equal deleted inserted replaced
9:dea39715fc05 10:ee674526fac5
    34 #include "thumbnaildiskunmountobserver.h"
    34 #include "thumbnaildiskunmountobserver.h"
    35 #include "thumbnailpanic.h"
    35 #include "thumbnailpanic.h"
    36 #include "thumbnailcenrep.h"
    36 #include "thumbnailcenrep.h"
    37 #include "thumbnailmemorycardobserver.h"
    37 #include "thumbnailmemorycardobserver.h"
    38 #include "tmgetimei.h"
    38 #include "tmgetimei.h"
       
    39 #include "thumbnailfetchedchecker.h"
    39 
    40 
    40 
    41 
    41 _LIT8( KThumbnailMimeWildCard, "*" );
    42 _LIT8( KThumbnailMimeWildCard, "*" );
    42 _LIT8( KThumbnailMimeImage, "image" );
    43 _LIT8( KThumbnailMimeImage, "image" );
    43 _LIT8( KThumbnailMimeVideo, "video" );
    44 _LIT8( KThumbnailMimeVideo, "video" );
    71     EGetMimeTypeList,
    72     EGetMimeTypeList,
    72     ERequestThumbByIdAsync,
    73     ERequestThumbByIdAsync,
    73     ERequestThumbByBufferAsync,
    74     ERequestThumbByBufferAsync,
    74     ERequestSetThumbnailByBuffer,
    75     ERequestSetThumbnailByBuffer,
    75     EDeleteThumbnailsById,
    76     EDeleteThumbnailsById,
    76     EReserved1,
    77     ERenameThumbnails,
    77     EUpdateThumbnails,
    78     EUpdateThumbnails,
    78     ERequestSetThumbnailByBitmap,
    79     ERequestSetThumbnailByBitmap,
    79     EThumbnailServerRequestCount,
    80     EThumbnailServerRequestCount,
    80 };
    81 };
    81 
    82 
    94     CPolicyServer::ECustomCheck,    // EGetMimeTypeList
    95     CPolicyServer::ECustomCheck,    // EGetMimeTypeList
    95     CPolicyServer::ECustomCheck,    // ERequestThumbByIdAsync
    96     CPolicyServer::ECustomCheck,    // ERequestThumbByIdAsync
    96     CPolicyServer::ECustomCheck,    // ERequestThumbByBufferAsync
    97     CPolicyServer::ECustomCheck,    // ERequestThumbByBufferAsync
    97     CPolicyServer::ECustomCheck,    // ERequestSetThumbnailByBuffer
    98     CPolicyServer::ECustomCheck,    // ERequestSetThumbnailByBuffer
    98     CPolicyServer::ECustomCheck,    // EDeleteThumbnailsById
    99     CPolicyServer::ECustomCheck,    // EDeleteThumbnailsById
    99     CPolicyServer::ECustomCheck,    
   100     CPolicyServer::ECustomCheck,    // ERenameThumbnails
   100     CPolicyServer::ECustomCheck,    // EUpdateThumbnails
   101     CPolicyServer::ECustomCheck,    // EUpdateThumbnails
   101     CPolicyServer::ECustomCheck,    // ERequestSetThumbnailByBitmap
   102     CPolicyServer::ECustomCheck,    // ERequestSetThumbnailByBitmap
   102     CPolicyServer::ECustomCheck,    // EThumbnailServerRequestCount
   103     CPolicyServer::ECustomCheck,    // EThumbnailServerRequestCount
   103     };
   104     };
   104 
   105 
   140         case EDeleteThumbnails:
   141         case EDeleteThumbnails:
   141         case EGetMimeTypeBufferSize:
   142         case EGetMimeTypeBufferSize:
   142         case EGetMimeTypeList:
   143         case EGetMimeTypeList:
   143         case ERequestSetThumbnailByBuffer:
   144         case ERequestSetThumbnailByBuffer:
   144         case EDeleteThumbnailsById:
   145         case EDeleteThumbnailsById:
   145         case EUpdateThumbnails:   
   146         case EUpdateThumbnails:
       
   147         case ERenameThumbnails:    
   146         case ERequestSetThumbnailByBitmap:
   148         case ERequestSetThumbnailByBitmap:
   147             {
   149             {
   148             if( aMsg.HasCapability( ECapabilityReadDeviceData ) && 
   150             if( aMsg.HasCapability( ECapabilityReadDeviceData ) && 
   149                 aMsg.HasCapability( ECapabilityWriteDeviceData ) )
   151                 aMsg.HasCapability( ECapabilityWriteDeviceData ) )
   150                 {
   152                 {
   151                 securityCheckResult = EPass;
   153                 securityCheckResult = EPass;
   152                 }
   154                 }
   153             break;
   155             break;
   154             }
   156             }
   155 
       
   156         case EReserved1:
       
   157         case EThumbnailServerRequestCount:
   157         case EThumbnailServerRequestCount:
   158         default:
   158         default:
   159             {
   159             {
   160             securityCheckResult = EFail;
   160             securityCheckResult = EFail;
   161             }
   161             }
   252     iFormatting = EFalse;
   252     iFormatting = EFalse;
   253     
   253     
   254     //OpenStoresL();
   254     //OpenStoresL();
   255     
   255     
   256     AddUnmountObserversL();
   256     AddUnmountObserversL();
       
   257     iFetchedChecker = CThumbnailFetchedChecker::NewL();
   257     }
   258     }
   258 
   259 
   259 
   260 
   260 // ---------------------------------------------------------------------------
   261 // ---------------------------------------------------------------------------
   261 // Destructor.
   262 // Destructor.
   265     {
   266     {
   266     TN_DEBUG1( "CThumbnailServer::~CThumbnailServer()" );
   267     TN_DEBUG1( "CThumbnailServer::~CThumbnailServer()" );
   267 
   268 
   268     iShutdown = ETrue;
   269     iShutdown = ETrue;
   269     
   270     
       
   271     delete iFetchedChecker;
   270     delete iShutdownObserver;
   272     delete iShutdownObserver;
   271     delete iProcessor;
   273     delete iProcessor;
   272     
   274     
   273     if(iReconnect)
   275     if(iReconnect)
   274         {
   276         {
   534         }
   536         }
   535     else
   537     else
   536         {
   538         {
   537         TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!");
   539         TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!");
   538         }
   540         }
       
   541     if( iFetchedChecker )    
       
   542         {
       
   543         iFetchedChecker->SetFetchResult( aPath, KErrNone );
       
   544         }
   539     }
   545     }
   540 
   546 
   541 
   547 
   542 // -----------------------------------------------------------------------------
   548 // -----------------------------------------------------------------------------
   543 // CThumbnailServer::FetchThumbnailL()
   549 // CThumbnailServer::FetchThumbnailL()
   545 //
   551 //
   546 void CThumbnailServer::FetchThumbnailL( const TDesC& aPath, CFbsBitmap* &
   552 void CThumbnailServer::FetchThumbnailL( const TDesC& aPath, CFbsBitmap* &
   547     aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize )
   553     aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize )
   548     {
   554     {
   549     TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize );
   555     TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize );
   550 
   556     if( iFetchedChecker )
   551     StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize);
   557         {
       
   558         TInt err( iFetchedChecker->LastFetchResult( aPath ) );
       
   559         if ( err == KErrNone ) // To avoid useless sql gets that fails for sure
       
   560             {
       
   561             TRAP( err, StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize) );
       
   562             if ( err != KErrNone )
       
   563                 {
       
   564                 iFetchedChecker->SetFetchResult( aPath, err );
       
   565                 }
       
   566             }
       
   567         User::LeaveIfError( err );
       
   568         }
       
   569     else
       
   570         {
       
   571         StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize);
       
   572         }
   552     }
   573     }
   553 
   574 
   554 
   575 
   555 
   576 
   556 // -----------------------------------------------------------------------------
   577 // -----------------------------------------------------------------------------
   598 void CThumbnailServer::DeleteThumbnailsL( const TDesC& aPath )
   619 void CThumbnailServer::DeleteThumbnailsL( const TDesC& aPath )
   599     {
   620     {
   600     TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath);
   621     TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath);
   601     
   622     
   602     StoreForPathL( aPath )->DeleteThumbnailsL( aPath );
   623     StoreForPathL( aPath )->DeleteThumbnailsL( aPath );
       
   624     if( iFetchedChecker ) 
       
   625         {
       
   626         iFetchedChecker->SetFetchResult( aPath, KErrNone );
       
   627         }
   603     }
   628     }
   604 
   629 
   605 // -----------------------------------------------------------------------------
   630 // -----------------------------------------------------------------------------
   606 // CThumbnailServer::ResolveMimeTypeL()
   631 // CThumbnailServer::ResolveMimeTypeL()
   607 // -----------------------------------------------------------------------------
   632 // -----------------------------------------------------------------------------
  1188   
  1213   
  1189     
  1214     
  1190     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new");
  1215     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new");
  1191     
  1216     
  1192     return EFalse;
  1217     return EFalse;
       
  1218     }
       
  1219 
       
  1220 // -----------------------------------------------------------------------------
       
  1221 // Renames thumbnails.
       
  1222 // -----------------------------------------------------------------------------
       
  1223 //
       
  1224 void CThumbnailServer::RenameThumbnailsL( const TDesC& aCurrentPath, const TDesC& aNewPath )
       
  1225     {
       
  1226     TN_DEBUG2( "CThumbnailServer::RenameThumbnailsL(%S)", &aCurrentPath);
       
  1227     
       
  1228     StoreForPathL( aCurrentPath )->RenameThumbnailsL( aCurrentPath, aNewPath );
  1193     }
  1229     }
  1194 
  1230 
  1195 // -----------------------------------------------------------------------------
  1231 // -----------------------------------------------------------------------------
  1196 // CThumbnailServer::MimeTypeFromFileExt()
  1232 // CThumbnailServer::MimeTypeFromFileExt()
  1197 // -----------------------------------------------------------------------------
  1233 // -----------------------------------------------------------------------------