imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h
branchGCC_SURGE
changeset 32 a0ee3f735f8b
parent 30 b67379558a75
child 39 1a8af2cd6858
--- 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