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 } |