48 |
47 |
49 // ----------------------------------------------------------------------------- |
48 // ----------------------------------------------------------------------------- |
50 // CThumbnailFetchedChecker::LastFetchResult() |
49 // CThumbnailFetchedChecker::LastFetchResult() |
51 // ----------------------------------------------------------------------------- |
50 // ----------------------------------------------------------------------------- |
52 // |
51 // |
53 TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize ) |
52 TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri ) |
54 { |
53 { |
55 TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize); |
54 TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); |
56 |
55 if ( i >= 0 && i < iNotFetched.Count() ) |
57 CEntry* entry = NULL; |
|
58 TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) ); |
|
59 if ( !err && entry ) |
|
60 { |
56 { |
61 TInt ret = iNotFetched.FindInOrder( entry, CEntry::FindCB ); |
57 return iNotFetched[ i ]->iError; |
62 if ( ret != KErrNotFound ) |
|
63 { |
|
64 TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found"); |
|
65 delete entry; |
|
66 entry = NULL; |
|
67 return iNotFetched[ ret ]->iError; |
|
68 } |
|
69 } |
58 } |
70 |
|
71 delete entry; |
|
72 entry = NULL; |
|
73 |
|
74 return KErrNone; |
59 return KErrNone; |
75 } |
60 } |
76 |
61 |
77 // ----------------------------------------------------------------------------- |
62 // ----------------------------------------------------------------------------- |
78 // CThumbnailFetchedChecker::SetFetchResult() |
63 // CThumbnailFetchedChecker::SetFetchResult() |
79 // ----------------------------------------------------------------------------- |
64 // ----------------------------------------------------------------------------- |
80 // |
65 // |
81 void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ) |
66 void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, TInt aError ) |
82 { |
67 { |
83 TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError); |
|
84 if ( aError == KErrNone ) |
68 if ( aError == KErrNone ) |
85 { |
69 { |
86 // Remove successful results from store |
70 // Do not store successful results |
87 CEntry* entry = NULL; |
71 TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); |
88 TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) ); |
72 if ( i >= 0 && i < iNotFetched.Count() ) |
89 if ( !err && entry ) |
|
90 { |
73 { |
91 TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB ); |
74 delete iNotFetched[ i ]; |
92 if ( i >= 0 ) |
75 iNotFetched.Remove( i ); |
93 { |
|
94 TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Remove successful results from store %d", iNotFetched.Count() ); |
|
95 delete iNotFetched[ i ]; |
|
96 iNotFetched[ i ] = NULL; |
|
97 iNotFetched.Remove( i ); |
|
98 } |
|
99 } |
76 } |
100 entry = NULL; |
|
101 delete entry; |
|
102 } |
77 } |
103 else |
78 else |
104 { |
79 { |
105 |
|
106 // Add or update |
80 // Add or update |
107 CEntry* entry = NULL; |
81 CEntry* entry = NULL; |
108 TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) ); |
82 TRAPD( err, entry = CEntry::NewL( aUri, aError ) ); |
109 if ( !err && entry ) |
83 if ( !err && entry ) |
110 { |
84 { |
111 err = iNotFetched.Find( entry ); |
85 err = iNotFetched.Find( entry ); |
112 if ( err != KErrNotFound ) |
86 if ( err != KErrNotFound ) |
113 { |
87 { |
114 // update existing fetch result |
88 TInt i = iNotFetched.FindInOrder( aUri, CEntry::FindCB ); |
115 TInt i = iNotFetched.FindInOrder( entry, CEntry::FindCB ); |
89 if ( i >= 0 && i < iNotFetched.Count() ) |
116 if ( i >= 0 ) |
|
117 { |
90 { |
118 TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" ); |
|
119 iNotFetched[ i ]->iError = aError; |
91 iNotFetched[ i ]->iError = aError; |
120 } |
92 } |
121 } |
93 } |
122 else |
94 else |
123 { |
95 { |
124 if( iNotFetched.Count() < KMaxStoredEntries ) |
96 if( iNotFetched.Count() < KMaxStoredEntries ) |
125 { |
97 { |
126 // insert new fetch result |
|
127 TInt err = iNotFetched.InsertInOrder( entry, CEntry::InsertCB ); |
98 TInt err = iNotFetched.InsertInOrder( entry, CEntry::InsertCB ); |
128 if ( err == KErrNone ) |
99 if ( err == KErrNone ) |
129 { |
100 { |
130 TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Inserted new fetched tn error %d", iNotFetched.Count()); |
|
131 entry = NULL; // owned by array now |
101 entry = NULL; // owned by array now |
132 } |
102 } |
133 } |
103 } |
134 } |
104 } |
135 |
105 |
138 } |
108 } |
139 } |
109 } |
140 } |
110 } |
141 |
111 |
142 // ----------------------------------------------------------------------------- |
112 // ----------------------------------------------------------------------------- |
143 // CThumbnailFetchedChecker::DeleteFetchResult() |
|
144 // ----------------------------------------------------------------------------- |
|
145 // |
|
146 void CThumbnailFetchedChecker::DeleteFetchResult( const TDesC& aUri ) |
|
147 { |
|
148 TN_DEBUG2( "CThumbnailFetchedChecker::DeleteFetchResult(%S)", &aUri); |
|
149 // delete all entries of passed uri |
|
150 TInt ret; |
|
151 do |
|
152 { |
|
153 ret = iNotFetched.FindInOrder( aUri, CEntry::FindCBUri ); |
|
154 if ( ret >= 0 ) |
|
155 { |
|
156 TN_DEBUG1( "CThumbnailFetchedChecker::DeleteFetchResult() -> Deteled URI from fetched list" ); |
|
157 delete iNotFetched[ ret ]; |
|
158 iNotFetched[ ret ] = NULL; |
|
159 iNotFetched.Remove( ret ); |
|
160 } |
|
161 } |
|
162 while(ret != KErrNotFound ); |
|
163 |
|
164 } |
|
165 |
|
166 // ----------------------------------------------------------------------------- |
|
167 // CThumbnailFetchedChecker::LastFetchResult() |
|
168 // ----------------------------------------------------------------------------- |
|
169 // |
|
170 void CThumbnailFetchedChecker::RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri ) |
|
171 { |
|
172 TN_DEBUG3( "CThumbnailFetchedChecker::RenameFetchResult(aNewUri=%S aOldUri=%S)", &aNewUri, &aOldUri); |
|
173 // change every occurence of passed uri |
|
174 TInt ret; |
|
175 do |
|
176 { |
|
177 ret = iNotFetched.FindInOrder( aOldUri, CEntry::FindCBUri ); |
|
178 if ( ret >= 0 ) |
|
179 { |
|
180 delete iNotFetched[ ret ]->iUri; |
|
181 iNotFetched[ ret ]->iUri = NULL; |
|
182 |
|
183 iNotFetched[ ret ]->iUri = aNewUri.AllocL(); |
|
184 TN_DEBUG1( "CThumbnailFetchedChecker::RenameeFetchResult() -> Renamed URI in fetched list" ); |
|
185 } |
|
186 } |
|
187 while(ret != KErrNotFound ); |
|
188 |
|
189 } |
|
190 |
|
191 // ----------------------------------------------------------------------------- |
|
192 // CThumbnailFetchedChecker::Reset() |
113 // CThumbnailFetchedChecker::Reset() |
193 // ----------------------------------------------------------------------------- |
114 // ----------------------------------------------------------------------------- |
194 // |
115 // |
195 void CThumbnailFetchedChecker::Reset() |
116 void CThumbnailFetchedChecker::Reset() |
196 { |
117 { |
197 TN_DEBUG1( "CThumbnailFetchedChecker::Reset()"); |
|
198 iNotFetched.ResetAndDestroy(); |
118 iNotFetched.ResetAndDestroy(); |
199 } |
119 } |
200 |
120 |
201 // ----------------------------------------------------------------------------- |
121 // ----------------------------------------------------------------------------- |
202 // CThumbnailFetchedChecker::CEntry::NewL() |
122 // CThumbnailFetchedChecker::CEntry::New() |
203 // ----------------------------------------------------------------------------- |
123 // ----------------------------------------------------------------------------- |
204 // |
124 // |
205 CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL( |
125 CThumbnailFetchedChecker::CEntry* CThumbnailFetchedChecker::CEntry::NewL( |
206 const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError ) |
126 const TDesC& aUri, TInt aError ) |
207 { |
127 { |
208 TN_DEBUG4( "CThumbnailFetchedChecker::CEntry::NewL(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError); |
|
209 CEntry* self = new (ELeave) CEntry(); |
128 CEntry* self = new (ELeave) CEntry(); |
210 if ( self ) |
129 if ( self ) |
211 { |
130 { |
212 self->iUri = aUri.AllocL(); |
131 self->iUri = aUri.Alloc(); |
213 self->iSize = aThumbnailSize; |
|
214 self->iError = aError; |
132 self->iError = aError; |
215 if ( !self->iUri ) |
133 if ( !self->iUri ) |
216 { |
134 { |
217 delete self; |
135 delete self; |
218 self = NULL; |
136 self = NULL; |
224 // ----------------------------------------------------------------------------- |
142 // ----------------------------------------------------------------------------- |
225 // CThumbnailFetchedChecker::CEntry::FindCB() |
143 // CThumbnailFetchedChecker::CEntry::FindCB() |
226 // ----------------------------------------------------------------------------- |
144 // ----------------------------------------------------------------------------- |
227 // |
145 // |
228 TInt CThumbnailFetchedChecker::CEntry::FindCB( |
146 TInt CThumbnailFetchedChecker::CEntry::FindCB( |
229 const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 ) |
147 const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry ) |
230 { |
148 { |
231 TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::FindCB"); |
|
232 if( aEntry1.iSize == aEntry.iSize) |
|
233 { |
|
234 // return index if size and uri matches |
|
235 return aEntry.iUri->CompareF( *( aEntry1.iUri ) ); |
|
236 } |
|
237 else |
|
238 { |
|
239 return KErrNotFound; |
|
240 } |
|
241 } |
|
242 |
|
243 // ----------------------------------------------------------------------------- |
|
244 // CThumbnailFetchedChecker::CEntry::FindCBUri() |
|
245 // ----------------------------------------------------------------------------- |
|
246 // |
|
247 TInt CThumbnailFetchedChecker::CEntry::FindCBUri( |
|
248 const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry ) |
|
249 { |
|
250 TN_DEBUG2( "CThumbnailFetchedChecker::CEntry::FindCBUri(aUri=%S", &aUri); |
|
251 return aUri->CompareF( *( aEntry.iUri ) ); |
149 return aUri->CompareF( *( aEntry.iUri ) ); |
252 } |
150 } |
253 |
151 |
254 // ----------------------------------------------------------------------------- |
152 // ----------------------------------------------------------------------------- |
255 // CThumbnailFetchedChecker::CEntry::InsertCB() |
153 // CThumbnailFetchedChecker::CEntry::InsertCB() |
257 // |
155 // |
258 TInt CThumbnailFetchedChecker::CEntry::InsertCB( |
156 TInt CThumbnailFetchedChecker::CEntry::InsertCB( |
259 const CThumbnailFetchedChecker::CEntry& aEntry1, |
157 const CThumbnailFetchedChecker::CEntry& aEntry1, |
260 const CThumbnailFetchedChecker::CEntry& aEntry2 ) |
158 const CThumbnailFetchedChecker::CEntry& aEntry2 ) |
261 { |
159 { |
262 TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::InsertCB"); |
160 return aEntry1.iUri->CompareF( *( aEntry2.iUri ) ); |
263 if( aEntry1.iSize == aEntry2.iSize) |
|
264 { |
|
265 // return index if size and uri matches |
|
266 return aEntry1.iUri->CompareF( *( aEntry2.iUri ) ); |
|
267 } |
|
268 else |
|
269 { |
|
270 return KErrNotFound; |
|
271 } |
|
272 } |
161 } |
273 |
162 |
274 // ----------------------------------------------------------------------------- |
163 // ----------------------------------------------------------------------------- |
275 // CThumbnailFetchedChecker::CEntry::CEntry() |
164 // CThumbnailFetchedChecker::CEntry::CEntry() |
276 // ----------------------------------------------------------------------------- |
165 // ----------------------------------------------------------------------------- |