diff -r ea43e3e86079 -r a0ee3f735f8b imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h --- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Tue Jun 15 14:30:57 2010 +0100 +++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h Thu Jul 22 16:37:07 2010 +0100 @@ -32,7 +32,7 @@ class CThumbnailDataImpl; class CThumbnailRequestQueue; -enum TThumbnailRequestType +enum TThumbnailReqType { EReqGetThumbnailHandle = 0, EReqGetThumbnailPath = 1, @@ -41,7 +41,8 @@ EReqUpdateThumbnails = 4, EReqGetThumbnailHandleLater = 5, EReqDeleteThumbnails = 6, - EReqRenameThumbnails = 7 + EReqRenameThumbnails = 7, + EReqSetThumbnailPath = 8 }; /** @@ -66,16 +67,17 @@ * @since S60 v5.0 * @param aFs Fileserver used. * @param aThumbnailSession Session used. - * @param aObserver Observer to receive notifications about completed - * operations. + * @param aObserver Observer to receive notifications about completed operations. + * @param aRequestObserver Observer to receive notifications about completed requests. * @param aId Assigned ID of the request, session specific. * @param aPriority assigned processing priority * @param aQueue request processor * @return New CThumbnailRequestActive object. */ static CThumbnailRequestActive* NewL( RFs& aFs, RThumbnailSession& - aThumbnailSession, MThumbnailManagerObserver& aObserver, - TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue ); + aThumbnailSession, MThumbnailManagerObserver& aObserver, + MThumbnailManagerRequestObserver* aRequestObserver, TThumbnailRequestId aId, + TInt aPriority, CThumbnailRequestQueue* aQueue ); /** * Get a thumbnail created from file object. @@ -163,12 +165,13 @@ * @param aGeneratePersistentSizesOnly * @param aTargetUri Target URI to which the imported thumbnail is linked. * @param aThumbnailSize Requested thumbnail size + * @param aOverwrite Overwrite old existing thumbs */ void SetThumbnailL( TDesC8* aBuffer, TThumbnailId aThumbnailId, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, - const TDesC& aTargetUri, TThumbnailSize aThumbnailSize ); + const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, TBool aOverwrite); /** * Set a thumbnail @@ -187,12 +190,13 @@ * @param aGeneratePersistentSizesOnly * @param aTargetUri Target URI to which the imported thumbnail is linked. * @param aThumbnailSize Requested thumbnail size + * @param aOverwrite Overwrite old existing thumbs */ void SetThumbnailL( CFbsBitmap* aBitmap, TThumbnailId aThumbnailId, const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly, - const TDesC& aTargetUri, TThumbnailSize aThumbnailSize ); + const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, TBool aOverwrite); /** * Update thumbnails by Id. @@ -235,6 +239,32 @@ const TInt aPriority ); /** + * Set thumbnail from file path. + * + * @param aPath Path to file from which the thumbnail is to be created. + * @param aFile File from which the thumbnail is to be created. + * @param aFlags Flags that control the creation of thumbnail. + * @param aQualityPreference Quality preference value + * @param aSize Requested size of the thumbnail. + * @param aDisplayMode Display mode. + * @param aPriority Priority of the request. + * @param aClientData Pointer to arbitrary client data. + * This pointer is not used by the API for + * anything other than returning it in the + * ThumbnailReady callback. + * @param aGeneratePersistentSizesOnly + * @param aOverwrite Overwrite old existing thumbs + * @param aTargetUri Target URI to which the imported thumbnail is linked. + * @param aThumbnailSize Relative thumbnail size + */ + void SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType, + CThumbnailManager::TThumbnailFlags aFlags, + CThumbnailManager::TThumbnailQualityPreference aQualityPreference, + const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, + TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, + TThumbnailSize aThumbnailSize, TBool aOverwrite); + + /** * Start active request. * * @since S60 v5.0 @@ -294,16 +324,16 @@ * @since S60 v5.0 * @param aFs Fileserver used. * @param aThumbnailSession Session used. - * @param aObserver Observer to receive notifications about completed - * operations. + * @param aObserver Observer to receive notifications about completed operations. + * @param aRequestObserver Observer to receive notifications about completed requests. * @param aId Assigned ID of the request, session specific. * @param aPriority assigned processing priority * @param aQueue request processor * @return New CThumbnailRequestActive object. */ CThumbnailRequestActive( RFs& aFs, RThumbnailSession& aThumbnailSession, - MThumbnailManagerObserver& aObserver, TThumbnailRequestId aId, TInt aPriority, - CThumbnailRequestQueue* aQueue); + MThumbnailManagerObserver& aObserver, MThumbnailManagerRequestObserver* aRequestObserver, + TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue); /** * Symbian 2nd phase constructor can leave. @@ -363,6 +393,11 @@ * @since S60 v5.0 */ static TInt TimerCallBack(TAny* aAny); + + /** + * Checks if URI is virtual. + */ + TBool IsVirtualUri( const TDesC& aPath ); private: // data @@ -386,6 +421,11 @@ * Observer to receive notifications about completed operations. */ MThumbnailManagerObserver& iObserver; + + /** + * Observer to receive notifications about completed requests. + */ + MThumbnailManagerRequestObserver* iRequestObserver; /** * Fileserver, not own @@ -454,7 +494,7 @@ // not own CThumbnailRequestQueue* iRequestQueue; - TThumbnailRequestType iRequestType; + TThumbnailReqType iRequestType; // request timeout timer CPeriodic* iTimer; @@ -463,6 +503,11 @@ // request already canceled by client TBool iCanceled; +#ifdef __RETRY_ON_SERVERCRASH + //request retry count + TUint iRetry; +#endif + #ifdef _DEBUG TTime iStartExecTime; #endif