imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h
branchGCC_SURGE
changeset 32 a0ee3f735f8b
parent 30 b67379558a75
child 39 1a8af2cd6858
equal deleted inserted replaced
26:ea43e3e86079 32:a0ee3f735f8b
    30 class CFbsBitmap;
    30 class CFbsBitmap;
    31 class RThumbnailSession;
    31 class RThumbnailSession;
    32 class CThumbnailDataImpl;
    32 class CThumbnailDataImpl;
    33 class CThumbnailRequestQueue;
    33 class CThumbnailRequestQueue;
    34 
    34 
    35 enum TThumbnailRequestType
    35 enum TThumbnailReqType
    36     {
    36     {
    37     EReqGetThumbnailHandle = 0, 
    37     EReqGetThumbnailHandle = 0, 
    38     EReqGetThumbnailPath = 1,
    38     EReqGetThumbnailPath = 1,
    39     EReqSetThumbnailBuffer = 2,
    39     EReqSetThumbnailBuffer = 2,
    40     EReqSetThumbnailBitmap = 3,
    40     EReqSetThumbnailBitmap = 3,
    41     EReqUpdateThumbnails = 4,
    41     EReqUpdateThumbnails = 4,
    42     EReqGetThumbnailHandleLater = 5,
    42     EReqGetThumbnailHandleLater = 5,
    43     EReqDeleteThumbnails = 6,
    43     EReqDeleteThumbnails = 6,
    44     EReqRenameThumbnails = 7
    44     EReqRenameThumbnails = 7,
       
    45     EReqSetThumbnailPath = 8
    45 };
    46 };
    46 
    47 
    47 /**
    48 /**
    48  *  Active object for an asynchronous thumbnail request.
    49  *  Active object for an asynchronous thumbnail request.
    49  *
    50  *
    64      * Two-phased constructor
    65      * Two-phased constructor
    65      *
    66      *
    66      * @since S60 v5.0
    67      * @since S60 v5.0
    67      * @param aFs Fileserver used.
    68      * @param aFs Fileserver used.
    68      * @param aThumbnailSession Session used.
    69      * @param aThumbnailSession Session used.
    69      * @param aObserver Observer to receive notifications about completed
    70      * @param aObserver Observer to receive notifications about completed operations.
    70      *                  operations.
    71      * @param aRequestObserver Observer to receive notifications about completed requests.
    71      * @param aId Assigned ID of the request, session specific.
    72      * @param aId Assigned ID of the request, session specific.
    72      * @param aPriority assigned processing priority
    73      * @param aPriority assigned processing priority
    73      * @param aQueue request processor
    74      * @param aQueue request processor
    74      * @return New CThumbnailRequestActive object.
    75      * @return New CThumbnailRequestActive object.
    75      */
    76      */
    76     static CThumbnailRequestActive* NewL( RFs& aFs, RThumbnailSession&
    77     static CThumbnailRequestActive* NewL( RFs& aFs, RThumbnailSession&
    77         aThumbnailSession, MThumbnailManagerObserver& aObserver,
    78         aThumbnailSession, MThumbnailManagerObserver& aObserver, 
    78         TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue );
    79         MThumbnailManagerRequestObserver* aRequestObserver, TThumbnailRequestId aId, 
       
    80         TInt aPriority, CThumbnailRequestQueue* aQueue );
    79 
    81 
    80     /**
    82     /**
    81      * Get a thumbnail created from file object.
    83      * Get a thumbnail created from file object.
    82      *
    84      *
    83      * @since S60 v5.0
    85      * @since S60 v5.0
   161      *                    anything other than returning it in the
   163      *                    anything other than returning it in the
   162      *                    ThumbnailReady callback.
   164      *                    ThumbnailReady callback.
   163      * @param aGeneratePersistentSizesOnly
   165      * @param aGeneratePersistentSizesOnly
   164      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
   166      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
   165      * @param aThumbnailSize Requested thumbnail size 
   167      * @param aThumbnailSize Requested thumbnail size 
       
   168      * @param aOverwrite Overwrite old existing thumbs
   166      */    
   169      */    
   167     void SetThumbnailL( TDesC8* aBuffer, TThumbnailId aThumbnailId, const TDesC8& aMimeType,
   170     void SetThumbnailL( TDesC8* aBuffer, TThumbnailId aThumbnailId, const TDesC8& aMimeType,
   168         CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   171         CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   169         ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   172         ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   170         TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   173         TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   171         const TDesC& aTargetUri, TThumbnailSize aThumbnailSize );
   174         const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, TBool aOverwrite);
   172     
   175     
   173     /**
   176     /**
   174      * Set a thumbnail
   177      * Set a thumbnail
   175      *
   178      *
   176      * @since S60 v5.0
   179      * @since S60 v5.0
   185      *                    anything other than returning it in the
   188      *                    anything other than returning it in the
   186      *                    ThumbnailReady callback.
   189      *                    ThumbnailReady callback.
   187      * @param aGeneratePersistentSizesOnly
   190      * @param aGeneratePersistentSizesOnly
   188      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
   191      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
   189      * @param aThumbnailSize Requested thumbnail size 
   192      * @param aThumbnailSize Requested thumbnail size 
       
   193      * @param aOverwrite Overwrite old existing thumbs
   190      */    
   194      */    
   191     void SetThumbnailL( CFbsBitmap* aBitmap, TThumbnailId aThumbnailId, const TDesC8& aMimeType,
   195     void SetThumbnailL( CFbsBitmap* aBitmap, TThumbnailId aThumbnailId, const TDesC8& aMimeType,
   192         CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   196         CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
   193         ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   197         ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
   194         TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   198         TDisplayMode aDisplayMode, const TInt aPriority, TAny* aClientData, TBool aGeneratePersistentSizesOnly,
   195         const TDesC& aTargetUri, TThumbnailSize aThumbnailSize );    
   199         const TDesC& aTargetUri, TThumbnailSize aThumbnailSize, TBool aOverwrite);    
   196     
   200     
   197     /**
   201     /**
   198      * Update thumbnails by Id.
   202      * Update thumbnails by Id.
   199      *
   203      *
   200      * @since S60 v5.0
   204      * @since S60 v5.0
   233      */
   237      */
   234     void RenameThumbnails( const TDesC& aCurrentPath, const TDesC& aNewPath, 
   238     void RenameThumbnails( const TDesC& aCurrentPath, const TDesC& aNewPath, 
   235         const TInt aPriority );    
   239         const TInt aPriority );    
   236     
   240     
   237     /**
   241     /**
       
   242      * Set thumbnail from file path.
       
   243      *
       
   244      * @param aPath Path to file from which the thumbnail is to be created.
       
   245      * @param aFile File from which the thumbnail is to be created.
       
   246      * @param aFlags Flags that control the creation of thumbnail.
       
   247      * @param aQualityPreference Quality preference value
       
   248      * @param aSize Requested size of the thumbnail.
       
   249      * @param aDisplayMode Display mode.
       
   250      * @param aPriority Priority of the request.
       
   251      * @param aClientData Pointer to arbitrary client data.
       
   252      *                    This pointer is not used by the API for
       
   253      *                    anything other than returning it in the
       
   254      *                    ThumbnailReady callback.
       
   255      * @param aGeneratePersistentSizesOnly 
       
   256      * @param aOverwrite Overwrite old existing thumbs
       
   257      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
       
   258      * @param aThumbnailSize Relative thumbnail size
       
   259      */
       
   260     void SetThumbnailL( const TDesC& aPath, const TDesC8& aMimeType,
       
   261         CThumbnailManager::TThumbnailFlags aFlags, 
       
   262         CThumbnailManager::TThumbnailQualityPreference aQualityPreference, 
       
   263         const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, 
       
   264         TAny* aClientData, TBool aGeneratePersistentSizesOnly, const TDesC& aTargetUri, 
       
   265         TThumbnailSize aThumbnailSize, TBool aOverwrite);    
       
   266     
       
   267     /**
   238      * Start active request.
   268      * Start active request.
   239      *
   269      *
   240      * @since S60 v5.0
   270      * @since S60 v5.0
   241      */
   271      */
   242     void StartL();
   272     void StartL();
   292      * C++ default constructor
   322      * C++ default constructor
   293      *
   323      *
   294      * @since S60 v5.0
   324      * @since S60 v5.0
   295      * @param aFs Fileserver used.
   325      * @param aFs Fileserver used.
   296      * @param aThumbnailSession Session used.
   326      * @param aThumbnailSession Session used.
   297      * @param aObserver Observer to receive notifications about completed
   327      * @param aObserver Observer to receive notifications about completed operations.
   298      *                  operations.
   328      * @param aRequestObserver Observer to receive notifications about completed requests.
   299      * @param aId Assigned ID of the request, session specific.
   329      * @param aId Assigned ID of the request, session specific.
   300      * @param aPriority assigned processing priority
   330      * @param aPriority assigned processing priority
   301      * @param aQueue request processor
   331      * @param aQueue request processor
   302      * @return New CThumbnailRequestActive object.
   332      * @return New CThumbnailRequestActive object.
   303      */
   333      */
   304     CThumbnailRequestActive( RFs& aFs, RThumbnailSession& aThumbnailSession,
   334     CThumbnailRequestActive( RFs& aFs, RThumbnailSession& aThumbnailSession,
   305         MThumbnailManagerObserver& aObserver, TThumbnailRequestId aId, TInt aPriority,
   335         MThumbnailManagerObserver& aObserver, MThumbnailManagerRequestObserver* aRequestObserver, 
   306         CThumbnailRequestQueue* aQueue);
   336         TThumbnailRequestId aId, TInt aPriority, CThumbnailRequestQueue* aQueue);
   307 
   337 
   308     /**
   338     /**
   309      * Symbian 2nd phase constructor can leave.
   339      * Symbian 2nd phase constructor can leave.
   310      *
   340      *
   311      * @since S60 v5.0
   341      * @since S60 v5.0
   361      * Callback for timeout timer
   391      * Callback for timeout timer
   362      *
   392      *
   363      * @since S60 v5.0
   393      * @since S60 v5.0
   364      */
   394      */
   365     static TInt TimerCallBack(TAny* aAny);
   395     static TInt TimerCallBack(TAny* aAny);
       
   396     
       
   397     /**
       
   398      * Checks if URI is virtual.
       
   399      */
       
   400     TBool IsVirtualUri( const TDesC& aPath ); 
   366 
   401 
   367 private:
   402 private:
   368     // data
   403     // data
   369 
   404 
   370     /**
   405     /**
   384 
   419 
   385     /**
   420     /**
   386      * Observer to receive notifications about completed operations.
   421      * Observer to receive notifications about completed operations.
   387      */
   422      */
   388     MThumbnailManagerObserver& iObserver;
   423     MThumbnailManagerObserver& iObserver;
       
   424     
       
   425     /**
       
   426      * Observer to receive notifications about completed requests.
       
   427      */
       
   428     MThumbnailManagerRequestObserver* iRequestObserver;
   389 
   429 
   390     /**
   430     /**
   391      * Fileserver, not own
   431      * Fileserver, not own
   392      */
   432      */
   393     RFs& iFs;
   433     RFs& iFs;
   452     TInt64 iModified;
   492     TInt64 iModified;
   453     
   493     
   454     // not own
   494     // not own
   455     CThumbnailRequestQueue* iRequestQueue;
   495     CThumbnailRequestQueue* iRequestQueue;
   456     
   496     
   457     TThumbnailRequestType iRequestType;
   497     TThumbnailReqType iRequestType;
   458     
   498     
   459     // request timeout timer
   499     // request timeout timer
   460     CPeriodic* iTimer;
   500     CPeriodic* iTimer;
   461     TInt iStartError;
   501     TInt iStartError;
   462     
   502     
   463     // request already canceled by client
   503     // request already canceled by client
   464     TBool iCanceled;
   504     TBool iCanceled;
       
   505     
       
   506 #ifdef __RETRY_ON_SERVERCRASH
       
   507     //request retry count
       
   508     TUint iRetry;
       
   509 #endif
   465     
   510     
   466 #ifdef _DEBUG
   511 #ifdef _DEBUG
   467     TTime iStartExecTime;
   512     TTime iStartExecTime;
   468 #endif
   513 #endif
   469 };
   514 };