imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp
branchRCL_3
changeset 41 9d4d3445ce6e
parent 40 6257223ede8a
child 58 9e8b0cc88842
equal deleted inserted replaced
40:6257223ede8a 41:9d4d3445ce6e
    15  *
    15  *
    16 */
    16 */
    17 
    17 
    18 #include "thumbnailfetchedchecker.h"
    18 #include "thumbnailfetchedchecker.h"
    19 #include "thumbnaillog.h"
    19 #include "thumbnaillog.h"
    20 #include "OstTraceDefinitions.h"
       
    21 #ifdef OST_TRACE_COMPILER_IN_USE
       
    22 #include "thumbnailfetchedcheckerTraces.h"
       
    23 #endif
       
    24 
       
    25 
    20 
    26 const int KMaxStoredEntries = 100;
    21 const int KMaxStoredEntries = 100;
    27 
    22 
    28 // -----------------------------------------------------------------------------
    23 // -----------------------------------------------------------------------------
    29 // CThumbnailFetchedChecker::CThumbnailFetchedChecker()
    24 // CThumbnailFetchedChecker::CThumbnailFetchedChecker()
    56 // -----------------------------------------------------------------------------
    51 // -----------------------------------------------------------------------------
    57 //
    52 //
    58 TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize )
    53 TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize )
    59     {
    54     {
    60     TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize);
    55     TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize);
    61     OstTraceExt2( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_LASTFETCHRESULT, "CThumbnailFetchedChecker::LastFetchResult;aUri=%S;aThumbnailSize=%hu", aUri, aThumbnailSize );
       
    62 
    56 
    63     CEntry* entry = NULL;
    57     CEntry* entry = NULL;
    64     TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) );
    58     TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) );
    65     if ( !err && entry )
    59     if ( !err && entry )
    66         {
    60         {
    67         TInt ret = iNotFetched.FindInOrder( entry, CEntry::FindCB );
    61         TInt ret = iNotFetched.FindInOrder( entry, CEntry::FindCB );
    68         if ( ret != KErrNotFound )
    62         if ( ret != KErrNotFound )
    69             {
    63             {
    70             TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found");
    64             TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found");
    71             OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_LASTFETCHRESULT, "CThumbnailFetchedChecker::LastFetchResult  - error found" );
       
    72             delete entry;
    65             delete entry;
    73             entry = NULL;
    66             entry = NULL;
    74             return iNotFetched[ ret ]->iError;
    67             return iNotFetched[ ret ]->iError;
    75             }
    68             }
    76         }
    69         }
    86 // -----------------------------------------------------------------------------
    79 // -----------------------------------------------------------------------------
    87 //
    80 //
    88 void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
    81 void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
    89     {
    82     {
    90     TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
    83     TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
    91     OstTraceExt3( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
       
    92     if ( aError == KErrNone )
    84     if ( aError == KErrNone )
    93         {
    85         {
    94         // Remove successful results from store
    86         // Remove successful results from store
    95         CEntry* entry = NULL;
    87         CEntry* entry = NULL;
    96         TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
    88         TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
    98             {
    90             {
    99             TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB );
    91             TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB );
   100             if ( i >= 0 )
    92             if ( i >= 0 )
   101                 {
    93                 {
   102                 TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Remove successful results from store %d",  iNotFetched.Count() );
    94                 TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Remove successful results from store %d",  iNotFetched.Count() );
   103                 OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;iNotFetched.Count()=%d", iNotFetched.Count() );
       
   104                 delete iNotFetched[ i ];
    95                 delete iNotFetched[ i ];
   105                 iNotFetched[ i ] = NULL;
    96                 iNotFetched[ i ] = NULL;
   106                 iNotFetched.Remove( i );
    97                 iNotFetched.Remove( i );
   107                 }
    98                 }
   108             }
    99             }
   113         {
   104         {
   114 
   105 
   115         // Add or update
   106         // Add or update
   116         CEntry* entry = NULL;
   107         CEntry* entry = NULL;
   117         TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
   108         TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
   118         OstTraceExt3( TRACE_NORMAL, DUP4_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
       
   119         if ( !err && entry )
   109         if ( !err && entry )
   120             {
   110             {
   121             err = iNotFetched.Find( entry );
   111             err = iNotFetched.Find( entry );
   122             if ( err != KErrNotFound )
   112             if ( err != KErrNotFound )
   123                 {
   113                 {
   124                 // update existing fetch result
   114                 // update existing fetch result
   125                 TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB );
   115                 TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB );
   126                 if ( i >= 0 )
   116                 if ( i >= 0 )
   127                     {
   117                     {
   128                     TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" );
   118                     TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" );
   129                     OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult - Update fetched tn error" );
       
   130                     iNotFetched[ i ]->iError = aError;
   119                     iNotFetched[ i ]->iError = aError;
   131                     }
   120                     }
   132                 }
   121                 }
   133             else 
   122             else 
   134                 {
   123                 {
   137                     // insert new fetch result
   126                     // insert new fetch result
   138                     TInt err = iNotFetched.InsertInOrder( entry, CEntry::InsertCB );
   127                     TInt err = iNotFetched.InsertInOrder( entry, CEntry::InsertCB );
   139                     if ( err == KErrNone )
   128                     if ( err == KErrNone )
   140                         {
   129                         {
   141                         TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Inserted new fetched tn error %d", iNotFetched.Count());	
   130                         TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Inserted new fetched tn error %d", iNotFetched.Count());	
   142                         OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;iNotFetched.Count()=%d", iNotFetched.Count() );
       
   143                         entry = NULL; // owned by array now
   131                         entry = NULL; // owned by array now
   144                         }
   132                         }
   145                     }
   133                     }
   146                 }
   134                 }
   147             
   135             
   156 // -----------------------------------------------------------------------------
   144 // -----------------------------------------------------------------------------
   157 //
   145 //
   158 void CThumbnailFetchedChecker::DeleteFetchResult( const TDesC& aUri )
   146 void CThumbnailFetchedChecker::DeleteFetchResult( const TDesC& aUri )
   159     {
   147     {
   160     TN_DEBUG2( "CThumbnailFetchedChecker::DeleteFetchResult(%S)", &aUri);
   148     TN_DEBUG2( "CThumbnailFetchedChecker::DeleteFetchResult(%S)", &aUri);
   161     OstTraceExt1( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_DELETEFETCHRESULT, "CThumbnailFetchedChecker::DeleteFetchResult;aUri=%S", aUri );
       
   162     // delete all entries of passed uri
   149     // delete all entries of passed uri
   163     TInt ret;
   150     TInt ret;
   164     do
   151     do
   165         {
   152         {
   166         ret = iNotFetched.FindInOrder( aUri, CEntry::FindCBUri );
   153         ret = iNotFetched.FindInOrder( aUri, CEntry::FindCBUri );
   167         if ( ret >= 0 )
   154         if ( ret >= 0 )
   168             {
   155             {
   169             TN_DEBUG1( "CThumbnailFetchedChecker::DeleteFetchResult() -> Deteled URI from fetched list" );	
   156             TN_DEBUG1( "CThumbnailFetchedChecker::DeleteFetchResult() -> Deteled URI from fetched list" );	
   170             OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_DELETEFETCHRESULT, "CThumbnailFetchedChecker::DeleteFetchResult - Deteled URI from fetched list" );
       
   171             delete iNotFetched[ ret ];
   157             delete iNotFetched[ ret ];
   172             iNotFetched[ ret ] = NULL;
   158             iNotFetched[ ret ] = NULL;
   173             iNotFetched.Remove( ret );
   159             iNotFetched.Remove( ret );
   174             }
   160             }
   175         }
   161         }
   182 // -----------------------------------------------------------------------------
   168 // -----------------------------------------------------------------------------
   183 //
   169 //
   184 void CThumbnailFetchedChecker::RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri )
   170 void CThumbnailFetchedChecker::RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri )
   185     {
   171     {
   186     TN_DEBUG3( "CThumbnailFetchedChecker::RenameFetchResult(aNewUri=%S aOldUri=%S)", &aNewUri, &aOldUri);
   172     TN_DEBUG3( "CThumbnailFetchedChecker::RenameFetchResult(aNewUri=%S aOldUri=%S)", &aNewUri, &aOldUri);
   187     OstTraceExt2( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_RENAMEFETCHRESULTL, "CThumbnailFetchedChecker::RenameFetchResultL;aNewUri=%S;aOldUri=%S", aNewUri, aOldUri );
       
   188     // change every occurence of passed uri
   173     // change every occurence of passed uri
   189     TInt ret;
   174     TInt ret;
   190     do
   175     do
   191         {
   176         {
   192         ret = iNotFetched.FindInOrder( aOldUri, CEntry::FindCBUri );
   177         ret = iNotFetched.FindInOrder( aOldUri, CEntry::FindCBUri );
   195             delete iNotFetched[ ret ]->iUri;
   180             delete iNotFetched[ ret ]->iUri;
   196             iNotFetched[ ret ]->iUri = NULL;
   181             iNotFetched[ ret ]->iUri = NULL;
   197 
   182 
   198             iNotFetched[ ret ]->iUri = aNewUri.AllocL();
   183             iNotFetched[ ret ]->iUri = aNewUri.AllocL();
   199             TN_DEBUG1( "CThumbnailFetchedChecker::RenameeFetchResult() -> Renamed URI in fetched list" );	
   184             TN_DEBUG1( "CThumbnailFetchedChecker::RenameeFetchResult() -> Renamed URI in fetched list" );	
   200             OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_RENAMEFETCHRESULTL, "CThumbnailFetchedChecker::RenameFetchResultL - Renamed URI in fetched list" );
       
   201             }
   185             }
   202         }
   186         }
   203     while(ret != KErrNotFound );
   187     while(ret != KErrNotFound );
   204     
   188     
   205     }
   189     }
   209 // -----------------------------------------------------------------------------
   193 // -----------------------------------------------------------------------------
   210 //
   194 //
   211 void CThumbnailFetchedChecker::Reset()
   195 void CThumbnailFetchedChecker::Reset()
   212     {
   196     {
   213     TN_DEBUG1( "CThumbnailFetchedChecker::Reset()");
   197     TN_DEBUG1( "CThumbnailFetchedChecker::Reset()");
   214     OstTrace0( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_RESET, "CThumbnailFetchedChecker::Reset" );
       
   215     iNotFetched.ResetAndDestroy();
   198     iNotFetched.ResetAndDestroy();
   216     }
   199     }
   217 
   200 
   218 // -----------------------------------------------------------------------------
   201 // -----------------------------------------------------------------------------
   219 // CThumbnailFetchedChecker::CEntry::NewL()
   202 // CThumbnailFetchedChecker::CEntry::NewL()
   221 //
   204 //
   222 CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL(
   205 CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL(
   223         const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
   206         const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
   224     {
   207     {
   225     TN_DEBUG4( "CThumbnailFetchedChecker::CEntry::NewL(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
   208     TN_DEBUG4( "CThumbnailFetchedChecker::CEntry::NewL(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
   226     OstTraceExt3( TRACE_NORMAL, CENTRY_NEWL, "CEntry::NewL;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
       
   227     CEntry* self  = new (ELeave) CEntry();
   209     CEntry* self  = new (ELeave) CEntry();
   228     if ( self )
   210     if ( self )
   229         {
   211         {
   230         self->iUri = aUri.AllocL();
   212         self->iUri = aUri.AllocL();
   231         self->iSize = aThumbnailSize;
   213         self->iSize = aThumbnailSize;
   245 //
   227 //
   246 TInt CThumbnailFetchedChecker::CEntry::FindCB(
   228 TInt CThumbnailFetchedChecker::CEntry::FindCB(
   247         const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 )
   229         const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 )
   248     {
   230     {
   249     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::FindCB");
   231     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::FindCB");
   250     OstTrace0( TRACE_NORMAL, CENTRY_FINDCB, "CEntry::FindCB" );
       
   251     if( aEntry1.iSize == aEntry.iSize)
   232     if( aEntry1.iSize == aEntry.iSize)
   252         {
   233         {
   253         // return index if size and uri matches
   234         // return index if size and uri matches
   254         return aEntry.iUri->CompareF( *( aEntry1.iUri ) );
   235         return aEntry.iUri->CompareF( *( aEntry1.iUri ) );
   255         }
   236         }
   265 //
   246 //
   266 TInt CThumbnailFetchedChecker::CEntry::FindCBUri(
   247 TInt CThumbnailFetchedChecker::CEntry::FindCBUri(
   267         const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry )
   248         const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry )
   268     {
   249     {
   269     TN_DEBUG2( "CThumbnailFetchedChecker::CEntry::FindCBUri(aUri=%S", &aUri);
   250     TN_DEBUG2( "CThumbnailFetchedChecker::CEntry::FindCBUri(aUri=%S", &aUri);
   270     OstTrace0( TRACE_NORMAL, CENTRY_FINDCBURI, "CEntry::FindCBUri" );
       
   271     return aUri->CompareF( *( aEntry.iUri ) );
   251     return aUri->CompareF( *( aEntry.iUri ) );
   272     }
   252     }
   273 
   253 
   274 // -----------------------------------------------------------------------------
   254 // -----------------------------------------------------------------------------
   275 // CThumbnailFetchedChecker::CEntry::InsertCB()
   255 // CThumbnailFetchedChecker::CEntry::InsertCB()
   278 TInt CThumbnailFetchedChecker::CEntry::InsertCB(
   258 TInt CThumbnailFetchedChecker::CEntry::InsertCB(
   279         const CThumbnailFetchedChecker::CEntry& aEntry1,
   259         const CThumbnailFetchedChecker::CEntry& aEntry1,
   280         const CThumbnailFetchedChecker::CEntry& aEntry2 )
   260         const CThumbnailFetchedChecker::CEntry& aEntry2 )
   281     {
   261     {
   282     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::InsertCB");
   262     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::InsertCB");
   283     OstTrace0( TRACE_NORMAL, CENTRY_INSERTCB, "CEntry::InsertCB" );
       
   284     if( aEntry1.iSize == aEntry2.iSize)
   263     if( aEntry1.iSize == aEntry2.iSize)
   285         {
   264         {
   286         // return index if size and uri matches
   265         // return index if size and uri matches
   287         return aEntry1.iUri->CompareF( *( aEntry2.iUri ) );
   266         return aEntry1.iUri->CompareF( *( aEntry2.iUri ) );
   288         }
   267         }