imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailmanagerimpl.h
changeset 54 48dd0f169f0d
parent 42 2e2a89493e2b
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailmanagerimpl.h	Fri Sep 03 10:29:37 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,485 +0,0 @@
-/*
-* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation class of Thumbnail Manager
- *
-*/
-
-
-#ifndef THUMBNAILMANAGERIMPL_H
-#define THUMBNAILMANAGERIMPL_H
-
-#include <fbs.h>
-
-#include "thumbnailmanager.h"
-#include "thumbnailsession.h"
-#include "thumbnailrequestqueue.h"
-#include "thumbnaildata.h"
-
-
-class CThumbnailRequestActive;
-
-/**
- *  Implementation class of thumbnail engine.
- *
- *  @since S60 v5.0
- */
-NONSHARABLE_CLASS( CThumbnailManagerImpl ): public CThumbnailManager
-    {
-public:
-
-    /**
-     * Destructor
-     *
-     * @since S60 v5.0
-     */
-    virtual ~CThumbnailManagerImpl();
-
-    /**
-     * Two-phased constructor
-     *
-     * @since S60 v5.0
-     * @param  aObserver Observer to receive notifications about completed
-     *                   operations.
-     * @return           New CThumbnailManagerImpl instance.
-     */
-    static CThumbnailManagerImpl* NewLC( MThumbnailManagerObserver& aObserver );
-
-    /**
-     * Get a thumbnail for an object file. If a thumbnail already exists, it
-     * is loaded and if a thumbnail does not exist, it is created
-     * transparently. ThumbnailReady() callback will be called when the
-     * operation is complete. In addition, ThumbnailPreviewReady()
-     * callback may be called if EOptimizeForQualityWithPreview mode was
-     * defined.
-     *
-     * Current values for display mode, thumbnail size, flags and performance
-     * preference are used.
-     *
-     * @since S60 v5.0
-     * @param aObjectSource      Source object or file
-     * @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 aPriority          Priority for this operation
-     * @return                   Thumbnail request ID
-     */
-    TThumbnailRequestId GetThumbnailL( CThumbnailObjectSource& aObjectSource,
-        TAny* aClientData = NULL, const TInt aPriority = CActive::EPriorityIdle );
-    
-    /**
-     * Get a thumbnail for an object file. If a thumbnail already exists, it
-     * is loaded and if a thumbnail does not exist, it is created
-     * transparently. ThumbnailReady() callback will be called when the
-     * operation is complete. In addition, ThumbnailPreviewReady()
-     * callback may be called if EOptimizeForQualityWithPreview mode was
-     * defined.
-     *
-     * Current values for display mode, thumbnail size, flags and performance
-     * preference are used.
-     *
-     * @since S60 v5.0
-     * @param aObjectSource      Source object or file
-     * @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 aPriority          Priority for this operation
-     * @param aGeneratePersistentSizesOnly  Only persitent sizes generated
-     * @return                   Thumbnail request ID
-     */    
-    TThumbnailRequestId GetThumbnailL( CThumbnailObjectSource& aObjectSource,
-    	TAny* aClientData, const TInt aPriority, TBool aGeneratePersistentSizesOnly );    
-   
-    /**
-     * Get a persistent thumbnail for an object file. If a thumbnail already
-     *  exists, it is loaded and if a thumbnail does not exist, it is created
-     * transparently. ThumbnailReady() callback will be called when the
-     * operation is complete. In addition, ThumbnailPreviewReady()
-     * callback may be called if EOptimizeForQualityWithPreview mode was
-     * defined.
-     *
-     * Current values for display mode, thumbnail size, flags and performance
-     * preference are used.
-     *
-     * @since S60 v5.0
-     * @param aThumbnailId       Thumbnail ID
-     * @param aThumbnailSizeType Thumbnail size enumeration
-     * @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 aPriority          Priority for this operation
-     * @return                   Thumbnail request ID. This can be used to
-     *                           cancel the request or change priority.
-     *                           The ID is specific to this CThumbnailManager
-     *                           instance and may not be shared with other
-     *                           instances.
-     */        
-    TThumbnailRequestId GetThumbnailL( const TThumbnailId,
-        TAny* aClientData = NULL, TInt aPriority = CActive::EPriorityIdle );
-    
-    /**
-     * Import an image to be used as thumbnail for an object. If a
-     * thumbnail already exists, it is loaded and if a thumbnail does not
-     * exist, it is created transparently. ThumbnailReady() callback will be
-     * called when the operation is complete. In addition, ThumbnailPreviewReady()
-     * callback may be called if EOptimizeForQualityWithPreview mode was
-     * defined.
-     * 
-     * Current values for display mode, thumbnail size, flags and performance
-     * preference are used.
-     *
-     * @since S60 v5.0
-     * @param aObjectSource      Source object or file
-     * @param aTargetUri         Target URI to which the imported thumbnail is linked.
-     * @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 aPriority          Priority for this operation
-     * @return                   Thumbnail request ID
-     */
-    TThumbnailRequestId ImportThumbnailL( CThumbnailObjectSource& aObjectSource,
-        const TDesC& aTargetUri, TAny* aClientData = NULL,
-        const TInt aPriority = CActive::EPriorityIdle );    
-
-     /**
-      * Set persistent size scaled thumbnails for an object. If a
-      * thumbnail already exists, it is replaced and if a thumbnail does not
-      * exist, it is created transparently.
-      * 
-      * Current values for display mode, thumbnail size, flags and performance
-      * preference are used.
-      *
-      * @since S60 v5.0
-      * @param aObjectSource      Source object or file
-      * @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 aPriority          Priority for this operation
-      * @return                   Thumbnail request ID. This can be used to
-      *                           cancel the request or change priority.
-      *                           The ID is specific to this CThumbnailManager
-      *                           instance and may not be shared with other
-      *                           instances.
-      */     
-    TThumbnailRequestId SetThumbnailL( CThumbnailObjectSource& source,
-        TAny* aClientData = NULL, 
-        TInt aPriority = CActive::EPriorityIdle );    
-    
-    /**
-     * Get the current display mode for thumbnail bitmaps.
-     *
-     * @since S60 v5.0
-     * @return Default display mode for the thumbnail bitmaps.
-     */
-    TDisplayMode DisplayMode()const;
-
-    /**
-     * Set the current display mode for thumbnail bitmaps.
-     *
-     * @since S60 v5.0
-     * @param aDisplayMode New display mode value for the thumbnail bitmaps.
-     */
-    void SetDisplayModeL( const TDisplayMode aDisplayMode );
-
-    /**
-     * Get the current quality versus performance preference.
-     *
-     * @since S60 v5.0
-     * @return Current quality versus performance preference.
-     */
-    TThumbnailQualityPreference QualityPreference()const;
-
-    /**
-     * Set quality versus performance preference.
-     *
-     * @since S60 v5.0
-     * @param aQualityPreference New quality versus performance preference
-     *                           value.
-     */
-    void SetQualityPreferenceL( const TThumbnailQualityPreference
-        aQualityPreference );
-
-    /**
-     * Get the current desired size for thumbnail bitmaps.
-     *
-     * @since S60 v5.0
-     * @return Current desired size for thumbnail bitmaps (in pixels).
-     */
-    const TSize& ThumbnailSize()const;
-
-    /**
-     * Set desired size for thumbnail bitmaps.
-     *
-     * @since S60 v5.0
-     * @param aThumbnailSize New quality for the desired thumbnail size.
-     */
-    void SetThumbnailSizeL( const TSize& aThumbnailSize );
-
-    /**
-     * Set desired size for thumbnail bitmaps.
-     *
-     * @since S60 v5.0
-     * @param aThumbnailSize New quality for the desired thumbnail size.
-     */
-    void SetThumbnailSizeL( const TThumbnailSize aThumbnailSize );
-
-    /**
-     * Get current flags for thumbnail generation.
-     *
-     * @since S60 v5.0
-     * @return Current flags.
-     */
-    TThumbnailFlags Flags()const;
-
-    /**
-     * Set flags for thumbnail generation. Several flags may be enabled
-     * by combining the values using bitwise or.
-     *
-     * @since S60 v5.0
-     * @param aFlags New flags.
-     */
-    void SetFlagsL( const TThumbnailFlags aFlags );
-
-    /**
-     * Delete all thumbnails for a given object. This is an asynchronous
-     * operation, which always returns immediately.
-     *
-     * @since S60 v5.0
-     * @param aObjectSource Source object or file
-     */
-    void DeleteThumbnails( CThumbnailObjectSource& aObjectSource );
-
-    /**
-     * Delete thumbnails by TThumbnailId. This is an asynchronous
-     * operation, which always returns immediately.
-     *
-     * @since S60 v5.0
-     * @param aItemId     TThumbnailId
-     */
-    void DeleteThumbnails( const TThumbnailId aItemId );       
-    
-    /**
-     * Create thumbnail for a given object. This is an asynchronous
-     * operation, which always returns immediately. No callbacks are
-     * emitted.
-     *
-     * @since S60 v5.0
-     * @param aObjectSource      Source object or file
-     * @param aPriority          Priority for this operation
-     * @return                   Thumbnail creation request ID
-     */
-    TThumbnailRequestId CreateThumbnails( CThumbnailObjectSource& aObjectSource,
-                                          TInt aPriority = CActive::EPriorityIdle );
-
-    /**
-     * Cancel a thumbnail operation.
-     *
-     * @since S60 v5.0
-     * @param aId      Request ID for the operation to be cancelled.
-     * @return         Symbian OS error code or KErrNone if cancelling was
-     *                 successful.
-     */
-    TInt CancelRequest( const TThumbnailRequestId aId );
-
-    /**
-     * Change the priority of a queued thumbnail operation.
-     *
-     * @since S60 v5.0
-     * @param aId           Request ID for the request which to assign a new
-     *                      priority.
-     * @param aNewPriority  New priority value
-     * @return              Symbian OS error code or KErrNone if change was
-     *                      successful.
-     */
-    TInt ChangePriority( const TThumbnailRequestId aId, const TInt aNewPriority );
-
-    /**
-     * Get a list of supported file formats for object files.
-     * 
-     * The return value is a reference to a list that contains each
-     * supported MIME type. There may also be wildcards, such as "image/ *".
-     * 
-     * The returned reference is valid until CThumbnailManager is
-     * destroyed or GetSupportedMimeTypesL() is called again.
-     *
-     * @since S60 v5.0
-     * @return A list of supported MIME types. May contain wildcards.
-     *         Ownership not transferred.
-     */
-    const CDesCArray& GetSupportedMimeTypesL();
-    
-    /**
-     * Update Thumbnails by TThumbnailId. This is an asynchronous
-     * operation, which always returns immediately.
-     *
-     * @since S60 v5.0
-     * @param aItemId       TThumbnailId
-     * @param aPath         (New) path for the Thumbnail
-     * @param aOrientation  Thumbnail orientation
-     * @param aModified     Last modified
-     * @param aPriority     Priority for this operation
-     */
-     void UpdateThumbnailsL( const TThumbnailId aItemId, const TDesC& aPath,
-                             const TInt aOrientation, const TInt64 aModified, TInt aPriority );
-
-     /**
-      * Rename Thumbnails. This is an asynchronous
-      * operation, which always returns immediately.
-      *
-      * @since S60 v5.0
-      * @param aCurrentPath     Current path of the Thumbnail
-      * @param aNewPath         New path for the Thumbnail
-      * @param aPriority        Priority for this operation
-      * @return                 Thumbnail request ID. This can be used to
-      *                         cancel the request or change priority.
-      *                         The ID is specific to this CThumbnailManager
-      *                         instance and may not be shared with other
-      *                         instances.
-      */
-     TThumbnailRequestId RenameThumbnailsL( const TDesC& aCurrentPath, 
-             const TDesC& aNewPath, TInt aPriority = CActive::EPriorityIdle );
-
-     /**
-      * Set optional request observer for getting information about completed 
-      * requests that don't include a thumbnail.
-      *
-      * @since Symbian^3
-      * @param aObserver Observer to receive notifications.
-      */
-     void SetRequestObserver( MThumbnailManagerRequestObserver& aObserver );
-     
-     /**
-      * Remove optional request observer.
-      *
-      * @since Symbian^3
-      */
-     void RemoveRequestObserver();
-     
-private:
-
-    /**
-     * C++ default constructor
-     *
-     * @since S60 v5.0
-     * @param  aObserver Observer to receive notifications about completed
-     *                   operations.
-     * @return           New CThumbnailManagerImpl instance.
-     */
-    CThumbnailManagerImpl( MThumbnailManagerObserver& aObserver );
-
-    /**
-     * Symbian 2nd phase constructor can leave.
-     *
-     * @since S60 v5.0
-     */
-    void ConstructL();
-    
-    /**
-     * Check that given priority is in range of CActive::TPriority
-     *
-     * @since S60 v5.0
-     * @param aPriority Priority
-     * @return Valid priority.
-     */
-    TInt ValidatePriority( const TInt aPriority );
-
-
-private:
-    // data
-
-    /**
-     * Default width of thumbnail.
-     */
-    TInt iDefaultWidth;
-
-    /**
-     * Default height of thumbnail
-     */
-    TInt iDefaultHeight;
-
-    /**
-     * Observer to receive notifications about completed operations.
-     */
-    MThumbnailManagerObserver& iObserver;
-    
-    /**
-     * Observer to receive notifications about completed requests.
-     */
-    MThumbnailManagerRequestObserver* iRequestObserver;
-
-    /**
-     * Session.
-     */
-    RThumbnailSession iSession;
-
-    /**
-     * Fileserver.
-     */
-    RFs iFs;
-    
-    /**
-     * Request queue processor.
-     */
-    CThumbnailRequestQueue* iRequestQueue;
-
-    /**
-     * Display mode.
-     */
-    TDisplayMode iDisplayMode;
-
-    /**
-     * Flags.
-     */
-    TThumbnailFlags iFlags;
-
-    /**
-     * Quality preference.
-     */
-    TThumbnailQualityPreference iQualityPreference;
-
-    /**
-     * Requested size of thumbnail.
-     */
-    TSize iSize;
-    
-    TThumbnailSize iThumbnailSize;
-
-    /**
-     * Request ID for this thumbnail request, session specific.
-     */
-    TThumbnailRequestId iRequestId;
-
-    /**
-     * Font and Bitmap Server session. Only used unless the client
-     * does not already have an open session.
-     */
-    RFbsSession iFbsSession;
-
-    /**
-     * Temporary buffer for filename handling
-     */
-    TFileName iFileNameBuf;
-
-    /**
-     * List of supported MIME-types.
-     * Own.
-     */
-    CDesCArraySeg* iMimeTypeList;
-};
-
-#endif