107 User::LeaveIfError( iSession.Connect()); |
107 User::LeaveIfError( iSession.Connect()); |
108 User::LeaveIfError( iFs.Connect()); |
108 User::LeaveIfError( iFs.Connect()); |
109 User::LeaveIfError( iFs.ShareProtected()); |
109 User::LeaveIfError( iFs.ShareProtected()); |
110 |
110 |
111 if ( !RFbsSession::GetSession() ) |
111 if ( !RFbsSession::GetSession() ) |
|
112 { |
|
113 // We need to connect to Fbs (first user in this thread) |
|
114 // Maintain a reference count in TLS |
|
115 User::LeaveIfError( iFbsSession.Connect()); |
|
116 Dll::SetTls( (TAny*)1 ); |
|
117 TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", 1 ); |
|
118 } |
|
119 else |
|
120 { |
|
121 TInt sessionCount = (TInt)Dll::Tls(); |
|
122 if( sessionCount++ > 0 ) |
112 { |
123 { |
113 // We need to connect to Fbs (first user in this thread) |
124 // Increase the reference count in TLS |
114 // Maintain a reference count in TLS |
125 Dll::SetTls( (TAny*)sessionCount ); |
115 User::LeaveIfError( iFbsSession.Connect()); |
126 TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", sessionCount ); |
116 Dll::SetTls( (TAny*)1 ); |
127 } |
117 TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", 1 ); |
|
118 } |
|
119 else |
128 else |
120 { |
129 { |
121 TInt sessionCount = (TInt)Dll::Tls(); |
130 // Fbs connection was available in the beginning, no need to |
122 if( sessionCount++ > 0 ) |
131 // increase the reference count |
123 { |
|
124 // Increase the reference count in TLS |
|
125 Dll::SetTls( (TAny*)sessionCount ); |
|
126 TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", sessionCount ); |
|
127 } |
|
128 else |
|
129 { |
|
130 // Fbs connection was available in the beginning, no need to |
|
131 // increase the reference count |
|
132 } |
|
133 } |
132 } |
|
133 } |
134 |
134 |
135 // request processor |
135 // request processor |
136 iRequestQueue = CThumbnailRequestQueue::NewL(); |
136 iRequestQueue = CThumbnailRequestQueue::NewL(); |
137 } |
137 } |
138 |
138 |
149 iRequestId++; |
149 iRequestId++; |
150 TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() URI==%S, iThumbnailSize==%d %d", &aObjectSource.Uri(), iThumbnailSize, iRequestId ); |
150 TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() URI==%S, iThumbnailSize==%d %d", &aObjectSource.Uri(), iThumbnailSize, iRequestId ); |
151 |
151 |
152 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
152 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
153 |
153 |
|
154 TInt priority = ValidatePriority(aPriority); |
|
155 |
154 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
156 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
155 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
157 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
156 CleanupStack::PushL( getThumbnailActive ); |
158 CleanupStack::PushL( getThumbnailActive ); |
157 |
159 |
158 if(aObjectSource.Id() > 0) |
160 if(aObjectSource.Id() > 0) |
159 { |
161 { |
160 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
162 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
161 iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly, |
163 iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, |
162 KNullDesC, iThumbnailSize); |
164 KNullDesC, iThumbnailSize); |
163 } |
165 } |
164 else if ( aObjectSource.Uri().Length()) |
166 else if ( aObjectSource.Uri().Length()) |
165 { |
167 { |
166 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
168 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
167 iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly, |
169 iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, |
168 KNullDesC, iThumbnailSize ); |
170 KNullDesC, iThumbnailSize ); |
169 } |
171 } |
170 else |
172 else |
171 { |
173 { |
172 getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags, |
174 getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags, |
173 iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, aGeneratePersistentSizesOnly, |
175 iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly, |
174 KNullDesC, iThumbnailSize ); |
176 KNullDesC, iThumbnailSize ); |
175 } |
177 } |
176 |
178 |
177 iRequestQueue->AddRequestL( getThumbnailActive ); |
179 iRequestQueue->AddRequestL( getThumbnailActive ); |
178 CleanupStack::Pop( getThumbnailActive ); |
180 CleanupStack::Pop( getThumbnailActive ); |
208 iRequestId++; |
210 iRequestId++; |
209 TN_DEBUG5( "CThumbnailManagerImpl::GetThumbnailL() reqid==%d, aThumbnailId==%d, iThumbnailSize==%d %d", iRequestId, aThumbnailId, iThumbnailSize, iRequestId ); |
211 TN_DEBUG5( "CThumbnailManagerImpl::GetThumbnailL() reqid==%d, aThumbnailId==%d, iThumbnailSize==%d %d", iRequestId, aThumbnailId, iThumbnailSize, iRequestId ); |
210 |
212 |
211 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
213 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
212 |
214 |
|
215 TInt priority = ValidatePriority(aPriority); |
|
216 |
213 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
217 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
214 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
218 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
215 CleanupStack::PushL( getThumbnailActive ); |
219 CleanupStack::PushL( getThumbnailActive ); |
216 |
220 |
217 getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, |
221 getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags, |
218 iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, |
222 iQualityPreference, iSize, iDisplayMode, priority, aClientData, |
219 EFalse, KNullDesC, iThumbnailSize ); |
223 EFalse, KNullDesC, iThumbnailSize ); |
220 |
224 |
221 iRequestQueue->AddRequestL( getThumbnailActive ); |
225 iRequestQueue->AddRequestL( getThumbnailActive ); |
222 CleanupStack::Pop( getThumbnailActive ); |
226 CleanupStack::Pop( getThumbnailActive ); |
223 |
227 |
240 { |
244 { |
241 iRequestId++; |
245 iRequestId++; |
242 |
246 |
243 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
247 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
244 |
248 |
|
249 TInt priority = ValidatePriority(aPriority); |
|
250 |
245 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
251 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
246 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
252 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
247 CleanupStack::PushL( getThumbnailActive ); |
253 CleanupStack::PushL( getThumbnailActive ); |
248 |
254 |
249 if ( aObjectSource.Uri().Length()) |
255 if ( aObjectSource.Uri().Length()) |
250 { |
256 { |
251 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
257 getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags, |
252 iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, |
258 iQualityPreference, iSize, iDisplayMode, priority, aClientData, |
253 EFalse, aTargetUri, iThumbnailSize ); |
259 EFalse, aTargetUri, iThumbnailSize ); |
254 } |
260 } |
255 else |
261 else |
256 { |
262 { |
257 getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), |
263 getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), |
258 iFlags, iQualityPreference, iSize, iDisplayMode, aPriority, aClientData, |
264 iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData, |
259 EFalse, aTargetUri, iThumbnailSize ); |
265 EFalse, aTargetUri, iThumbnailSize ); |
260 } |
266 } |
261 |
267 |
262 iRequestQueue->AddRequestL( getThumbnailActive ); |
268 iRequestQueue->AddRequestL( getThumbnailActive ); |
263 CleanupStack::Pop( getThumbnailActive ); |
269 CleanupStack::Pop( getThumbnailActive ); |
279 { |
285 { |
280 iRequestId++; |
286 iRequestId++; |
281 |
287 |
282 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
288 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
283 |
289 |
|
290 TInt priority = ValidatePriority(aPriority); |
|
291 |
284 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
292 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
285 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
293 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
286 CleanupStack::PushL( getThumbnailActive ); |
294 CleanupStack::PushL( getThumbnailActive ); |
287 |
295 |
288 if ( aObjectSource.Uri().Length() && |
296 if ( aObjectSource.Uri().Length() && |
289 aObjectSource.Buffer() != NULL && |
297 aObjectSource.Buffer() != NULL && |
290 aObjectSource.MimeType() != KNullDesC8) |
298 aObjectSource.MimeType() != KNullDesC8) |
291 { |
299 { |
292 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(), |
300 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), aObjectSource.Id(), |
293 aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, |
301 aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, |
294 aPriority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize); |
302 priority, aClientData, EFalse, aObjectSource.Uri(), iThumbnailSize); |
295 } |
303 } |
296 |
304 |
297 iRequestQueue->AddRequestL( getThumbnailActive ); |
305 iRequestQueue->AddRequestL( getThumbnailActive ); |
298 CleanupStack::Pop( getThumbnailActive ); |
306 CleanupStack::Pop( getThumbnailActive ); |
299 |
307 |
316 TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() aObjectSource==%S ", &aObjectSource.Uri() ); |
324 TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() aObjectSource==%S ", &aObjectSource.Uri() ); |
317 iRequestId++; |
325 iRequestId++; |
318 |
326 |
319 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
327 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
320 |
328 |
|
329 TInt priority = ValidatePriority(aPriority); |
|
330 |
321 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
331 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
322 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
332 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
323 |
333 |
324 CleanupStack::PushL( getThumbnailActive ); |
334 CleanupStack::PushL( getThumbnailActive ); |
325 |
335 |
326 if (aObjectSource.Bitmap()) |
336 if (aObjectSource.Bitmap()) |
327 { |
337 { |
328 // from bitmap |
338 // from bitmap |
329 getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), |
339 getThumbnailActive->SetThumbnailL( aObjectSource.GetBitmapOwnership(), |
330 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, |
340 aObjectSource.Id(), KBmpMime, iFlags, iQualityPreference, |
331 iSize, iDisplayMode, aPriority, NULL, ETrue, |
341 iSize, iDisplayMode, priority, NULL, ETrue, |
332 aObjectSource.Uri(), EUnknownThumbnailSize); |
342 aObjectSource.Uri(), EUnknownThumbnailSize); |
333 } |
343 } |
334 else if( !aObjectSource.Buffer() ) |
344 else if( !aObjectSource.Buffer() ) |
335 { |
345 { |
336 getThumbnailActive->GetThumbnailL( aObjectSource.Id(), |
346 getThumbnailActive->GetThumbnailL( aObjectSource.Id(), |
337 aObjectSource.Uri(), iFlags, iQualityPreference, iSize, |
347 aObjectSource.Uri(), iFlags, iQualityPreference, iSize, |
338 iDisplayMode, aPriority, NULL, ETrue, aObjectSource.Uri(), |
348 iDisplayMode, priority, NULL, ETrue, aObjectSource.Uri(), |
339 EUnknownThumbnailSize); |
349 EUnknownThumbnailSize); |
340 } |
350 } |
341 else |
351 else |
342 { |
352 { |
343 // from buffer |
353 // from buffer |
344 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), |
354 getThumbnailActive->SetThumbnailL( aObjectSource.GetBufferOwnership(), |
345 aObjectSource.Id(), aObjectSource.MimeType(), iFlags, |
355 aObjectSource.Id(), aObjectSource.MimeType(), iFlags, |
346 iQualityPreference, iSize, iDisplayMode, aPriority, NULL, |
356 iQualityPreference, iSize, iDisplayMode, priority, NULL, |
347 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize); |
357 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize); |
348 } |
358 } |
349 |
359 |
350 iRequestQueue->AddRequestL( getThumbnailActive ); |
360 iRequestQueue->AddRequestL( getThumbnailActive ); |
351 |
361 |
561 TInt CThumbnailManagerImpl::ChangePriority( const TThumbnailRequestId aId, |
571 TInt CThumbnailManagerImpl::ChangePriority( const TThumbnailRequestId aId, |
562 const TInt aNewPriority ) |
572 const TInt aNewPriority ) |
563 { |
573 { |
564 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
574 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
565 |
575 |
|
576 TInt priority = ValidatePriority(aNewPriority); |
|
577 |
566 TN_DEBUG2( "CThumbnailManagerImpl::ChangePriority() - request ID: %d", aId ); |
578 TN_DEBUG2( "CThumbnailManagerImpl::ChangePriority() - request ID: %d", aId ); |
567 |
579 |
568 return iRequestQueue->ChangePriority(aId, aNewPriority); |
580 return iRequestQueue->ChangePriority(aId, priority); |
569 } |
581 } |
570 |
582 |
571 // --------------------------------------------------------------------------- |
583 // --------------------------------------------------------------------------- |
572 // Get the list of supported file systems from server |
584 // Get the list of supported file systems from server |
573 // --------------------------------------------------------------------------- |
585 // --------------------------------------------------------------------------- |
603 iRequestId++; |
615 iRequestId++; |
604 TN_DEBUG4( "CThumbnailManagerImpl::UpdateThumbnailsL() URI==%S, aItemId==%d %d", &aPath, aItemId, iRequestId); |
616 TN_DEBUG4( "CThumbnailManagerImpl::UpdateThumbnailsL() URI==%S, aItemId==%d %d", &aPath, aItemId, iRequestId); |
605 |
617 |
606 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
618 __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId )); |
607 |
619 |
|
620 TInt priority = ValidatePriority(aPriority); |
|
621 |
608 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
622 CThumbnailRequestActive* getThumbnailActive = CThumbnailRequestActive::NewL |
609 ( iFs, iSession, iObserver, iRequestId, aPriority, iRequestQueue ); |
623 ( iFs, iSession, iObserver, iRequestId, priority, iRequestQueue ); |
610 CleanupStack::PushL( getThumbnailActive ); |
624 CleanupStack::PushL( getThumbnailActive ); |
611 |
625 |
612 getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference, |
626 getThumbnailActive->UpdateThumbnailsL( aPath, aItemId, iFlags, iQualityPreference, |
613 iDisplayMode, aPriority, aOrientation, aModified ); |
627 iDisplayMode, priority, aOrientation, aModified ); |
614 |
628 |
615 iRequestQueue->AddRequestL( getThumbnailActive ); |
629 iRequestQueue->AddRequestL( getThumbnailActive ); |
616 CleanupStack::Pop( getThumbnailActive ); |
630 CleanupStack::Pop( getThumbnailActive ); |
617 |
631 |
618 iRequestQueue->Process(); |
632 iRequestQueue->Process(); |
619 } |
633 } |
620 |
634 |
|
635 // --------------------------------------------------------------------------- |
|
636 // CThumbnailManagerImpl::ValidatePriority() |
|
637 // Check that given priority is in range of CActive::TPriority |
|
638 // --------------------------------------------------------------------------- |
|
639 // |
|
640 TInt CThumbnailManagerImpl::ValidatePriority( const TInt aPriority ) |
|
641 { |
|
642 if (aPriority < CActive::EPriorityIdle) |
|
643 { |
|
644 TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too low for CActive", aPriority ); |
|
645 return CActive::EPriorityIdle; |
|
646 } |
|
647 else if (aPriority > CActive::EPriorityHigh) |
|
648 { |
|
649 TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too high for CActive", aPriority ); |
|
650 return CActive::EPriorityHigh; |
|
651 } |
|
652 else |
|
653 { |
|
654 return aPriority; |
|
655 } |
|
656 } |
|
657 |
621 // End of file |
658 // End of file |