phonebookui/Phonebook2/Presentation/inc/CPbk2ImageManagerImpl.h
changeset 0 e686773b3f54
child 3 04ab22b956c2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/Presentation/inc/CPbk2ImageManagerImpl.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,156 @@
+/*
+* Copyright (c) 2005-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: 
+*     Class CPbk2ImageManager implementation classes.
+*
+*/
+
+
+#ifndef CPBK2IMAGEMANAGERIMPL_H
+#define CPBK2IMAGEMANAGERIMPL_H
+
+//  INCLUDES
+#include "CPbk2ImageManager.h"
+#include "VPbkFieldType.hrh" // TVPbkFieldStorageType
+
+// CONSTANTS
+// Size of thumbnail images stored to contacts
+#define KPbk2PersonalImageSize TSize(80,96)
+
+//  FORWARD DECLARATIONS
+class MPbk2ImageGetObserver;
+class MPbk2ImageSetObserver;
+class CVPbkContactManager;
+class MVPbkBaseContactField;
+
+
+// CLASS DECLARATION
+/**
+ * Abstract thumbnail reader interface.
+ */
+class MPbk2ImageReader : 
+        public MPbk2ImageOperation
+    {
+    public:  // Interface
+        /**
+         * Starts reading a thumbnail from the contact specified at creation
+         * time.
+         * @param aParameters Optional parameters for the thumbnail.
+         * 
+         * @see TPbkImageLoadParameters
+         */
+        virtual void StartReadL
+            (const TPbk2ImageManagerParams* aParameters = NULL) =0;
+
+        /**
+         * Cancels reading operation.
+         */
+        virtual void CancelRead() =0;
+    };
+
+
+/**
+ * Abstract thumbnail image writer interface.
+ */
+class MPbk2ImageWriter : 
+        public MPbk2ImageOperation
+    {
+    public:  // Interface
+        /**
+         * Starts writing a bitmap to the contact.
+         *
+         * @param aBitmap   bitmap to save to contact.
+         */
+        virtual void StartWriteL(const CFbsBitmap& aBitmap) =0;
+
+        /**
+         * Starts writing an image buffer to the contact.
+         *
+         * @param aBuffer   image buffer to save to contact.
+         */
+        virtual void StartWriteL(const TDesC8& aBuffer) =0;
+
+        /**
+         * Starts writing a file image to the contact.
+         *
+         * @param aFileName   file image to save to contact.
+         */
+        virtual void StartWriteL(const TDesC& aFileName) = 0;
+
+        /**
+         * Cancels writing operation.
+         */
+        virtual void CancelWrite() =0;
+    };
+
+
+/**
+ * Factory class for creating concrete MPbk2ImageReader and 
+ * MPbk2ImageWriter instances.
+ */
+class Pbk2ImageOperationFactory
+    {
+    public:
+        /**
+         * Creates a concrete image reader object based on the type of 
+         * the thumbnail field in the contact.
+         *
+         * @param aContactManager Contact manager
+         * @param aContact  contact to get thumbnail from.
+         * @param aObserver observer to notify about progress of the operation.
+         * @param aFieldType  Phonebook field type of fetched image.
+         * Default field type is EPbkFieldIdThumbnailImage.
+         * @return  thumbnail reader object or NULL if aContact contains no
+         *          thumbnail.
+         */
+        static MPbk2ImageReader* CreateReaderLC
+            (CVPbkContactManager& aContactManager,
+            const MVPbkBaseContact& aContact,
+            MPbk2ImageGetObserver& aObserver,
+            const MVPbkFieldType& aFieldType);
+
+        /**
+         * Creates a concrete writer object based on the type of the thumbnail
+         * field in the contact or in global field typing. 
+         *
+         * @param aContactManager Contact manager
+         * @param aContact      contact to write thumbnail to.
+         * @param aObserver     observer to notify about progress of the 
+         *                      operation.
+         * @param aFieldType  Phonebook field type of fetched image.
+         * Default field type is EPbkFieldIdThumbnailImage.         
+         * @return  thumbnail writer object.
+         */
+        static MPbk2ImageWriter* CreateWriterLC
+            (CVPbkContactManager& aContactManager,
+            MVPbkStoreContact& aContact, 
+            MPbk2ImageSetObserver& aObserver,
+            const MVPbkFieldType& aFieldType);
+
+        /**
+         * Returns true if aStorageType is supported for thumbnail field.
+         *
+         * @param aField    Contact field 
+         * @return ETrue if field is supported, other EFalse
+         */
+        static TBool SupportedStorageType(const MVPbkBaseContactField* aField);
+
+    private:
+        /// Namespace class, constructor not implemented.
+        Pbk2ImageOperationFactory();
+    };
+
+#endif // CPBK2IMAGEMANAGERIMPL_H
+
+// End of File