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