Revision: 201033 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 31 Aug 2010 15:30:59 +0300
branchRCL_3
changeset 21 6257223ede8a
parent 20 2b4b06654caa
child 22 9d4d3445ce6e
Revision: 201033 Kit: 201035
imagehandling_plat/group/bld.inf
imagehandling_plat/thumbnailmanager_api/group/bld.inf
imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager_qt.h
imagehandling_plat/thumbnailmanager_api/tsrc/data/mmc/ThumbnailManagerTest/camera.jpg
imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp
imagehandlinglib/Group/IHL.mmp
imagehandlingutilities/group/bld.inf
imagehandlingutilities/thumbnailmanager/conf/102830B0.txt
imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager.confml
imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h
imagehandlingutilities/thumbnailmanager/plugins/audio/group/thumbnailaudioprovider.mmp
imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp
imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp
imagehandlingutilities/thumbnailmanager/plugins/image/group/thumbnailimageprovider.mmp
imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp
imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp
imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp
imagehandlingutilities/thumbnailmanager/plugins/video/group/thumbnailvideoprovider.mmp
imagehandlingutilities/thumbnailmanager/plugins/video/src/thumbnailvideoprovider.cpp
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v10.10.8_SA_S60.50_Euro1.sis
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v9.20.8_SA_S60.50_Euro1.sis
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/thumbnailmanager_stub.sis
imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg
imagehandlingutilities/thumbnailmanager/thumbagdaemon/group/thumbagdaemon.mmp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp
imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbnailclient/group/thumbnailmanager.mmp
imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h
imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp
imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp
imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp
imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp
imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailsession.cpp
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/bwins/thumbnailmanagerqt.def
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/eabi/thumbnailmanagerqt.def
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/inc/thumbnailmanager_p_qt.h
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_qt.cpp
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/thumbnailmanagerqt.iby
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/thumbnailmanagerqt.pro
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/moc_thumbnailmanager_p_qt.cpp
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.pkg
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.pro
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.mbm
imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.png
imagehandlingutilities/thumbnailmanager/thumbnailserver/group/thumbnailserver.mmp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildecodetask.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildiskunmountobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmemorycardobserver.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp
imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtaskprocessor.cpp
imagehandlingutilities/thumbnailmanager/tmcommon/src/tmactivitymanager.cpp
imagehandlingutilities/thumbnailmanager/tmcommon/src/tmformatobserver.cpp
imagehandlingutilities/thumbnailmanager/tmcommon/src/tmshutdownobserver.cpp
imagehandlingutilities/thumbnailmanager/tmcommon/src/tmsrproptertyobserver.cpp
imagehandlingutilities/thumbnailmanager/tmiadrestart/group/tmiadrestart.mmp
imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp
layers.sysdef.xml
sysdef_1_4_0.dtd
sysdef_1_5_1.dtd
--- a/imagehandling_plat/group/bld.inf	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandling_plat/group/bld.inf	Tue Aug 31 15:30:59 2010 +0300
@@ -17,11 +17,13 @@
 */
 
 
+
 #include "../image_handling_library_api/group/bld.inf"
 #include "../3gp_library_api/group/bld.inf"
 #include "../thumbnailmanager_api/group/bld.inf"
 
 
+
 // End of File
 
 
--- a/imagehandling_plat/thumbnailmanager_api/group/bld.inf	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandling_plat/thumbnailmanager_api/group/bld.inf	Tue Aug 31 15:30:59 2010 +0300
@@ -29,6 +29,7 @@
 ../inc/thumbnailmanager.h     MW_LAYER_PLATFORM_EXPORT_PATH(thumbnailmanager.h)
 ../inc/thumbnailmanagerobserver.h     MW_LAYER_PLATFORM_EXPORT_PATH(thumbnailmanagerobserver.h)
 ../inc/thumbnailobjectsource.h     MW_LAYER_PLATFORM_EXPORT_PATH(thumbnailobjectsource.h)
+../inc/thumbnailmanager_qt.h    MW_LAYER_PLATFORM_EXPORT_PATH(thumbnailmanager_qt.h)
 
 #endif // RD_THUMBNAILMANAGER
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager_qt.h	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,349 @@
+/*
+* Copyright (c) 2009 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: Qt interface class to Thumbnail Manager
+*
+*/
+
+#ifndef THUMBNAILMANAGER_QT_H
+#define THUMBNAILMANAGER_QT_H
+
+#include <QObject>
+#include <QPixmap>
+#include <QImage>
+
+#include <QtGlobal>
+
+class QString;
+class QSize;
+
+class ThumbnailManagerPrivate;
+class TestThumbnailManager;
+
+#ifdef TNMQT_DLL
+#  define TNM_EXPORT Q_DECL_EXPORT
+#else
+#  define TNM_EXPORT Q_DECL_IMPORT
+#endif  
+
+
+/** default priority value */
+const int tnmWrapperPriorityIdle = -100;
+
+class ThumbnailManager : public QObject
+    {
+    Q_OBJECT
+
+public:
+
+    /** Thumbnail size. */
+    enum ThumbnailSize
+    {
+        /**
+         * Small thumbnail
+         */
+        ThumbnailSmall = 0, 
+        /**
+         * Medium thumbnail
+         */
+        ThumbnailMedium, 
+        /**
+         * Large thumbnail
+         */
+        ThumbnailLarge
+    };
+    
+    /** Mode of thumbnail creation. */
+    enum ThumbnailMode
+        {
+        /**
+         * Default mode. This means that:
+         * - Thumbnail must be as large as requested (unless the actual object is smaller).
+         * - Smaller thumbnails may be up scaled to desired resolution.
+         * - Aspect ratio is maintained and thumbnails are not cropped. The
+         *   resulting thumbnail may smaller in either width or height if
+         *   the aspect ratio of the object does not match the aspect ratio
+         *   of the requested size.
+         */
+        Default = 0, 
+
+        /**
+         * Allow thumbnails which are smaller than requested are. Thumbnail
+         * bitmaps are never up scaled if this flag is set.
+         */
+        AllowAnySize = 1, 
+
+        /**
+         * New thumbnail images are not created if this flag is set. Only
+         * existing thumbnails may be returned. If a requested thumbnail does
+         * not exist null pixmap will be returned.
+         */
+        DoNotCreate = 2, 
+
+        /**
+         * Thumbnail images are cropped to match requested aspect ratio. If
+         * this mode is set, the size of the resulting thumbnail always
+         * matches the requested size.
+         */
+        CropToAspectRatio = 4
+    };
+    
+    /**  Quality versus speed preference setting */
+    enum QualityPreference
+    {
+        /**
+         * Prefer thumbnails in the highest quality possible disregarding
+         * any negative impact on performance.
+         */
+        OptimizeForQuality, 
+
+        /**
+         * Get thumbnails as fast as possible, even if
+         * it means lower quality.
+         */
+        OptimizeForPerformance
+    };
+
+    
+    /**
+     * Constructor
+     * 
+     * @param parentPtr parent
+     */    
+    TNM_EXPORT ThumbnailManager( QObject* parentPtr = NULL );
+
+    /**
+     * Destructor
+     */
+    TNM_EXPORT ~ThumbnailManager();
+
+    /**
+     * Get quality versus performance preference.
+     *
+     * @return quality versus performance preference
+     */
+    TNM_EXPORT QualityPreference qualityPreference() const;
+
+    /**
+     * Set quality versus performance preference.
+     *
+     * @param qualityPreference New quality versus performance preference
+     *                           value.
+     * @return true on success
+     */
+    TNM_EXPORT bool setQualityPreference( QualityPreference qualityPreference );
+
+    /**
+     * Get the current desired size for thumbnail bitmaps.
+     *
+     * @return Current desired size for thumbnail bitmaps (in pixels).
+     */
+    TNM_EXPORT QSize thumbnailSize() const;
+
+    /**
+     * Set desired size for thumbnail bitmaps.
+     *
+     * @param thumbnailSize New desired thumbnail size.
+     * @return true on success
+     */
+    TNM_EXPORT bool setThumbnailSize( const QSize& thumbnailSize );
+
+    /**
+     * Set desired size for thumbnail bitmaps.
+     *
+     * @param thumbnailSize New desired thumbnail size.
+     * @return true on success
+     */
+    TNM_EXPORT bool setThumbnailSize( ThumbnailSize thumbnailSize );
+    
+    /**
+     * Get current mode for thumbnail generation.
+     *
+     * @return Current mode.
+     */
+    TNM_EXPORT ThumbnailMode mode() const;
+
+    /**
+     * Set mode for thumbnail generation.
+     *
+     * @param mode New flags.
+     * @return true on success 
+     */
+    TNM_EXPORT bool setMode( ThumbnailMode mode );
+
+    /**
+     * 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. If thumbnail loadinf fails thumbnailReady signal is emited 
+     * with null pixmap and error code.
+     *
+     * @param fileName      Source object or file
+     * @param clientData    Pointer to arbitrary client data.
+     *                      This pointer is not used by the API for
+     *                      anything other than returning it in the
+     *                      ThumbnailReady signal.
+     * @param priority      Priority for this operation
+     * @return              Thumbnail request ID or -1 if request failed. This can be used to
+     *                      cancel the request or change priority.
+     *                      The ID is specific to this tnm
+     *                      instance and may not be shared with other
+     *                      instances.
+     */
+    TNM_EXPORT int getThumbnail( const QString& fileName, void * clientData = NULL, 
+            int priority = tnmWrapperPriorityIdle );
+
+    /**
+     * 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. If thumbnail loading fails thumbnailReady signal is emited 
+     * with null pixmap and error code.
+     *
+     * @param thumbnailId   Thumbnail ID
+     * @param clientData    Pointer to arbitrary client data.
+     *                      This pointer is not used by the API for
+     *                      anything other than returning it in the
+     *                      ThumbnailReady signal.
+     * @param priority      Priority for this operation
+     * @return              Thumbnail request ID or -1 if request failed. This can be used to
+     *                      cancel the request or change priority.
+     *                      The ID is specific to this tnm
+     *                      instance and may not be shared with other
+     *                      instances.
+     */    
+    TNM_EXPORT int getThumbnail( unsigned long int thumbnailId, void * clientData = NULL, 
+            int priority = tnmWrapperPriorityIdle );
+    
+    /**
+     * Set a thumbnail for an object file generated from pixmap delivered.
+     * thumbnailReady() signal will be emited when the operation is complete. 
+     * 
+     * @param source             Pixmap from which the thumbnail will be created
+     * @param fileName           file name
+     * @param clientData         Pointer to arbitrary client data.
+     *                           This pointer is not used by the API for
+     *                           anything other than returning it in the
+     *                           ThumbnailReady callback.
+     * @param priority           Priority for this operation
+     * @return                   Thumbnail request ID or -1 if request failed. This can be used to
+     *                           cancel the request or change priority. 
+     *                           
+     */    
+    TNM_EXPORT int setThumbnail( const QPixmap& source, const QString& fileName,
+            void * clientData = NULL, int priority = tnmWrapperPriorityIdle );
+    
+    /**
+     * Set a thumbnail for an object file generated from pixmap delivered.
+     * thumbnailReady() signal will be emited when the operation is complete. 
+     * 
+     * @param source             QImage from which the thumbnail will be created
+     * @param fileName           file name
+     * @param clientData         Pointer to arbitrary client data.
+     *                           This pointer is not used by the API for
+     *                           anything other than returning it in the
+     *                           ThumbnailReady callback.
+     * @param priority           Priority for this operation
+     * @return                   Thumbnail request ID or -1 if request failed. This can be used to
+     *                           cancel the request or change priority. 
+     *                           
+     */    
+    TNM_EXPORT int setThumbnail( const QImage& source, const QString& fileName,
+            void * clientData = NULL, int priority = tnmWrapperPriorityIdle );
+    
+    /**
+     * Set a thumbnail for an object file generated from source file.
+     * thumbnailReady() signal will be emited when the operation is complete. 
+     * 
+     * @param sourceFileName     Source file name from which the thumbnail will be created
+     * @param targetFileName     Target file name
+     * @param clientData         Pointer to arbitrary client data.
+     *                           This pointer is not used by the API for
+     *                           anything other than returning it in the
+     *                           ThumbnailReady callback.
+     * @param priority           Priority for this operation
+     * @return                   Thumbnail request ID or -1 if request failed. This can be used to
+     *                           cancel the request or change priority. 
+     *                           
+     */    
+    TNM_EXPORT int setThumbnail( const QString& sourceFileName, const QString& targetFileName,
+            const QString& mimeType = QString(""), void * clientData = NULL, 
+            int priority = tnmWrapperPriorityIdle );
+
+    /**
+     * Delete all thumbnails for a given object. This is an asynchronous
+     * operation, which always returns immediately.
+     *
+     * @param fileName      Source file
+     */
+    TNM_EXPORT void deleteThumbnails( const QString& fileName );
+
+    /**
+     * Delete all thumbnails for a given object. This is an asynchronous
+     * operation, which always returns immediately.
+     *
+     * @param thumbnailId      thumbnail id
+     */
+    TNM_EXPORT void deleteThumbnails( unsigned long int thumbnailId );
+
+    /**
+     * Cancel a thumbnail operation.
+     *
+     * @param id      Request ID for the operation to be cancelled.
+     * @return         true if cancelling was successful.
+     */
+    TNM_EXPORT bool cancelRequest( int id );
+
+    /**
+     * Change the priority of a queued thumbnail operation.
+     *
+     * @param id           Request ID for the request which to assign a new
+     *                      priority.
+     * @param newPriority  New priority value
+     * @return              true if change was successful.
+     */
+    TNM_EXPORT bool changePriority( int id, int newPriority );
+    
+signals:  
+    /**
+     * Final thumbnail bitmap generation or loading is complete.
+     *
+     * @param pixmap     An object representing the resulting thumbnail.
+     * @param clientData Client data
+     * @param id         Request ID for the operation
+     * @param errorCode  error code
+     */
+    TNM_EXPORT void thumbnailReady( QPixmap , void * , int , int );    
+
+    /**
+     * Final thumbnail bitmap generation or loading is complete.
+     *
+     * @param image      An object representing the resulting thumbnail.
+     * @param clientData Client data
+     * @param id         Request ID for the operation
+     * @param errorCode  error code
+     */
+    TNM_EXPORT void thumbnailReady( QImage , void * , int , int );    
+
+protected:
+    
+    void connectNotify(const char *signal);
+
+    void disconnectNotify(const char *signal);
+
+private:
+    ThumbnailManagerPrivate* d;
+    
+    friend class ThumbnailManagerPrivate;
+    friend class TestThumbnailManager;
+};
+
+#endif // THUMBNAILMANAGER_QT
Binary file imagehandling_plat/thumbnailmanager_api/tsrc/data/mmc/ThumbnailManagerTest/camera.jpg has changed
--- a/imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandling_plat/thumbnailmanager_api/tsrc/src/thumbnailcenrep.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -179,7 +179,7 @@
     TInt ySize( 0 );
     TBool flags( EFalse );
     const TBool KGridAndListThumbnailCropped = ETrue; 
-    TInt raw_mode( EColor16M ); // always 16-bit
+    TInt raw_mode( EColor64K );
     TInt format( 0 );
     TBool autoCreate( EFalse );
     
--- a/imagehandlinglib/Group/IHL.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlinglib/Group/IHL.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -49,7 +49,7 @@
 
 // Default system include paths for middleware layer modules.
 MW_LAYER_SYSTEMINCLUDE
-SYSTEMINCLUDE   /epoc32/include/icl // Needs to be removed after ICL has made SF structural changes.
+SYSTEMINCLUDE   /epoc32/include/icl 
 
 
 LIBRARY			euser.lib
--- a/imagehandlingutilities/group/bld.inf	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/group/bld.inf	Tue Aug 31 15:30:59 2010 +0300
@@ -16,9 +16,11 @@
 */
 
 
+
 #include "../thumbnailmanager/group/bld.inf"
 
 
+
 // End of File
 
 
Binary file imagehandlingutilities/thumbnailmanager/conf/102830B0.txt has changed
Binary file imagehandlingutilities/thumbnailmanager/conf/thumbnailmanager.confml has changed
--- a/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/inc/thumbnailmanagerconstants.h	Tue Aug 31 15:30:59 2010 +0300
@@ -119,8 +119,8 @@
 
 //default displaymode (bpp - bits per pixel) for TNs in DB
 //this makes possible to provide all colour depths up to 16M aka 24 -bit full colour
-//Symbian^3 EColor16M
-const TDisplayMode KStoreDisplayMode = EColor16M;
+//Symbian^4 EColor16MAP
+const TDisplayMode KStoreDisplayMode = EColor16MAP;
 
 //required amount of memory to keep bitmaps on RAM in bits
 const TInt KMemoryNeed = 5000000;
--- a/imagehandlingutilities/thumbnailmanager/plugins/audio/group/thumbnailaudioprovider.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/group/thumbnailaudioprovider.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -36,7 +36,7 @@
 MW_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE ../inc
-USERINCLUDE ../../../inc
+USERINCLUDE ../../../inc ../traces
 
 SYSTEMINCLUDE /epoc32/include/ecom
 SYSTEMINCLUDE /epoc32/include/icl
--- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailaudioprovider.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -26,6 +26,11 @@
 #include <MetaDataUtility.h>
 #include <MetaDataFieldContainer.h>
 #include "thumbnailmanagerconstants.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailaudioproviderTraces.h"
+#endif
+
 
 
 #ifndef IMPLEMENTATION_PROXY_ENTRY
@@ -57,6 +62,7 @@
 CThumbnailAudioProvider::CThumbnailAudioProvider()
     {
     TN_DEBUG1( "CThumbnailAudioProvider::CThumbnailAudioProvider()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILAUDIOPROVIDER_CTHUMBNAILAUDIOPROVIDER, "CThumbnailAudioProvider::CThumbnailAudioProvider" );
     }
 
 
@@ -68,6 +74,8 @@
 CThumbnailAudioProvider::~CThumbnailAudioProvider()
     {
     TN_DEBUG1( "CThumbnailAudioProvider::~CThumbnailAudioProvider()" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILAUDIOPROVIDER_CTHUMBNAILAUDIOPROVIDER, "CThumbnailAudioProvider::~CThumbnailAudioProvider" );
+    
     delete iImageDecoderv3;
     iImageDecoderv3 = NULL;
     REComSession::DestroyedImplementation( iDtor_ID_Key );
@@ -84,6 +92,7 @@
     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference /*aQualityPreference*/  )
     {   
     TN_DEBUG1( "CThumbnailAudioProvider::GetThumbnailL() - rfile " );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILAUDIOPROVIDER_GETTHUMBNAILL, "CThumbnailAudioProvider::GetThumbnailL - rfile" );
     CMetaDataUtility* metaDataUtil = CMetaDataUtility::NewL();
     CleanupStack::PushL( metaDataUtil );
     
@@ -141,6 +150,7 @@
     const TDisplayMode /* aDisplayMode */, const CThumbnailManager::TThumbnailQualityPreference /*aQualityPreference*/ )
     {
     TN_DEBUG1( "CThumbnailAudioProvider::GetThumbnailL() - buffer" );
+	OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILAUDIOPROVIDER_GETTHUMBNAILL, "CThumbnailAudioProvider::GetThumbnailL - buffer" );
 	__ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbnailAudioProvider::GetThumbnailL"), KErrNotSupported));
     }
 
@@ -152,6 +162,7 @@
 void CThumbnailAudioProvider::GetThumbnailL( RFs& /* aFs */, TDesC8& /*aBuffer */)
     {
     TN_DEBUG1( "CThumbnailAudioProvider::GetThumbnailL() - buffer no mime" );
+	OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILAUDIOPROVIDER_GETTHUMBNAILL, "CThumbnailAudioProvider::GetThumbnailL - buffer no mime" );
 	__ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbnailAudioProvider::GetThumbnailL"), KErrNotSupported));
 	User::Leave( KErrNotSupported );
     }
--- a/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/audio/src/thumbnailimagedecoderv3.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,11 @@
 #include "thumbnailimagedecoderv3.h"
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailimagedecoderv3Traces.h"
+#endif
+
 
 
 // CImageDecoder supports up to 1/8 size reduction if EFullyScaleable is
@@ -68,6 +73,7 @@
     {
 
     TN_DEBUG1( "CCThumbnailImageDecoderv3::CreateL() called" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV3_CREATEL, "CThumbnailImageDecoderv3::CreateL" );
 
     iSize = aSize;
     iMimeType = aMimeType;
@@ -94,6 +100,7 @@
 void CThumbnailImageDecoderv3::DecodeL( const TDisplayMode aDisplayMode )
     {
     TN_DEBUG1( "CThumbnailImageDecoderv3::DecodeL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV3_DECODEL, "CThumbnailImageDecoderv3::DecodeL - start" );
     
     // Create the bitmap
     if ( !iBitmap )
@@ -132,6 +139,7 @@
             }
         TN_DEBUG4( 
             "EFullyScaleable not set for image - loadSize=(%d,%d) reduction=1/%d ", loadSize.iWidth, loadSize.iHeight, reductionFactor );
+        OstTraceExt3( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV3_DECODEL, "CThumbnailImageDecoderv3::DecodeL;loadSize.iWidth=%d;loadSize.iHeight=%d;reductionFactor=%d", loadSize.iWidth, loadSize.iHeight, reductionFactor );
         }
 
     TInt err = iBitmap->Create( loadSize, aDisplayMode );
@@ -146,6 +154,7 @@
     SetActive();
     
     TN_DEBUG1( "CThumbnailImageDecoderv3::DecodeL() end" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODERV3_DECODEL, "CThumbnailImageDecoderv3::DecodeL - end" );
     }
 
 
@@ -224,6 +233,7 @@
     if ( decErr != KErrNone )
         {
         TN_DEBUG2( "CThumbnailImageDecoderv3::CreateDecoderL() - HW CExtJpegDecoder failed %d", decErr);
+        OstTrace1( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - HW CExtJpegDecoder failed;decErr=%d", decErr );
         
         LeaveIfCorruptL( decErr );
         
@@ -233,6 +243,7 @@
         if ( decErr != KErrNone )
             {                             
             TN_DEBUG2( "CThumbnailImageDecoderv3::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr);
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - SW CExtJpegDecoder failed;decErr=%d", decErr );
             
             LeaveIfCorruptL( decErr );
             // don't force any mime type
@@ -241,20 +252,24 @@
                 {
                 Release();
                 TN_DEBUG2( "CThumbnailImageDecoderv3::CreateDecoderL() - CImageDecoder error %d", decErr );
+                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - CImageDecoder error;decErr=%d", decErr );
                 
                 User::Leave( decErr );
                 }     
             
             TN_DEBUG1( "CThumbnailImageDecoderv3::CreateDecoderL() - CImageDecoder created" );
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - CImageDecoder created" );
             }
         else
             {
             TN_DEBUG1( "CThumbnailImageDecoderv3::CreateDecoderL() - SW CExtJpegDecoder created" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - SW CExtJpegDecoder created" );
             }               
         }
     else
         {
         TN_DEBUG1( "CThumbnailImageDecoderv3::CreateDecoderL() - HW CExtJpegDecoder created" );
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEDECODERV3_CREATEDECODERL, "CThumbnailImageDecoderv3::CreateDecoderL - HW CExtJpegDecoder created" );
         }    
     }
 
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/group/thumbnailimageprovider.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/group/thumbnailimageprovider.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -37,7 +37,7 @@
 MW_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE ../inc
-USERINCLUDE ../../../inc
+USERINCLUDE ../../../inc ../traces
 
 SYSTEMINCLUDE /epoc32/include/ecom
 SYSTEMINCLUDE /epoc32/include/icl
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoder.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -27,6 +27,11 @@
 #include "thumbnailimagedecoder.h"
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailimagedecoderTraces.h"
+#endif
+
 
 const TUid KImageTypeSVGUid = 
     {
@@ -81,6 +86,7 @@
     TDataType& aMimeType, const TSize& aSize)
     {
     TN_DEBUG1( "CThumbnailImageDecoder::CreateL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODER_CREATEL, "CThumbnailImageDecoder::CreateL - start" );
 
     iBuffer = NULL;
     iSize = aSize;
@@ -100,6 +106,7 @@
     iOriginalSize = info.iOverallSizeInPixels;
     
     TN_DEBUG1( "CThumbnailImageDecoder::CreateL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODER_CREATEL, "CThumbnailImageDecoder::CreateL - end" );
     }
 
 
@@ -113,6 +120,7 @@
     TDataType& aMimeType, const TSize& aSize)
     {
     TN_DEBUG1( "CThumbnailImageDecoder::CreateL() start" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODER_CREATEL, "CThumbnailImageDecoder::CreateL - start" );
 
     iSize = aSize;
     iMimeType = aMimeType;
@@ -131,6 +139,7 @@
     iOriginalSize = info.iOverallSizeInPixels;
     
     TN_DEBUG1( "CThumbnailImageDecoder::CreateL() end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODER_CREATEL, "CThumbnailImageDecoder::CreateL - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -141,6 +150,7 @@
 void CThumbnailImageDecoder::DecodeL( const TDisplayMode aDisplayMode, const CThumbnailManager::TThumbnailFlags aFlags)
     {
     TN_DEBUG1( "CThumbnailImageDecoder::DecodeL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL - start" );
     
     // Create the bitmap
     if ( !iBitmap )
@@ -149,6 +159,7 @@
         }
     
     TN_DEBUG3( "CThumbnailImageDecoder::DecodeL() %d x %d", iSize.iWidth, iSize.iHeight );
+    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL;iSize.iWidth=%d;iSize.iHeight=%d", iSize.iWidth, iSize.iHeight );
     if( iOriginalSize.iWidth < iOriginalSize.iHeight )
         {
         TInt height = iSize.iHeight;
@@ -156,6 +167,7 @@
         iSize.iWidth = height;
         iPortrait = ETrue;
         TN_DEBUG3( "CThumbnailImageDecoder::DecodeL() %d x %d", iSize.iWidth, iSize.iHeight );
+        OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL;iSize.iWidth=%d;iSize.iHeight=%d", iSize.iWidth, iSize.iHeight );
         }
     else
         {
@@ -163,6 +175,7 @@
         }
     
     TN_DEBUG3( "CThumbnailImageDecoder::DecodeL() iOriginalSize = %d x %d", iOriginalSize.iWidth, iOriginalSize.iHeight );
+    OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL;iOriginalSize.iWidth=%d;iOriginalSize.iHeight=%d", iOriginalSize.iWidth, iOriginalSize.iHeight );
 
     //Size in both x and y dimension must be non-zero, positive value
     TSize loadSize( iOriginalSize) ;
@@ -171,11 +184,13 @@
         {
         loadSize = iOriginalSize;
         TN_DEBUG1( "CThumbnailImageDecoder::DecodeL() LoadSize is OriginalSize" );
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL - LoadSize is OriginalSize" );
         }
     else if((iFrameInfoFlags& TFrameInfo::EFullyScaleable || IsSvg()) && aFlags == !CThumbnailManager::ECropToAspectRatio)
         {
         loadSize = iSize;
         TN_DEBUG1( "CThumbnailImageDecoder::DecodeL() EFullyScaleable start" );
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL - EFullyScaleable start" );
         const TReal32 srcAspect = static_cast < TReal32 > (
               iOriginalSize.iWidth ) / iOriginalSize.iHeight;
 
@@ -196,6 +211,7 @@
               }
         
         TN_DEBUG3( "CThumbnailImageDecoder::DecodeL() EFullyScaleable loadSize = %d x %d", loadSize.iWidth, loadSize.iHeight );
+        OstTraceExt2( TRACE_NORMAL, DUP6_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL - EFullyScaleable;loadSize.iWidth=%d;loadSize.iHeight=%d", loadSize.iWidth, loadSize.iHeight );
         }
     else 
         {
@@ -223,6 +239,7 @@
             }
         TN_DEBUG4( 
             "CThumbnailImageDecoder::DecodeL() - loadSize = (%d,%d) reduction = 1/%d ", loadSize.iWidth, loadSize.iHeight, reductionFactor );
+        OstTraceExt3( TRACE_NORMAL, DUP7_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL;loadSize.iWidth=%d;loadSize.iHeight=%d;reductionFactor=%d", loadSize.iWidth, loadSize.iHeight, reductionFactor );
         }
 
     TInt err = iBitmap->Create( loadSize, aDisplayMode );
@@ -238,6 +255,7 @@
     SetActive();
     
     TN_DEBUG1( "CThumbnailImageDecoder::DecodeL() end" );
+    OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILIMAGEDECODER_DECODEL, "CThumbnailImageDecoder::DecodeL - end" );
     }
 
 
@@ -347,6 +365,7 @@
     aFlags )
     {
     TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - start" );
     
     TBool thumbFound( EFalse );
     
@@ -354,6 +373,7 @@
     if ( IsJpeg() && !( aFlags == CThumbnailManager::EOptimizeForQuality ))
         {
         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() create exif decoder" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - create exif decoder" );
         TRAPD( err, CreateExifDecoderL( aFlags ));
         thumbFound = ( err == KErrNone );
         iEXIF = ETrue;
@@ -363,6 +383,7 @@
         {
         iEXIF = EFalse;
         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() create normal decoder" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - create normal decoder" );
         
         delete iDecoder;
         iDecoder = NULL;
@@ -393,6 +414,7 @@
                         options, KImageTypeSVGUid, KNullUid, KNullUid );
                 
                 TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                 }
             else
                 {
@@ -401,11 +423,13 @@
                 if ( decErr != KErrNone )
                     {
                     TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - error 1" );
+                    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - error 1" );
                     
                     User::Leave( decErr );
                     }
                 
                 TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                 }
             }
         else if ( !IsJpeg())
@@ -415,6 +439,7 @@
                 iDecoder = CImageDecoder::FileNewL( iFile, ContentAccess::EPeek, options );
                 
                 TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                 }
             else
                 {
@@ -423,6 +448,7 @@
                 if ( decErr != KErrNone )
                     {                        
                     TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder error %d", decErr );
+                    OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder error;decErr=%d", decErr );
                     LeaveIfCorruptL(decErr);
                     
                     // don't force any mime type
@@ -431,12 +457,14 @@
                     if ( decErr != KErrNone )
                         {                        
                         TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder no mime error %d", decErr );
+                        OstTrace1( TRACE_NORMAL, DUP8_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder no mime error;decErr=%d", decErr );
                         
                         User::Leave( decErr );
                         }
                     }
                 
                 TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                OstTrace0( TRACE_NORMAL, DUP9_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                 }
             }
         else
@@ -449,6 +477,7 @@
                 if ( decErr != KErrNone )
                     {
                     TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - HW CExtJpegDecoder failed %d", decErr);
+                    OstTrace1( TRACE_NORMAL, DUP10_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL;decErr=%d - HW CExtJpegDecoder failed ", decErr );
                     LeaveIfCorruptL(decErr);
                     
                     TRAP( decErr, iDecoder = CExtJpegDecoder::FileNewL(
@@ -457,6 +486,7 @@
                     if ( decErr != KErrNone )
                         {
                         TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr);
+                        OstTrace1( TRACE_NORMAL, DUP11_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - SW CExtJpegDecoder failed;decErr=%d", decErr );
                         LeaveIfCorruptL(decErr);
                         
                         TRAP( decErr, iDecoder = CImageDecoder::FileNewL( iFile, ContentAccess::EPeek, options ));
@@ -464,19 +494,23 @@
                         if( decErr != KErrNone)
                             {
                             TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder failed %d", decErr);
+                            OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder failed ;decErr=%d", decErr );
                             User::Leave( decErr );
                             }
                         
                         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                        OstTrace0( TRACE_NORMAL, DUP13_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                         }
                     else
                         {
                         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - SW CExtJpegDecoder created" );
+                        OstTrace0( TRACE_NORMAL, DUP14_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - SW CExtJpegDecoder created" );
                         }
                     }
                 else 
                     {
                     TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - HW CExtJpegDecoder created" );
+                    OstTrace0( TRACE_NORMAL, DUP15_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL" );
                     }
                 }
             else
@@ -487,6 +521,7 @@
                 if ( decErr != KErrNone )
                     {
                     TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - HW CExtJpegDecoder failed %d", decErr);
+                    OstTrace1( TRACE_NORMAL, DUP16_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - HW CExtJpegDecoder failed;decErr=%d", decErr );
                     LeaveIfCorruptL(decErr);
                     
                     TRAP( decErr, iDecoder = CExtJpegDecoder::DataNewL(
@@ -495,12 +530,14 @@
                     if ( decErr != KErrNone )
                         {                       
                         TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr);
+                        OstTrace1( TRACE_NORMAL, DUP17_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - SW CExtJpegDecoder failed;decErr=%d", decErr );
                         LeaveIfCorruptL(decErr);
                         TRAPD( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, iMimeType.Des8(), options) );
                         
                         if ( decErr != KErrNone )
                             {                        
                             TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder failed %d", decErr);
+                            OstTrace1( TRACE_NORMAL, DUP18_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder failed;decErr=%d", decErr );
                             LeaveIfCorruptL(decErr);
                             // don't force any mime type
                             TRAPD( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, options ) );
@@ -508,26 +545,31 @@
                             if ( decErr != KErrNone )
                                 {                                
                                 TN_DEBUG2( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder no mime failed %d", decErr);
+                                OstTrace1( TRACE_NORMAL, DUP19_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder no mime failed;decErr=%d", decErr );
                                 User::Leave( decErr );
                                 }
                             }
                         
                         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - CImageDecoder created" );
+                        OstTrace0( TRACE_NORMAL, DUP20_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - CImageDecoder created" );
                         }
                     else
                         {
                         TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - SW CExtJpegDecoder created" );
+                        OstTrace0( TRACE_NORMAL, DUP21_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - SW CExtJpegDecoder created" );
                         }               
                     }
                 else
                     {
                     TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() - HW CExtJpegDecoder created" );
+                    OstTrace0( TRACE_NORMAL, DUP22_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - HW CExtJpegDecoder created" );
                     }               
                 }
             }
         }
     
     TN_DEBUG1( "CThumbnailImageDecoder::CreateDecoderL() end" );
+    OstTrace0( TRACE_NORMAL, DUP23_CTHUMBNAILIMAGEDECODER_CREATEDECODERL, "CThumbnailImageDecoder::CreateDecoderL - end" );
     }
 
 
@@ -539,6 +581,7 @@
     ::TThumbnailQualityPreference aFlags )
     {
     TN_DEBUG1( "CThumbnailImageDecoder::CreateExifDecoderL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODER_CREATEEXIFDECODERL, "CThumbnailImageDecoder::CreateExifDecoderL - start" );
     
     // If the image is in jpeg format, try to get thumbnail from EXIF data.
     CExifRead* reader = NULL;
@@ -600,6 +643,7 @@
         }
 
     TN_DEBUG1( "CThumbnailImageDecoder::CreateExifDecoderL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODER_CREATEEXIFDECODERL, "CThumbnailImageDecoder::CreateExifDecoderL - end" );
     }
 
 
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimagedecoderv2.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -26,6 +26,11 @@
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
 #include "thumbnailmanagerconstants.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailimagedecoderv2Traces.h"
+#endif
+
 
 // ============================ MEMBER FUNCTIONS ===============================
 //------------------------------------------------------------------------
@@ -59,6 +64,7 @@
 void CThumbnailImageDecoderv2::CreateL(TDesC8& aBuffer, MThumbnailProviderObserver& aObserver)
     {
     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_CREATEL, "CThumbnailImageDecoderv2::CreateL - start" );
 
     iBuffer = &aBuffer;
     iObserver = &aObserver;
@@ -66,6 +72,7 @@
     CreateDecoderL();
     
     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_CREATEL, "CThumbnailImageDecoderv2::CreateL - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -76,6 +83,7 @@
 void CThumbnailImageDecoderv2::DecodeL( )
     {
     TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_DECODEL, "CThumbnailImageDecoderv2::DecodeL - start" );
     
     // Create the bitmap
     if ( !iBitmap )
@@ -97,6 +105,7 @@
     SetActive();  
     
     TN_DEBUG1( "CThumbnailImageDecoderv2::DecodeL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_DECODEL, "CThumbnailImageDecoderv2::DecodeL - end" );
     }
 
 
@@ -165,6 +174,7 @@
 void CThumbnailImageDecoderv2::CreateDecoderL()
     {
     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - start" );
     
     delete iDecoder;
     iDecoder = NULL;
@@ -178,12 +188,14 @@
     if ( decErr != KErrNone )
         {
         TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder failed = %d", decErr );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - HW CExtJpegDecoder failed;decErr=%d", decErr );
         TRAP( decErr, iDecoder = CExtJpegDecoder::DataNewL(
                 CExtJpegDecoder::ESwImplementation, iFs, *iBuffer, options ));
         
         if ( decErr != KErrNone )
             {
             TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - SW CExtJpegDecoder failed %d", decErr);
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - SW CExtJpegDecoder failed;decErr=%d", decErr );
             LeaveIfCorruptL( decErr );
             
             TRAP( decErr, iDecoder = CImageDecoder::DataNewL( iFs, *iBuffer, KJpegMime(), options ) );
@@ -191,6 +203,7 @@
             if ( decErr != KErrNone )
                 {                  
                 TN_DEBUG2( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder failed %d", decErr);
+                OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder failed;decErr=%d", decErr );
                 LeaveIfCorruptL( decErr );
             
                 // don't force any mime type
@@ -198,23 +211,28 @@
                 if ( decErr != KErrNone )
                     {                    
                     TN_DEBUG2( "CThumbnailImageDecoderv2::CImageDecoder() - CImageDecoder no mime error %d", decErr  );
+                    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder no mime error;decErr=%d", decErr );
                     User::Leave( decErr );
                     }
                 }
             
             TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - CImageDecoder created" );
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - CImageDecoder created" );
             }
         else
             {
             TN_DEBUG1( "CThumbnailImageDecoderv2:CreateDecoderL() - SW CExtJpegDecoder created" );
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - SW CExtJpegDecoder created" );
             }               
         }
     else
         {
         TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() - HW CExtJpegDecoder created" );
+        OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - HW CExtJpegDecoder created" );
         }
      
     TN_DEBUG1( "CThumbnailImageDecoderv2::CreateDecoderL() end" );
+    OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILIMAGEDECODERV2_CREATEDECODERL, "CThumbnailImageDecoderv2::CreateDecoderL - end" );
     }
 
 // -----------------------------------------------------------------------------
--- a/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/image/src/thumbnailimageprovider.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,11 @@
 #include "thumbnailmanageruids.hrh"
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailimageproviderTraces.h"
+#endif
+
 
 #ifndef IMPLEMENTATION_PROXY_ENTRY
 typedef TAny* TProxyNewLPtr;
@@ -55,6 +60,7 @@
 CThumbnailImageProvider::CThumbnailImageProvider()
     {
     TN_DEBUG1( "CThumbnailImageProvider::CThumbnailImageProvider()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEPROVIDER_CTHUMBNAILIMAGEPROVIDER, "CThumbnailImageProvider::CThumbnailImageProvider" );
     }
 
 
@@ -66,6 +72,7 @@
 CThumbnailImageProvider::~CThumbnailImageProvider()
     {
     TN_DEBUG1( "CThumbnailImageProvider::~CThumbnailImageProvider()" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEPROVIDER_CTHUMBNAILIMAGEPROVIDER, "CThumbnailImageProvider::~CThumbnailImageProvider" );
     delete iImageDecoder;
     iImageDecoder = NULL;
     delete iImageDecoderv2;
@@ -84,6 +91,7 @@
     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
     {
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
 
     if ( !iImageDecoder )
         {
@@ -95,12 +103,24 @@
     iQualityPreference = aQualityPreference;
 	//set default mode displaymode from global constants
     iDisplayMode = KStoreDisplayMode;
-    
+
+//Symbian^4 specific
+    if ( KJpegMime() != iMimeType.Des8() ) 
+        {
+        iDisplayMode = EColor16M;
+        }
+		
+//TODO currently only ARM platforms supports MAP mode
+#if !(defined(__CC_ARM) || defined(__ARMCC__))
+    iDisplayMode = EColor16M;
+#endif	
+	
     iImageDecoder->CreateL( aFile, *iObserver, iQualityPreference, iMimeType, iTargetSize );
     iOriginalSize = iImageDecoder->OriginalSize();
     iImageDecoder->DecodeL( iDisplayMode, iFlags );
     
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -113,6 +133,7 @@
     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference aQualityPreference )
     {
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
     
     if ( !iImageDecoder )
         {
@@ -124,12 +145,24 @@
     iQualityPreference = aQualityPreference;
 	//set default mode displaymode from global constants
     iDisplayMode = KStoreDisplayMode;
-    
+	
+//Symbian^4 specific
+    if ( KJpegMime() != iMimeType.Des8() ) 
+        {
+        iDisplayMode = EColor16M;
+        }
+
+//TODO currently only ARM platforms supports MAP mode
+#if !(defined(__CC_ARM) || defined(__ARMCC__))
+    iDisplayMode = EColor16M;
+#endif	
+		
     iImageDecoder->CreateL( aBuffer, *iObserver, iQualityPreference, iMimeType, iTargetSize );
     iOriginalSize = iImageDecoder->OriginalSize();
     iImageDecoder->DecodeL( iDisplayMode, iFlags );
     
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -140,6 +173,7 @@
 void CThumbnailImageProvider::GetThumbnailL( RFs& aFs, TDesC8& aBuffer)
     {
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() start" );
+    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - start" );
 
     if ( !iImageDecoderv2 )
         {     
@@ -151,6 +185,7 @@
     iImageDecoderv2->DecodeL();
     
     TN_DEBUG1( "CThumbnailImageProvider::GetThumbnailL() end" );
+    OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILIMAGEPROVIDER_GETTHUMBNAILL, "CThumbnailImageProvider::GetThumbnailL - end" );
     }
 
 // ---------------------------------------------------------------------------
--- a/imagehandlingutilities/thumbnailmanager/plugins/video/group/thumbnailvideoprovider.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/video/group/thumbnailvideoprovider.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -35,7 +35,7 @@
 MW_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE ../inc
-USERINCLUDE ../../../inc
+USERINCLUDE ../../../inc ../traces
 
 SYSTEMINCLUDE /epoc32/include/ecom
 
--- a/imagehandlingutilities/thumbnailmanager/plugins/video/src/thumbnailvideoprovider.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/plugins/video/src/thumbnailvideoprovider.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,11 @@
 #include "thumbnailmanageruids.hrh"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailvideoproviderTraces.h"
+#endif
+
 
 #ifndef IMPLEMENTATION_PROXY_ENTRY
 typedef TAny* TProxyNewLPtr;
@@ -59,6 +64,7 @@
     iTimeout = EFalse;
     
     TN_DEBUG1( "CThumbnailVideoProvider::CThumbnailVideoProvider()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILVIDEOPROVIDER_CTHUMBNAILVIDEOPROVIDER, "CThumbnailVideoProvider::CThumbnailVideoProvider" );
     }
 
 
@@ -82,6 +88,7 @@
     iTimer.Close();
     
     TN_DEBUG1( "CThumbnailVideoProvider::~CThumbnailVideoProvider()" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILVIDEOPROVIDER_CTHUMBNAILVIDEOPROVIDER, "CThumbnailVideoProvider::~CThumbnailVideoProvider" );
     REComSession::DestroyedImplementation( iDtor_ID_Key );
     }
 // -----------------------------------------------------------------------------
@@ -117,6 +124,7 @@
         iTimeout = EFalse;
         
         TN_DEBUG1( "CThumbnailVideoProvider::RunL() - timeout" );
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILVIDEOPROVIDER_RUNL, "CThumbnailVideoProvider::RunL - timeout" );
         }
     }
 
@@ -130,11 +138,18 @@
     const TDisplayMode /*aDisplayMode*/, const CThumbnailManager::TThumbnailQualityPreference /*aQualityPreference */)
     {
     TN_DEBUG1( "CThumbnailVideoProvider::GetThumbnailL() start" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILVIDEOPROVIDER_GETTHUMBNAILL, "CThumbnailVideoProvider::GetThumbnailL - start" );
 
     iFlags = aFlags;
 	//set default mode displaymode from global constants
     iDisplayMode = KStoreDisplayMode;
 
+//Symbian^4 specific	
+//TODO currently only ARM platforms supports MAP mode
+#if !(defined(__CC_ARM) || defined(__ARMCC__))
+    iDisplayMode = EColor16M;
+#endif	
+
     TFileName filename;
     User::LeaveIfError( aFile.FullName( filename ));
 
@@ -146,6 +161,7 @@
         }
     
     TN_DEBUG1( "CThumbnailVideoProvider::GetThumbnailL() end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILVIDEOPROVIDER_GETTHUMBNAILL, "CThumbnailVideoProvider::GetThumbnailL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -160,6 +176,7 @@
     const CThumbnailManager::TThumbnailQualityPreference /*aQualityPreference */)
     {
     TN_DEBUG1( "CThumbnailVideoProvider::GetThumbnailL() - nothing to do" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILVIDEOPROVIDER_GETTHUMBNAILL, "CThumbnailVideoProvider::GetThumbnailL - nothing to do" );
     }
 
 // ---------------------------------------------------------------------------
@@ -169,6 +186,7 @@
 void CThumbnailVideoProvider::GetThumbnailL( RFs& /*aFs*/, TDesC8& /*aBuffer*/)
     {
     TN_DEBUG1( "CThumbnailVideoProvider::GetThumbnailL() - nothing to do" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILVIDEOPROVIDER_GETTHUMBNAILL, "CThumbnailVideoProvider::GetThumbnailL - nothing to do" );
     User::Leave( KErrNotSupported );
     }
 
@@ -198,6 +216,7 @@
     /*aInfo*/, TInt aError, CFbsBitmap* aThumb )
     {
     TN_DEBUG2( "CThumbnailVideoProvider::NotifyVideoClipThumbCompleted(aError=%d)", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILVIDEOPROVIDER_NOTIFYVIDEOCLIPTHUMBCOMPLETED, "CThumbnailVideoProvider::NotifyVideoClipThumbCompleted;aError=%d", aError );
     
     iTimer.Cancel();
     iTimeout = EFalse;
@@ -220,6 +239,7 @@
     aInfo, TInt aError )
     {
     TN_DEBUG2( "CThumbnailVideoProvider::NotifyVideoClipInfoReady(aError=%d)", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILVIDEOPROVIDER_NOTIFYVIDEOCLIPINFOREADY, "CThumbnailVideoProvider::NotifyVideoClipInfoReady;aError=%d", aError );
     
     if ( aError == KErrNone )
         {
@@ -231,6 +251,7 @@
         if ( err != KErrNone )
             {
             TN_DEBUG2( "CThumbnailVideoProvider::NotifyVideoClipInfoReady() -- GetThumbL() left with %d", err );
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILVIDEOPROVIDER_NOTIFYVIDEOCLIPINFOREADY, "CThumbnailVideoProvider::NotifyVideoClipInfoReady - GetThumbL() left with;err=%d", err );
             
             iObserver->ThumbnailProviderReady( err, NULL, TSize(), EFalse, EFalse);
             
Binary file imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v10.10.8_SA_S60.50_Euro1.sis has changed
Binary file imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/ThumbnailManager_0x102830AB_v9.20.8_SA_S60.50_Euro1.sis has changed
--- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/package.pkg	Tue Aug 31 15:30:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"Thumbnail Manager"},(0x102830AB), 9, 20, 8, TYPE=SA, RU
+#{"Thumbnail Manager"},(0x102830AB), 10, 10, 8, TYPE=SA, RU
 
 ; Localised Vendor name
 %{"Nokia"}
--- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/stub.pkg	Tue Aug 31 15:30:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"ThumbnailManager"},(0x102830AB), 9, 20, 8, TYPE=SA
+#{"ThumbnailManager"},(0x102830AB), 10, 10, 8, TYPE=SA
 
 ; Localised Vendor name
 %{"Nokia"}
Binary file imagehandlingutilities/thumbnailmanager/sis/thumbnailmanager/thumbnailmanager_stub.sis has changed
--- a/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/sis/thumbnailmanagercenrep/package.pkg	Tue Aug 31 15:30:59 2010 +0300
@@ -17,7 +17,7 @@
 &EN
 
 ; Header
-#{"Thumbnail Manager Cenrep"},(0x10202BE9), 9, 20, 8, TYPE=SP
+#{"Thumbnail Manager Cenrep"},(0x10202BE9), 10, 10, 8, TYPE=SP
 
 ; Localised Vendor name
 %{"Symbian Software Ltd."}
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/group/thumbagdaemon.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/group/thumbagdaemon.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -60,7 +60,7 @@
 
 USERINCLUDE             ../inc
 USERINCLUDE             ../../inc
-USERINCLUDE             ../../tmcommon/inc
+USERINCLUDE             ../../tmcommon/inc ../traces ../../thumbnailserver/traces
 
 LIBRARY                 euser.lib
 LIBRARY         	mdeclient.lib
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagaudioobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,10 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagaudioobserverTraces.h"
+#endif
 
 
 // ---------------------------------------------------------------------------
@@ -37,6 +41,7 @@
 CThumbAGAudioObserver* CThumbAGAudioObserver::NewLC(CThumbAGProcessor* aProcessor)
     {
     TN_DEBUG1( "CThumbAGAudioObserver::NewLC() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_NEWLC, "CThumbAGAudioObserver::NewLC" );
     
 	CThumbAGAudioObserver* self = new (ELeave) CThumbAGAudioObserver(aProcessor);
 	CleanupStack::PushL( self );
@@ -74,6 +79,7 @@
 void CThumbAGAudioObserver::ConstructL()
 	{
 	TN_DEBUG1( "CThumbAGAudioObserver::ConstructL() - begin" );
+	OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_CONSTRUCTL, "CThumbAGAudioObserver::ConstructL - begin" );
 	
 #ifdef _DEBUG
     iAddCounter = 0;
@@ -83,6 +89,7 @@
     InitializeL();
     	
 	TN_DEBUG1( "CThumbAGAudioObserver::ConstructL() - end" );
+	OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_CONSTRUCTL, "CThumbAGAudioObserver::ConstructL - end" );
 	}
 
 // ---------------------------------------------------------------------------
@@ -92,9 +99,10 @@
 void CThumbAGAudioObserver::InitializeL()
     {
     TN_DEBUG1( "CThumbAGAudioObserver::InitializeL() - begin" );
-    
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_INITIALIZEL, "CThumbAGAudioObserver::InitializeL - begin" );
    
         TN_DEBUG1( "CThumbAGAudioObserver::InitializeL() - create observers" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_INITIALIZEL, "CThumbAGAudioObserver::InitializeL - create observers" );
         
         // create shutdown observer
         if(iMDSShutdownObserver)
@@ -119,6 +127,7 @@
             }
         
         TN_DEBUG1( "CThumbAGAudioObserver::InitializeL() - connect to MDS" );
+        OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGAUDIOOBSERVER_INITIALIZEL, "CThumbAGAudioObserver::InitializeL - connect to MDS" );
         
         if(iMdESession)
             {
@@ -134,6 +143,7 @@
         iSessionError = EFalse;
       
         TN_DEBUG1( "CThumbAGAudioObserver::InitializeL() - end" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGAUDIOOBSERVER_INITIALIZEL, "CThumbAGAudioObserver::InitializeL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,17 +153,20 @@
 CThumbAGAudioObserver::~CThumbAGAudioObserver()
     {
     TN_DEBUG1( "CThumbAGAudioObserver::~CThumbAGAudioObserver() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_CTHUMBAGAUDIOOBSERVER, "CThumbAGAudioObserver::~CThumbAGAudioObserver - begin" );
     
     iShutdown = ETrue;    
     
     Shutdown();
     
     TN_DEBUG1( "CThumbAGAudioObserver::~CThumbAGAudioObserver() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_CTHUMBAGAUDIOOBSERVER, "CThumbAGAudioObserver::~CThumbAGAudioObserver - end" );
     }
 
 void CThumbAGAudioObserver::Shutdown()
     {
     TN_DEBUG1( "CThumbAGAudioObserver::Shutdown()" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_SHUTDOWN, "CThumbAGAudioObserver::Shutdown" );
     
     delete iMDSShutdownObserver;
     iMDSShutdownObserver = NULL;
@@ -185,6 +198,7 @@
 void CThumbAGAudioObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError )
     {
     TN_DEBUG1( "CThumbAGAudioObserver::HandleSessionOpened");
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_HANDLESESSIONOPENED, "CThumbAGAudioObserver::HandleSessionOpened" );
     
     if (aError == KErrNone)
         {
@@ -192,11 +206,13 @@
         if (err != KErrNone)
             {
             TN_DEBUG2( "CThumbAGAudioObserver::HandleSessionOpened, AddObserversL error == %d", err );
+            OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_HANDLESESSIONOPENED, "CThumbAGAudioObserver::HandleSessionOpened;err=%d", err );
             }
         }
     else
         {
         TN_DEBUG2( "CThumbAGAudioObserver::HandleSessionOpened error == %d", aError );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGAUDIOOBSERVER_HANDLESESSIONOPENED, "CThumbAGAudioObserver::HandleSessionOpened;aError=%d", aError );
         }
     }
 
@@ -207,6 +223,7 @@
 void CThumbAGAudioObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbAGAudioObserver::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_HANDLESESSIONERROR, "CThumbAGAudioObserver::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iSessionError)
         {
         iSessionError = ETrue;
@@ -219,6 +236,7 @@
                                    TCallBack(ReconnectCallBack, this));
                 
                 TN_DEBUG1( "CThumbAGAudioObserver::HandleSessionError() - reconnect timer started" );
+                OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_HANDLESESSIONERROR, "CThumbAGAudioObserver::HandleSessionError - reconnect timer started" );
                 }
             }
 
@@ -234,6 +252,7 @@
                                                const RArray<TItemId>& aObjectIdArray )
     {
     TN_DEBUG1( "CThumbAGAudioObserver::HandleObjectNotification() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - begin" );
 
     // no processor or shutting down
     if ( iShutdown || !iProcessor)
@@ -245,11 +264,13 @@
     if (aType == ENotifyAdd)
         {
         TN_DEBUG2( "CThumbAGAudioObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iAddCounter = aObjectIdArray.Count();
         }
     else if (aType == ENotifyModify)
         {
         TN_DEBUG2( "CThumbAGAudioObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iModCounter = aObjectIdArray.Count();
         }
 #endif
@@ -257,6 +278,7 @@
     if ( (aType == ENotifyAdd || aType == ENotifyModify ) && (aObjectIdArray.Count() > 0) )
         {
         TN_DEBUG1( "CThumbAGAudioObserver::HandleObjectNotification() - AddToQueueL" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - AddToQueueL" );
 
         // Add event to processing queue by type and enable force run        
         RPointerArray<HBufC> dummyArray;
@@ -264,20 +286,24 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbAGAudioObserver::HandleObjectNotification() - error adding to queue" );
+            OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - error adding to queue" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGAudioObserver::HandleObjectNotification() - bad notification" );
+        OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - bad notification" );
         }
     
 #ifdef _DEBUG
     TN_DEBUG3( "CThumbAGAudioObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter );
+    OstTraceExt2( TRACE_FATAL, DUP6_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification;iAddCounter=%u;iModCounter=%u", iAddCounter, iModCounter );
     iModCounter = 0;
     iAddCounter = 0;
 #endif
 
     TN_DEBUG1( "CThumbAGAudioObserver::HandleObjectNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP7_CTHUMBAGAUDIOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGAudioObserver::HandleObjectNotification - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -287,10 +313,12 @@
 void CThumbAGAudioObserver::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbAGAudioObserver::ShutdownNotification()" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGAudioObserver::ShutdownNotification" );
     
     if (!iShutdown)
         {
         TN_DEBUG1( "CThumbAGAudioObserver::ShutdownNotification() shutdown" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGAudioObserver::ShutdownNotification - shutdown" );
         iShutdown = ETrue;
         }
     }
@@ -302,6 +330,7 @@
 void CThumbAGAudioObserver::AddObserversL()
     {
     TN_DEBUG1( "CThumbAGAudioObserver::AddObserversL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_ADDOBSERVERSL, "CThumbAGAudioObserver::AddObserversL - begin" );
     
     CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL();
     CMdEObjectDef& audioDef = defaultNamespace.GetObjectDefL( MdeConstants::Audio::KAudioObject );
@@ -324,6 +353,7 @@
    CleanupStack::Pop( 4, addCondition );
      
     TN_DEBUG1( "CThumbAGAudioObserver::AddObserversL() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_ADDOBSERVERSL, "CThumbAGAudioObserver::AddObserversL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -333,6 +363,7 @@
 TInt CThumbAGAudioObserver::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGAudioObserver::ReconnectCallBack() - reinitialize");
+    OstTrace0( TRACE_FATAL, CTHUMBAGAUDIOOBSERVER_RECONNECTCALLBACK, "CThumbAGAudioObserver::ReconnectCallBack - reinitialize" );
     
     CThumbAGAudioObserver* self = static_cast<CThumbAGAudioObserver*>( aAny );
     
@@ -342,6 +373,7 @@
     TRAP_IGNORE( self->InitializeL() );
     
     TN_DEBUG1( "CThumbAGAudioObserver::ReconnectCallBack() - done");
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGAUDIOOBSERVER_RECONNECTCALLBACK, "CThumbAGAudioObserver::ReconnectCallBack - done" );
     
     return KErrNone;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagcameraobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,10 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagcameraobserverTraces.h"
+#endif
 
 
 // ---------------------------------------------------------------------------
@@ -37,6 +41,7 @@
 CThumbAGCameraObserver* CThumbAGCameraObserver::NewLC(CThumbAGProcessor* aProcessor)
     {
     TN_DEBUG1( "CThumbAGCameraObserver::NewLC() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_NEWLC, "CThumbAGCameraObserver::NewLC - begin" );
     
 	CThumbAGCameraObserver* self = new (ELeave) CThumbAGCameraObserver(aProcessor);
 	CleanupStack::PushL( self );
@@ -51,6 +56,7 @@
 CThumbAGCameraObserver* CThumbAGCameraObserver::NewL(CThumbAGProcessor* aProcessor)
 	{
 	TN_DEBUG1( "CThumbAGCameraObserver::NewL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_NEWL, "CThumbAGCameraObserver::NewL - begin" );
     
 	CThumbAGCameraObserver* self = CThumbAGCameraObserver::NewLC(aProcessor);
 	CleanupStack::Pop( self );
@@ -74,6 +80,7 @@
 void CThumbAGCameraObserver::ConstructL()
 	{
 	TN_DEBUG1( "CThumbAGCameraObserver::ConstructL() - begin" );
+	OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_CONSTRUCTL, "CThumbAGCameraObserver::ConstructL - begin" );
 	
 #ifdef _DEBUG
     iAddCounter = 0;
@@ -83,6 +90,7 @@
     InitializeL();
     	
 	TN_DEBUG1( "CThumbAGCameraObserver::ConstructL() - end" );
+	OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_CONSTRUCTL, "CThumbAGCameraObserver::ConstructL - end" );
 	}
 
 // ---------------------------------------------------------------------------
@@ -92,9 +100,11 @@
 void CThumbAGCameraObserver::InitializeL()
     {
     TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - begin" );
     
    
         TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - create observers" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - create observers" );
         
         // create shutdown observer
         if(iMDSShutdownObserver)
@@ -119,6 +129,7 @@
             }
         
         TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - connect to MDS" );
+        OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - connect to MDS" );
         
         if(iMdESession)
             {
@@ -134,6 +145,7 @@
         iSessionError = EFalse;
       
         TN_DEBUG1( "CThumbAGCameraObserver::InitializeL() - end" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGCAMERAOBSERVER_INITIALIZEL, "CThumbAGCameraObserver::InitializeL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,6 +155,7 @@
 CThumbAGCameraObserver::~CThumbAGCameraObserver()
     {
     TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_CTHUMBAGCAMERAOBSERVER, "CThumbAGCameraObserver::~CThumbAGCameraObserver - begin" );
     
     iShutdown = ETrue;    
     
@@ -170,6 +183,7 @@
         }
     
     TN_DEBUG1( "CThumbAGCameraObserver::~CThumbAGCameraObserver() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_CTHUMBAGCAMERAOBSERVER, "CThumbAGCameraObserver::~CThumbAGCameraObserver - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -179,6 +193,7 @@
 void CThumbAGCameraObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError )
     {
     TN_DEBUG1( "CThumbAGCameraObserver::HandleSessionOpened");
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened" );
     
     if (aError == KErrNone)
         {
@@ -186,11 +201,13 @@
         if (err != KErrNone)
             {
             TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened, AddObserversL error == %d", err );
+            OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened - AddObserversL error;err=%d", err );
             }
         }
     else
         {
         TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionOpened error == %d", aError );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGCAMERAOBSERVER_HANDLESESSIONOPENED, "CThumbAGCameraObserver::HandleSessionOpened;aError=%d", aError );
         }
     }
 
@@ -201,6 +218,7 @@
 void CThumbAGCameraObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbAGCameraObserver::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLESESSIONERROR, "CThumbAGCameraObserver::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iSessionError)
         {
         iSessionError = ETrue;
@@ -213,6 +231,7 @@
                                    TCallBack(ReconnectCallBack, this));
                 
                 TN_DEBUG1( "CThumbAGCameraObserver::HandleSessionError() - reconnect timer started" );
+                OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_HANDLESESSIONERROR, "CThumbAGCameraObserver::HandleSessionError - reconnect timer started" );
                 }
             }
 
@@ -228,6 +247,7 @@
                                                const RArray<TItemId>& aObjectIdArray )
     {
     TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - begin" );
 
     // no processor or shutting down
     if ( iShutdown || !iProcessor)
@@ -239,11 +259,13 @@
     if (aType == ENotifyAdd)
         {
         TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iAddCounter = aObjectIdArray.Count();
         }
     else if (aType == ENotifyModify)
         {
         TN_DEBUG2( "CThumbAGCameraObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count=%d", aObjectIdArray.Count() );
         iModCounter = aObjectIdArray.Count();
         }
 #endif
@@ -251,6 +273,7 @@
     if ( (aType == ENotifyAdd || aType == ENotifyModify ) && (aObjectIdArray.Count() > 0) )
         {
         TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - AddToQueueL" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - AddToQueueL" );
 
         // Add event to processing queue by type and enable force run        
         RPointerArray<HBufC> dummyArray;
@@ -258,20 +281,24 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - error adding to queue" );
+            OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - error adding to queue" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - bad notification" );
+        OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - bad notification" );
         }
     
 #ifdef _DEBUG
     TN_DEBUG3( "CThumbAGCameraObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter );
+    OstTraceExt2( TRACE_FATAL, DUP6_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification;iAddCounter=%u;iModCounter=%u", iAddCounter, iModCounter );
     iModCounter = 0;
     iAddCounter = 0;
 #endif
 
     TN_DEBUG1( "CThumbAGCameraObserver::HandleObjectNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP7_CTHUMBAGCAMERAOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGCameraObserver::HandleObjectNotification - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -281,10 +308,12 @@
 void CThumbAGCameraObserver::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification()" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGCameraObserver::ShutdownNotification" );
     
     if (!iShutdown)
         {
         TN_DEBUG1( "CThumbAGCameraObserver::ShutdownNotification() shutdown" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGCameraObserver::ShutdownNotification - shutdown" );
         iShutdown = ETrue;
         }
     }
@@ -296,6 +325,7 @@
 void CThumbAGCameraObserver::AddObserversL()
     {
     TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_ADDOBSERVERSL, "CThumbAGCameraObserver::AddObserversL - begin" );
     
     CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL();
     CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject );
@@ -319,6 +349,7 @@
     CleanupStack::Pop( 4, addCondition );  
      
     TN_DEBUG1( "CThumbAGCameraObserver::AddObserversL() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_ADDOBSERVERSL, "CThumbAGCameraObserver::AddObserversL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -328,6 +359,7 @@
 TInt CThumbAGCameraObserver::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - reinitialize");
+    OstTrace0( TRACE_FATAL, CTHUMBAGCAMERAOBSERVER_RECONNECTCALLBACK, "CThumbAGCameraObserver::ReconnectCallBack - reinitialize" );
     
     CThumbAGCameraObserver* self = static_cast<CThumbAGCameraObserver*>( aAny );
     
@@ -337,6 +369,7 @@
     TRAP_IGNORE( self->InitializeL() );
     
     TN_DEBUG1( "CThumbAGCameraObserver::ReconnectCallBack() - done");
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGCAMERAOBSERVER_RECONNECTCALLBACK, "CThumbAGCameraObserver::ReconnectCallBack - done" );
     
     return KErrNone;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagdaemon.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,10 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagdaemonTraces.h"
+#endif
 
 
 // ---------------------------------------------------------------------------
@@ -37,6 +41,7 @@
 CThumbAGDaemon* CThumbAGDaemon::NewLC()
     {
     TN_DEBUG1( "CThumbAGDaemon::NewLC() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_NEWLC, "CThumbAGDaemon::NewLC - begin" );
     
 	CThumbAGDaemon* self = new (ELeave) CThumbAGDaemon();
 	CleanupStack::PushL( self );
@@ -51,6 +56,7 @@
 CThumbAGDaemon* CThumbAGDaemon::NewL()
 	{
 	TN_DEBUG1( "CThumbAGDaemon::NewL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGDAEMON_NEWL, "CThumbAGDaemon::NewL" );
     
 	CThumbAGDaemon* self = CThumbAGDaemon::NewLC();
 	CleanupStack::Pop( self );
@@ -75,6 +81,7 @@
 void CThumbAGDaemon::ConstructL()
 	{
 	TN_DEBUG1( "CThumbAGDaemon::ConstructL() - begin" );
+	OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_CONSTRUCTL, "CThumbAGDaemon::ConstructL - begin" );
 	
 	StartL( KTAGDaemonName );
 	
@@ -86,6 +93,7 @@
     InitializeL();
     	
 	TN_DEBUG1( "CThumbAGDaemon::ConstructL() - end" );
+	OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_CONSTRUCTL, "CThumbAGDaemon::ConstructL - end" );
 	}
 
 // ---------------------------------------------------------------------------
@@ -95,10 +103,12 @@
 void CThumbAGDaemon::InitializeL()
     {
     TN_DEBUG1( "CThumbAGDaemon::InitializeL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_INITIALIZEL, "CThumbAGDaemon::InitializeL - begin" );
     
     if (DaemonEnabledL())
         {
         TN_DEBUG1( "CThumbAGDaemon::InitializeL() - create observers" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_INITIALIZEL, "CThumbAGDaemon::InitializeL - create observers" );
         
         // create shutdown observer
         if(iMDSShutdownObserver)
@@ -169,6 +179,7 @@
         User::Leave(KErrNone);
         }
         TN_DEBUG1( "CThumbAGDaemon::InitializeL() - end" );
+        OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGDAEMON_INITIALIZEL, "CThumbAGDaemon::InitializeL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -178,6 +189,7 @@
 CThumbAGDaemon::~CThumbAGDaemon()
     {
     TN_DEBUG1( "CThumbAGDaemon::~CThumbAGDaemon() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_CTHUMBAGDAEMON, "CThumbAGDaemon::~CThumbAGDaemon - begin" );
     
     iShutdown = ETrue;
     
@@ -228,6 +240,7 @@
         }
     
     TN_DEBUG1( "CThumbAGDaemon::~CThumbAGDaemon() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_CTHUMBAGDAEMON, "CThumbAGDaemon::~CThumbAGDaemon - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -251,6 +264,7 @@
 void CThumbAGDaemon::ThreadFunctionL()
     {
 	TN_DEBUG1( "CThumbAGDaemon::ThreadFunctionL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_THREADFUNCTIONL, "CThumbAGDaemon::ThreadFunctionL - begin" );
     
     User::LeaveIfError( User::RenameThread( KTAGDaemonName ) );
 
@@ -276,6 +290,7 @@
         }
     
     TN_DEBUG1( "CThumbAGDaemon::ThreadFunctionL() - end" );
+	OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_THREADFUNCTIONL, "CThumbAGDaemon::ThreadFunctionL - end" );
 	}
 
 // -----------------------------------------------------------------------------
@@ -285,6 +300,7 @@
 void CThumbAGDaemon::HandleSessionOpened( CMdESession& /* aSession */, TInt aError )
     {
     TN_DEBUG1( "CThumbAGDaemon::HandleSessionOpened");
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_HANDLESESSIONOPENED, "CThumbAGDaemon::HandleSessionOpened" );
     
     if (aError == KErrNone)
         {
@@ -294,11 +310,13 @@
         if (err != KErrNone)
             {
             TN_DEBUG2( "CThumbAGDaemon::HandleSessionOpened, AddObserversL error == %d", err );
+            OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_HANDLESESSIONOPENED, "CThumbAGDaemon::HandleSessionOpened;err=%d", err );
             }
         }
     else
         {
         TN_DEBUG2( "CThumbAGDaemon::HandleSessionOpened error == %d", aError );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGDAEMON_HANDLESESSIONOPENED, "CThumbAGDaemon::HandleSessionOpened;aError=%d", aError );
         }
     }
 
@@ -309,6 +327,7 @@
 void CThumbAGDaemon::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbAGDaemon::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_FATAL, CTHUMBAGDAEMON_HANDLESESSIONERROR, "CThumbAGDaemon::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iShutdown && !iSessionError)
         {
         iSessionError = ETrue;
@@ -339,6 +358,7 @@
                                TCallBack(ReconnectCallBack, this));
             
             TN_DEBUG1( "CThumbAGDaemon::HandleSessionError() - reconnect timer started" );
+            OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_HANDLESESSIONERROR, "CThumbAGDaemon::HandleSessionError - reconnect timer started" );
             }
 
         }   
@@ -356,6 +376,7 @@
         const RPointerArray<HBufC>& aObjectUriArray)
     {
     TN_DEBUG1( "CThumbAGDaemon::HandleUriObjectNotification() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_HANDLEURIOBJECTNOTIFICATION, "CThumbAGDaemon::HandleUriObjectNotification - begin" );
     
     if(!iProcessor || iShutdown)
         {
@@ -365,6 +386,7 @@
     if(aType == ENotifyRemove)
         {
         TN_DEBUG1( "CThumbAGDaemon::HandleUriObjectNotification() - removed");
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_HANDLEURIOBJECTNOTIFICATION, "CThumbAGDaemon::HandleUriObjectNotification - removed" );
         TInt err(0);
         TRAP(err, iProcessor->AddToQueueL(aType, EGenerationItemTypeAny, aObjectIdArray, aObjectUriArray, EFalse));
         __ASSERT_DEBUG((err==KErrNone), User::Panic(_L("CThumbAGDaemon::HandleUriObjectNotification()"), err));
@@ -372,6 +394,7 @@
         err = KErrNone;
         }
     TN_DEBUG1( "CThumbAGDaemon::HandleUriObjectNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGDAEMON_HANDLEURIOBJECTNOTIFICATION, "CThumbAGDaemon::HandleUriObjectNotification - end" );
     }
 #endif
 
@@ -384,6 +407,7 @@
                                                const RArray<TItemId>& aObjectIdArray )
     {
     TN_DEBUG1( "CThumbAGDaemon::HandleObjectNotification() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - begin" );
 
     // no processor or shutting down
     if (!iProcessor || iShutdown)
@@ -395,6 +419,7 @@
     if (aType == ENotifyRemove)
         {
         TN_DEBUG2( "CThumbAGDaemon::HandleObjectNotification() - ENotifyRemove %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - ENotifyRemove;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iDelCounter = aObjectIdArray.Count();
         }
 #endif
@@ -402,6 +427,7 @@
     if ( aType == ENotifyRemove && aObjectIdArray.Count() > 0 )
         {
         TN_DEBUG1( "CThumbAGDaemon::HandleObjectNotification() - AddToQueueL" );
+		OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - AddToQueueL" );
 		
         // If delete event, remove IDs from Modify and Add queues
         iProcessor->RemoveFromQueues( aObjectIdArray, EFalse);
@@ -412,19 +438,23 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbAGDaemon::HandleObjectNotification() - error adding to queue" );
+            OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - error adding to queue" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGDaemon::HandleObjectNotification() - bad notification" );
+        OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - bad notification" );
         }
     
 #ifdef _DEBUG
     TN_DEBUG2( "CThumbAGDaemon::IN-COUNTERS---------- Delete = %d", iDelCounter );
+    OstTrace1( TRACE_FATAL, DUP5_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::IN-COUNTERS---------- Delete;iDelCounter=%u", iDelCounter );
     iDelCounter = 0;
 #endif
 
     TN_DEBUG1( "CThumbAGDaemon::HandleObjectNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP6_CTHUMBAGDAEMON_HANDLEOBJECTNOTIFICATION, "CThumbAGDaemon::HandleObjectNotification - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -435,6 +465,7 @@
                TBool aPresent, const RArray<TItemId>& aObjectIdArray)
     {
     TN_DEBUG3( "CThumbAGDaemon::HandleObjectPresentNotification() - aPresent == %d count == %d", aPresent, aObjectIdArray.Count() );
+    OstTraceExt2( TRACE_FATAL, CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::HandleObjectPresentNotification;aPresent=%d;aObjectIdArray.Count()=%d", aPresent, aObjectIdArray.Count() );
     
     // no processor or shutting down
     if (!iProcessor || iShutdown)
@@ -454,11 +485,13 @@
             TRAP(err, iProcessor->AddToQueueL(ENotifyAdd, EGenerationItemTypeUnknown, aObjectIdArray, dummyArray, ETrue));
            
             TN_DEBUG2( "CThumbAGDaemon::HandleObjectPresentNotification() - ENotifyAdd unknown items %d", aObjectIdArray.Count() );     
+            OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::HandleObjectPresentNotification - ENotifyAdd unknown items;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
            #ifdef _DEBUG
            iAddCounter = aObjectIdArray.Count();
            if (err != KErrNone)
                {
                TN_DEBUG1( "CThumbAGDaemon::HandleObjectPresentNotification() - error adding to queue" );
+               OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::HandleObjectPresentNotification - error adding to queue" );
                }
            #endif
            }
@@ -466,6 +499,7 @@
     else
         {
         TN_DEBUG1( "CThumbAGDaemon::HandleObjectPresentNotification() - handle not present" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::HandleObjectPresentNotification - handle not present" );
 
         #ifdef _DEBUG    
         if( iAddCounter < aObjectIdArray.Count() )
@@ -486,11 +520,13 @@
     
     #ifdef _DEBUG
     TN_DEBUG3( "CThumbAGDaemon::IN-COUNTERS---------- Add = %d Delete = %d", iAddCounter, iDelCounter );
+    OstTraceExt2( TRACE_FATAL, DUP4_CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::::IN-COUNTERS---------- Add, Delete;iAddCounter=%u;iDelCounter=%u", iAddCounter, iDelCounter );
     iDelCounter = 0;
 	iAddCounter = 0;
     #endif
     
     TN_DEBUG1( "CThumbAGDaemon::HandleObjectPresentNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGDAEMON_HANDLEOBJECTPRESENTNOTIFICATION, "CThumbAGDaemon::HandleObjectPresentNotification - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -500,6 +536,7 @@
 void CThumbAGDaemon::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbAGDaemon::ShutdownNotification()" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_SHUTDOWNNOTIFICATION, "CThumbAGDaemon::ShutdownNotification" );
     
     if (!iShutdown)
         {
@@ -515,7 +552,7 @@
 void CThumbAGDaemon::AddObserversL()
     {
     TN_DEBUG1( "CThumbAGDaemon::AddObserversL() - begin" );
-    
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_ADDOBSERVERSL, "CThumbAGDaemon::AddObserversL - begin" );
  
 #ifdef MDS_URI_OBSERVER
     // remove observer with uri
@@ -526,6 +563,7 @@
     iMdESession->AddObjectPresentObserverL( *this );
     
     TN_DEBUG1( "CThumbAGDaemon::AddObserversL() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_ADDOBSERVERSL, "CThumbAGDaemon::AddObserversL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -535,6 +573,7 @@
 TBool CThumbAGDaemon::DaemonEnabledL()
     {
     TN_DEBUG1( "CThumbAGDaemon::DaemonEnabledL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_DAEMONENABLEDL, "CThumbAGDaemon::DaemonEnabledL - begin" );
     CRepository* rep = CRepository::NewL( TUid::Uid( THUMBNAIL_CENREP_UID ));
     
     // get value
@@ -545,6 +584,7 @@
     rep = NULL;
     
     TN_DEBUG3( "CThumbAGDaemon::DaemonEnabledL() - val == %d, ret == %d", val, ret );
+    OstTraceExt2( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_DAEMONENABLEDL, "CThumbAGDaemon::DaemonEnabledL;val=%u;ret=%d", val, ret );
     return val;
     }
 
@@ -555,6 +595,7 @@
 TInt CThumbAGDaemon::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGDaemon::ReconnectCallBack() - reinitialize");
+    OstTrace0( TRACE_FATAL, CTHUMBAGDAEMON_RECONNECTCALLBACK, "CThumbAGDaemon::ReconnectCallBack - reinitialize" );
     
     CThumbAGDaemon* self = static_cast<CThumbAGDaemon*>( aAny );
     
@@ -564,6 +605,7 @@
     TRAP_IGNORE( self->InitializeL() );
     
     TN_DEBUG1( "CThumbAGDaemon::ReconnectCallBack() - done");
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGDAEMON_RECONNECTCALLBACK, "CThumbAGDaemon::ReconnectCallBack - done" );
     
     return KErrNone;
     }
@@ -575,6 +617,7 @@
 TInt E32Main()
     {    
     TN_DEBUG1( "CThumbAGDaemon::E32Main() - begin" );
+    OstTrace0( TRACE_FATAL, _E32MAIN, "::E32Main - begin" );
 
     __UHEAP_MARK;
 
@@ -591,6 +634,7 @@
     if ( result != KErrNone )
         {
         TN_DEBUG1( "CThumbAGDaemon::E32Main() - error" );
+        OstTrace0( TRACE_FATAL, DUP1__E32MAIN, "::E32Main - error" );
         
         // Signal the client that server creation failed
         RProcess::Rendezvous( result );
@@ -599,6 +643,7 @@
     __UHEAP_MARKEND;
 
     TN_DEBUG1( "CThumbAGDaemon::E32Main() - end" );
+    OstTrace0( TRACE_FATAL, DUP2__E32MAIN, "::E32Main - end" );
     
     return result;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagimageobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,10 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagimageobserverTraces.h"
+#endif
 
 
 // ---------------------------------------------------------------------------
@@ -37,6 +41,7 @@
 CThumbAGImageObserver* CThumbAGImageObserver::NewLC(CThumbAGProcessor* aProcessor)
     {
     TN_DEBUG1( "CThumbAGImageObserver::NewLC() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_NEWLC, "CThumbAGImageObserver::NewLC - begin" );
     
 	CThumbAGImageObserver* self = new (ELeave) CThumbAGImageObserver(aProcessor);
 	CleanupStack::PushL( self );
@@ -51,6 +56,7 @@
 CThumbAGImageObserver* CThumbAGImageObserver::NewL(CThumbAGProcessor* aProcessor)
 	{
 	TN_DEBUG1( "CThumbAGImageObserver::NewL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_NEWL, "CThumbAGImageObserver::NewL - begin" );
     
 	CThumbAGImageObserver* self = CThumbAGImageObserver::NewLC(aProcessor);
 	CleanupStack::Pop( self );
@@ -74,6 +80,7 @@
 void CThumbAGImageObserver::ConstructL()
 	{
 	TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - begin" );
+	OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_CONSTRUCTL, "CThumbAGImageObserver::ConstructL - begin" );
 	
 #ifdef _DEBUG
     iAddCounter = 0;
@@ -83,6 +90,7 @@
     InitializeL();
     	
 	TN_DEBUG1( "CThumbAGImageObserver::ConstructL() - end" );
+	OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_CONSTRUCTL, "CThumbAGImageObserver::ConstructL - end" );
 	}
 
 // ---------------------------------------------------------------------------
@@ -92,9 +100,10 @@
 void CThumbAGImageObserver::InitializeL()
     {
     TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - begin" );
-    
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - begin" );
    
         TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - create observers" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - create observers" );
         
         // create shutdown observer
         if(iMDSShutdownObserver)
@@ -119,6 +128,7 @@
             }
         
         TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - connect to MDS" );
+        OstTrace0( TRACE_FATAL, DUP2_CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - connect to MDS" );
         
         if(iMdESession)
             {
@@ -134,6 +144,7 @@
         iSessionError = EFalse;
       
         TN_DEBUG1( "CThumbAGImageObserver::InitializeL() - end" );
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGIMAGEOBSERVER_INITIALIZEL, "CThumbAGImageObserver::InitializeL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,6 +154,7 @@
 CThumbAGImageObserver::~CThumbAGImageObserver()
     {
     TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_CTHUMBAGIMAGEOBSERVER, "CThumbAGImageObserver::~CThumbAGImageObserver - begin" );
     
     iShutdown = ETrue;    
     
@@ -170,6 +182,7 @@
         }
     
     TN_DEBUG1( "CThumbAGImageObserver::~CThumbAGImageObserver() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_CTHUMBAGIMAGEOBSERVER, "CThumbAGImageObserver::~CThumbAGImageObserver - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -179,6 +192,7 @@
 void CThumbAGImageObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError )
     {
     TN_DEBUG1( "CThumbAGImageObserver::HandleSessionOpened");
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened" );
     
     if (aError == KErrNone)
         {
@@ -186,11 +200,13 @@
         if (err != KErrNone)
             {
             TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened, AddObserversL error == %d", err );
+            OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened, AddObserversL error;err=%d", err );
             }
         }
     else
         {
         TN_DEBUG2( "CThumbAGImageObserver::HandleSessionOpened error == %d", aError );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGIMAGEOBSERVER_HANDLESESSIONOPENED, "CThumbAGImageObserver::HandleSessionOpened;aError=%d", aError );
         }
     }
 
@@ -201,6 +217,7 @@
 void CThumbAGImageObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbAGImageObserver::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_HANDLESESSIONERROR, "CThumbAGImageObserver::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iSessionError)
         {
         iSessionError = ETrue;
@@ -213,6 +230,7 @@
                                    TCallBack(ReconnectCallBack, this));
                 
                 TN_DEBUG1( "CThumbAGImageObserver::HandleSessionError() - reconnect timer started" );
+                OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_HANDLESESSIONERROR, "CThumbAGImageObserver::HandleSessionError - reconnect timer started" );
                 }
             }
 
@@ -228,6 +246,7 @@
                                                const RArray<TItemId>& aObjectIdArray )
     {
     TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - begin" );
 
     // no processor or shutting down
     if (iShutdown || !iProcessor)
@@ -239,11 +258,13 @@
     if (aType == ENotifyAdd)
         {
         TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iAddCounter = aObjectIdArray.Count();
         }
     else if (aType == ENotifyModify)
         {
         TN_DEBUG2( "CThumbAGImageObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_FATAL, DUP2_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iModCounter = aObjectIdArray.Count();
         }
 #endif
@@ -251,6 +272,7 @@
     if ( (aType == ENotifyAdd || aType == ENotifyModify) && aObjectIdArray.Count() > 0 )
         {
         TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - AddToQueueL" );
+		OstTrace0( TRACE_FATAL, DUP3_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - AddToQueueL" );
 		
         // Add event to processing queue by type and enable force run        
         RPointerArray<HBufC> dummyArray;
@@ -258,21 +280,25 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - error adding to queue" );
+            OstTrace0( TRACE_FATAL, DUP4_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - error adding to queue" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - bad notification" );
+        OstTrace0( TRACE_FATAL, DUP5_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - bad notification" );
         }
     
 #ifdef _DEBUG
     TN_DEBUG3( "CThumbAGImageObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter );
+    OstTraceExt2( TRACE_FATAL, DUP6_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HIN-COUNTERS---------- Add, Modify;iAddCounter=%u;iModCounter=%u", iAddCounter, iModCounter );
     iModCounter = 0;
     iAddCounter = 0;
     
 #endif
 
     TN_DEBUG1( "CThumbAGImageObserver::HandleObjectNotification() - end" );
+    OstTrace0( TRACE_FATAL, DUP7_CTHUMBAGIMAGEOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGImageObserver::HandleObjectNotification - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -282,6 +308,7 @@
 void CThumbAGImageObserver::AddObserversL()
     {
     TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - begin" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_ADDOBSERVERSL, "CThumbAGImageObserver::AddObserversL - begin" );
     
     CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL();
     CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject );
@@ -313,6 +340,7 @@
     CleanupStack::Pop( 6, addCondition );
 
     TN_DEBUG1( "CThumbAGImageObserver::AddObserversL() - end" );
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_ADDOBSERVERSL, "CThumbAGImageObserver::AddObserversL - end" );
     }
 
 
@@ -323,10 +351,12 @@
 void CThumbAGImageObserver::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification()" );
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGImageObserver::ShutdownNotification" );
     
     if (!iShutdown)
         {
         TN_DEBUG1( "CThumbAGImageObserver::ShutdownNotification() shutdown" );
+        OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGImageObserver::ShutdownNotification - shutdown" );
         iShutdown = ETrue;
         }
     }
@@ -338,6 +368,7 @@
 TInt CThumbAGImageObserver::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - reinitialize");
+    OstTrace0( TRACE_FATAL, CTHUMBAGIMAGEOBSERVER_RECONNECTCALLBACK, "CThumbAGImageObserver::ReconnectCallBack - reinitialize" );
     
     CThumbAGImageObserver* self = static_cast<CThumbAGImageObserver*>( aAny );
     
@@ -347,6 +378,7 @@
     TRAP_IGNORE( self->InitializeL() );
     
     TN_DEBUG1( "CThumbAGImageObserver::ReconnectCallBack() - done");
+    OstTrace0( TRACE_FATAL, DUP1_CTHUMBAGIMAGEOBSERVER_RECONNECTCALLBACK, "CThumbAGImageObserver::ReconnectCallBack - done" );
     
     return KErrNone;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -30,6 +30,10 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagprocessorTraces.h"
+#endif
 
 // ---------------------------------------------------------------------------
 // CThumbAGProcessor::NewL()
@@ -38,6 +42,7 @@
 CThumbAGProcessor* CThumbAGProcessor::NewL()
     {
     TN_DEBUG1( "CThumbAGProcessor::NewL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_NEWL, "CThumbAGProcessor::NewL - begin" );
     
     CThumbAGProcessor* self = new( ELeave )CThumbAGProcessor();
     CleanupStack::PushL( self );
@@ -54,6 +59,7 @@
         iPHHarvestingItemsLeftTemp(0)
     {
     TN_DEBUG1( "CThumbAGProcessor::CThumbAGProcessor() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_CTHUMBAGPROCESSOR, "CThumbAGProcessor::CThumbAGProcessor- begin" );
     
     CActiveScheduler::Add( this );
     }
@@ -65,6 +71,7 @@
 void CThumbAGProcessor::ConstructL()
     {
     TN_DEBUG1( "CThumbAGProcessor::ConstructL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_CONSTRUCTL, "CThumbAGProcessor::ConstructL - begin" );
     
     iShutdown = EFalse;
     
@@ -106,6 +113,7 @@
     iForegroundGenerationObserver = CTMRPropertyObserver::NewL( *this, KTAGDPSNotification, KForceBackgroundGeneration, ETrue );  
     
     TN_DEBUG1( "CThumbAGProcessor::ConstructL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_CONSTRUCTL, "CThumbAGProcessor::ConstructL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -115,6 +123,7 @@
 CThumbAGProcessor::~CThumbAGProcessor()
     {
     TN_DEBUG1( "CThumbAGProcessor::~CThumbAGProcessor() - begin" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_CTHUMBAGPROCESSOR, "CThumbAGProcessor::~CThumbAGProcessor - begin" );
     
     Shutdown();
     
@@ -206,6 +215,7 @@
     iQueryQueue.Close();
     
     TN_DEBUG1( "CThumbAGProcessor::~CThumbAGProcessor() - end" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_CTHUMBAGPROCESSOR, "CThumbAGProcessor::~CThumbAGProcessor - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -215,6 +225,7 @@
 void CThumbAGProcessor::Shutdown()
     {
     TN_DEBUG1( "CThumbAGProcessor::Shutdown()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_SHUTDOWN, "CThumbAGProcessor::Shutdown" );
     iShutdown = ETrue;
     UpdatePSValues(EFalse, EFalse);
     }
@@ -239,6 +250,7 @@
         if(&aQuery == iQueryPlaceholders)
             {
             TN_DEBUG2( "CThumbAGProcessor::HandleQueryNewResults - iQueryPlaceholders, %d new", aNewItemCount);
+            OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_HANDLEQUERYNEWRESULTS, "CThumbAGProcessor::HandleQueryNewResults - iQueryPlaceholders;aNewItemCount=%d", aNewItemCount );
             
             for(TInt i = aFirstNewItemIndex; i < iQueryPlaceholders->Count(); i++)
                 {    
@@ -252,6 +264,7 @@
                 if(!object->Placeholder())
                     {
                     TN_DEBUG2( "CThumbAGProcessor::HandleQueryNewResults %d not placeholder", object->Id());
+                    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_HANDLEQUERYNEWRESULTS, "CThumbAGProcessor::HandleQueryNewResults - not placeholder;object->Id()=%u", object->Id() );
                     continue;
                     }
                
@@ -268,6 +281,7 @@
         else if(&aQuery == iQueryAllItems)
             {
             TN_DEBUG2( "CThumbAGProcessor::HandleQueryNewResults - QueryAllItems, %d new", aNewItemCount);
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_HANDLEQUERYNEWRESULTS, "CThumbAGProcessor::HandleQueryNewResults - QueryAllItems;aNewItemCount=%d", aNewItemCount );
             
             for(TInt i = aFirstNewItemIndex; i < iQueryAllItems->Count(); i++)
                 {    
@@ -294,6 +308,7 @@
     else
         {
         TN_DEBUG1( "CThumbAGProcessor::HandleQueryNewResults - error, no new items");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_HANDLEQUERYNEWRESULTS, "CThumbAGProcessor::HandleQueryNewResults - error, no new items" );
         }
     }
 
@@ -304,6 +319,7 @@
 void CThumbAGProcessor::HandleQueryCompleted( CMdEQuery& aQuery, const TInt aError )
     {
     TN_DEBUG3( "CThumbAGProcessor::HandleQueryCompleted, aError == %d Count== %d", aError, aQuery.Count());
+    OstTraceExt2( TRACE_NORMAL, CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted;aError=%d;aQuery.Count()=%d", aError, aQuery.Count() );
     
     if(iShutdown)
         {
@@ -313,6 +329,7 @@
     if(&aQuery == iQueryPlaceholders)
         {
         TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted - iQueryPlaceholders completed");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - iQueryPlaceholders completed" );
         
         //free query
         delete iQueryPlaceholders;
@@ -327,9 +344,11 @@
     else if(&aQuery == iQueryAllItems)
         {
         TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted - QueryAllItems completed");
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - QueryAllItems completed" );
 
 #ifdef _DEBUG
 TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted IN-COUNTERS---------- Amount: %d, Add",iQueryAllItems->Count());
+OstTrace1( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted IN-COUNTERS---------- Amount;iQueryAllItems->Count()=%d", iQueryAllItems->Count() );
 #endif
        
         //free query
@@ -339,6 +358,7 @@
     else if(&aQuery == iQuery ) 
         {
         TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted - Query completed");
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - Query completed" );
         
         if(iQueryActive)
             {
@@ -354,6 +374,7 @@
             if(iProcessingCount != iQueryQueue.Count() )
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted() some result items missing");
+                OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - some result items missing" );
                 
                 RArray<TItemId> queryQueueDelta;
                 
@@ -375,6 +396,7 @@
                          if(!found)
                              {
                              TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() %d missing from query results", iQueryQueue[queryItem] );
+                             OstTrace1( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted;iQueryQueue[queryItem]=%d", iQueryQueue[queryItem] );
                              
                              // ignore if fails
                              queryQueueDelta.InsertInOrder(iQueryQueue[queryItem], CompareId);
@@ -382,6 +404,7 @@
                          }
                      
                      TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() missing items found %d", queryQueueDelta.Count()); 
+                     OstTrace1( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - missing items found;queryQueueDelta.Count()=%d", queryQueueDelta.Count() );
                      //cleanup from previous queue it item is not found from MDS
                      while(queryQueueDelta.Count())
                          {
@@ -392,6 +415,7 @@
                          if(itemIndex >= 0)
                              {
                              TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() remove %d from iQueryQueue", queryQueueDelta[0]);
+                             OstTrace1( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - remove from iQueryQueue;queryQueueDelta[0]=%d", queryQueueDelta[0] );
                              iQueryQueue.Remove( itemIndex );
                              
                              //remove from procesing queue
@@ -403,12 +427,14 @@
                                  if( iUnknown )
                                      {
                                      TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() mark %d as EGenerationItemTypeNotFound in iGenerationQueue", queryQueueDelta[0]);
+                                     OstTrace1( TRACE_NORMAL, DUP9_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - mark as EGenerationItemTypeNotFound in iGenerationQueue;queryQueueDelta[0]=%d", queryQueueDelta[0] );
                                      //mark to be removed, cleanup is done below
                                      iGenerationQueue[itemIndex].iItemType = EGenerationItemTypeNotFound;
                                      }
                                  else
                                      {
                                      TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() remove %d from iGenerationQueue", queryQueueDelta[0]);
+                                     OstTrace1( TRACE_NORMAL, DUP10_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - remove from iGenerationQueue;queryQueueDelta[0]=%d", queryQueueDelta[0] );
                                      iGenerationQueue.Remove( itemIndex );
                                      }
                                  }
@@ -440,6 +466,7 @@
                             if(iGenerationQueue[itemIndex].iItemType == EGenerationItemTypeNotFound)
                                 {
                                 TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() remove EGenerationItemTypeNotFound %d item from iGenerationQueue", item.iItemId);
+                                OstTrace1( TRACE_NORMAL, DUP11_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - remove EGenerationItemTypeNotFound item from iGenerationQueue;item.iItemId=%u", item.iItemId );
                                 iGenerationQueue.Remove(itemIndex);
                                 continue;
                                 }
@@ -449,6 +476,7 @@
                                 if(item.iItemType == EGenerationItemTypeUnknown )
                                   {
                                   TN_DEBUG2( "CThumbAGProcessor::HandleQueryCompleted() remove unknown item %d", item.iItemId);
+                                  OstTrace1( TRACE_NORMAL, DUP12_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - remove unknown item;item.iItemId=%u", item.iItemId );
                                   iGenerationQueue.Remove(itemIndex);
                                   continue;
                                   }
@@ -476,11 +504,13 @@
             //Delete and cancel query, do not return items back to original queue
             DeleteAndCancelQuery( EFalse );
             TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted() Query FAILED!"); 
+            OstTrace0( TRACE_NORMAL, DUP13_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - Query FAILED!" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted() - NO QUERY ACTIVE"); 
+        OstTrace0( TRACE_NORMAL, DUP14_CTHUMBAGPROCESSOR_HANDLEQUERYCOMPLETED, "CThumbAGProcessor::HandleQueryCompleted - NO QUERY ACTIVE" );
         __ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbAGProcessor::HandleQueryCompleted()"), -1));
         }
     
@@ -495,6 +525,7 @@
                                                TThumbnailRequestId /*aId*/)
     {
     TN_DEBUG1( "CThumbAGProcessor::ThumbnailPreviewReady()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_THUMBNAILPREVIEWREADY, "CThumbAGProcessor::ThumbnailPreviewReady" );
     // No implementation required
     }
 
@@ -506,6 +537,7 @@
                                         TThumbnailRequestId /*aId*/ )
     {
     TN_DEBUG2( "CThumbAGProcessor::ThumbnailReady() aError == %d", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_THUMBNAILREADY, "CThumbAGProcessor::ThumbnailReady;aError=%d", aError );
     
     iActiveCount--;
     
@@ -513,6 +545,7 @@
     if( aError == KErrServerTerminated )
         {
         TN_DEBUG1( "CThumbAGProcessor::ThumbnailReady() - **** THUMBNAIL SERVER DIED ****" );
+		OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_THUMBNAILREADY, "CThumbAGProcessor::ThumbnailReady - **** THUMBNAIL SERVER DIED ****" );
 		
         iSessionDied = ETrue;
         
@@ -524,13 +557,14 @@
         //reset PS idle so that RunL() can startup reopen TNM session and proceed
         TInt ret = RProperty::Set(KServerIdle, KIdle, ETrue);
         TN_DEBUG2( "CThumbAGProcessor::ThumbnailReady() set Idle ret = %d", ret );
-        
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_THUMBNAILREADY, "CThumbAGProcessor::ThumbnailReady - set Idle ret;ret=%d", ret );
         return;
         }
     
     ActivateAO();
 	
     TN_DEBUG1( "CThumbAGProcessor::ThumbnailReady() - end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_THUMBNAILREADY, "CThumbAGProcessor::ThumbnailReady - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -543,6 +577,7 @@
     if (aRequestType == ERequestDeleteThumbnails)
         {
         TN_DEBUG1( "CThumbAGProcessor::ThumbnailRequestReady() - delete" );
+        OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_THUMBNAILREQUESTREADY, "CThumbAGProcessor::ThumbnailRequestReady - delete" );
     
         iActiveCount--;
         
@@ -557,6 +592,7 @@
 void CThumbAGProcessor::SetMdESessionL( CMdESession* aMdESession )
     {
     TN_DEBUG1( "CThumbAGProcessor::SetMdESession() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_SETMDESESSIONL, "CThumbAGProcessor::SetMdESessionL - begin" );
     
     iMdESession = aMdESession;
     
@@ -566,6 +602,7 @@
     if (err != KErrNone)
         {
         TN_DEBUG2( "CThumbAGProcessor::SetMdESession() GetDefaultNamespaceDefL() err = %d", err );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_SETMDESESSIONL, "CThumbAGProcessor::SetMdESessionL;err=%d", err );
         __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::SetMdESession() !iDefNamespace "), KErrBadHandle));
         }
     else
@@ -595,7 +632,7 @@
                                     TBool /*aPresent*/ )
     {
     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - begin" );
-    
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - begin" );
 
     // update queues
     if (aType == ENotifyAdd)
@@ -621,10 +658,12 @@
     else if (aType == ENotifyModify)
         {
         TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - ENotifyModify" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - ENotifyModify" );
         
         if(iPHHarvesting)
             {        
             TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - PH  harvesting active, treat like add" );
+            OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - PH  harvesting active, treat like add" );
             for (int i=0; i<aIDArray.Count(); i++)
                 {
                 TThumbnailGenerationItem item;
@@ -636,12 +675,13 @@
                 if (itemIndex >= 0)
                     {
                     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - set as non-placeholder");
+                    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - set as non-placeholder" );
                     iGenerationQueue[itemIndex].iPlaceholder = EFalse;
                     }
                 else
                     {
                     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append");
-
+                    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - append" );
                      item.iPlaceholder = EFalse;
                      SetGenerationItemAction( item, aItemType );
                      AppendProcessingQueue( item );
@@ -651,6 +691,7 @@
         else
             {
             TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - PH  harvesting finished, check is real modify!" );
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - PH  harvesting finished, check is real modify!" );
             
             TInt itemIndex(KErrNotFound);
             
@@ -667,11 +708,13 @@
                     if( iGenerationQueue[itemIndex].iPlaceholder )
                         {
                         TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - placeholder modify");
+                        OstTrace0( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - placeholder modify" );
                         iGenerationQueue[itemIndex].iPlaceholder = EFalse;
                         }
                     else
                         {
                         TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - real modify");
+                        OstTrace0( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - real modify" );
                         iGenerationQueue[itemIndex].iItemAction = EGenerationItemActionModify;
                         SetForceRun( ETrue );
                         }
@@ -679,6 +722,7 @@
                 else
                     {
                     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append");
+                    OstTrace0( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - append" );
                     SetGenerationItemAction( item, aItemType);
                     item.iPlaceholder = EFalse;
                     AppendProcessingQueue( item );
@@ -689,6 +733,7 @@
         else if (aType == ENotifyRemove && aItemType == EGenerationItemTypeAny)
             {
             TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - ENotifyRemove, remove IDs from all queues");
+            OstTrace0( TRACE_NORMAL, DUP9_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - ENotifyRemove, remove IDs from all queues" );
             
             for (int i=0; i<aIDArray.Count(); i++)
                 {
@@ -717,6 +762,7 @@
                 else
                     {
                     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append");
+                    OstTrace0( TRACE_NORMAL, DUP10_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - append" );
                     item.iItemAction = EGenerationItemActionDelete;
                     delete item.iUri;
                     item.iUri = NULL;
@@ -734,12 +780,14 @@
                     }
                 
                 TN_DEBUG2( "CThumbAGProcessor::AddToQueueL() - %S", aObjectUriArray[i]); 
+                OstTraceExt1( TRACE_NORMAL, DUP11_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL;aObjectUriArray[i]=%S", *aObjectUriArray[i] );
                 }
             }
 #ifdef _DEBUG
         else
             {
 	        TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() -  should not come here" );
+	        OstTrace0( TRACE_NORMAL, DUP12_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL -  should not come here" );
 	        __ASSERT_DEBUG((EFalse), User::Panic(_L("CThumbAGProcessor::AddToQueueL()"), KErrArgument));
 	        User::Leave( KErrArgument );
             }
@@ -748,6 +796,7 @@
     ActivateAO(); 
     
     TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP13_CTHUMBAGPROCESSOR_ADDTOQUEUEL, "CThumbAGProcessor::AddToQueueL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -757,6 +806,7 @@
 void CThumbAGProcessor::CreateThumbnailsL( const CMdEObject* aObject )
     {
     TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - begin" );
     
     __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::CreateThumbnailsL() !iTMSession "), KErrBadHandle));
     __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::CreateThumbnailsL() !iDefNamespace "), KErrBadHandle));
@@ -795,9 +845,11 @@
             {
             //generate both if needed
             TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() EOptimizeForQuality ");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - EOptimizeForQuality" );
             iTMSession->SetQualityPreferenceL( CThumbnailManager::EOptimizeForQuality );
             
             TN_DEBUG2( "CThumbAGProcessor::CreateThumbnailsL() - 2nd round add remove from queue", aObject->Id() );
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - 2nd round add remove from queue;aObject->Id()=%u", aObject->Id() );
                         
             TThumbnailGenerationItem item;
             item.iItemId = aObject->Id();
@@ -816,10 +868,12 @@
             {
             //1st round
             TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() EOptimizeForQualityWithPreview");
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - EOptimizeForQualityWithPreview" );
             iTMSession->SetQualityPreferenceL( CThumbnailManager::EOptimizeForQualityWithPreview );
             
             // add item to 2nd round queue 
             TN_DEBUG2( "CThumbAGProcessor::CreateThumbnailsL() - 1st round add/modify, append to 2nd round queue", aObject->Id() );
+            OstTrace1( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - 1st round add/modify, append to 2nd round queue;aObject->Id()=%u", aObject->Id() );
             
             TThumbnailGenerationItem item;
             item.iItemId = aObject->Id();
@@ -850,6 +904,7 @@
         if ( err != KErrNone )
             {
             TN_DEBUG2( "CThumbAGProcessor::CreateThumbnailsL, iTMSession error == %d", err );
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL" );
             
             iSessionDied = ETrue;
             ActivateAO();
@@ -865,6 +920,7 @@
         }
         
     TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_CREATETHUMBNAILSL, "CThumbAGProcessor::CreateThumbnailsL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -874,6 +930,7 @@
 void CThumbAGProcessor::QueryL(/*RArray<TItemId>& aIDArray*/TThumbnailGenerationItemAction aAction  )
     {
     TN_DEBUG1( "CThumbAGProcessor::QueryL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL - begin" );
     
     __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryL() !iMdeSession "), KErrBadHandle));
     __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::QueryL() !iDefNamespace "), KErrBadHandle));
@@ -900,7 +957,7 @@
     TInt maxCount = iGenerationQueue.Count();
         
     TN_DEBUG3( "CThumbAGProcessor::QueryL() - fill begin iGenerationQueue == %d, iQueryQueue == %d", iGenerationQueue.Count(), iQueryQueue.Count() );
-    
+    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL -  - fill begin iGenerationQueue, iQueryQueue;iGenerationQueue.Count()=%d;iQueryQueue.Count()=%d", iGenerationQueue.Count(), iQueryQueue.Count() );
     
     TInt itemCount(0);
     for(TInt i=0; itemCount < KMaxQueryItems && i < maxCount; i++)
@@ -941,6 +998,7 @@
         if( itemIndex >= 0 )
             {
             TN_DEBUG2( "CThumbAGProcessor::QueryL() - fill %d", iGenerationQueue[itemIndex].iItemId );        
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL - fill;iGenerationQueue[itemIndex].iItemId=%u", iGenerationQueue[itemIndex].iItemId );
             iQueryQueue.InsertInOrder(iGenerationQueue[itemIndex].iItemId, CompareId);
             itemCount++;
             }
@@ -949,12 +1007,14 @@
     if(!itemCount)
         {
         TN_DEBUG1( "CThumbAGProcessor::QueryL() - empty query, cancel?!");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL - empty query, cancel?!" );
         iQueryActive = EFalse;
         __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryL() empty! "), KErrNotFound));
         return;
         }
     
     TN_DEBUG3( "CThumbAGProcessor::QueryL() - fill end iGenerationQueue == %d, iQueryQueue == %d", iGenerationQueue.Count(), iQueryQueue.Count() );
+    OstTraceExt2( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL;iGenerationQueue.Count()=%d;iQueryQueue.Count()=%d", iGenerationQueue.Count(), iQueryQueue.Count() );
     
     CMdEObjectDef& objDef = iDefNamespace->GetObjectDefL( MdeConstants::Object::KBaseObject );
     iQuery = iMdESession->NewObjectQueryL( *iDefNamespace, objDef, this );
@@ -995,8 +1055,13 @@
     
 	    iQuery->FindL();
 		}
+	else
+	    {
+        iQueryActive = EFalse;
+	    }
     
     TN_DEBUG1( "CThumbAGProcessor::QueryL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_QUERYL, "CThumbAGProcessor::QueryL - end" );
     }
 
 
@@ -1008,6 +1073,7 @@
 void CThumbAGProcessor::QueryPlaceholdersL(TBool aPresent)
     {
     TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_QUERYPLACEHOLDERSL, "CThumbAGProcessor::QueryPlaceholdersL" );
     
     __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iMdeSession "), KErrBadHandle));
     __ASSERT_DEBUG((iDefNamespace), User::Panic(_L("CThumbAGProcessor::QueryPlaceholdersL() !iDefNamespace "), KErrBadHandle));
@@ -1022,6 +1088,7 @@
         if( !iQueryPlaceholders->IsComplete() )
             {
             TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL active- skip" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_QUERYPLACEHOLDERSL, "CThumbAGProcessor::QueryPlaceholdersL - skip" );
             return;
             }
         
@@ -1032,6 +1099,7 @@
         }
    
     TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL - start" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_QUERYPLACEHOLDERSL, "CThumbAGProcessor::QueryPlaceholdersL - start" );
 
     CMdEObjectDef& imageObjDef = iDefNamespace->GetObjectDefL( MdeConstants::Image::KImageObject );
     CMdEObjectDef& videoObjDef = iDefNamespace->GetObjectDefL( MdeConstants::Video::KVideoObject );
@@ -1062,12 +1130,13 @@
         audioPHObjectCondition.SetPlaceholderOnly( ETrue );
         audioPHObjectCondition.SetNotPresent( aPresent );
         
-        iQueryPlaceholders->FindL(KMaxTInt, KMaxQueryBatchSize);   
+        iQueryPlaceholders->FindL(KMdEQueryDefaultMaxCount, KMaxQueryBatchSize);   
        
         CleanupStack::Pop(3, &imagePHObjectCondition );
         }
 	
     TN_DEBUG1( "CThumbAGProcessor::QueryPlaceholdersL - end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_QUERYPLACEHOLDERSL, "CThumbAGProcessor::QueryPlaceholdersL - end" );
     }
 
 
@@ -1078,16 +1147,19 @@
 void CThumbAGProcessor::RunL()
     {
     TN_DEBUG1( "CThumbAGProcessor::RunL() - begin" );
+	OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - begin" );
 	
 	if(iShutdown)
 		{
         TN_DEBUG1( "CThumbAGProcessor::RunL() - shutdown" );
+		OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - shutdown" );
 		return;
 		}
     
     if (iSessionDied)
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - iSessionDied" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - iSessionDied" );
         delete iTMSession;
         iTMSession = NULL;
         }
@@ -1095,6 +1167,7 @@
     if (iInit)
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - Do Initialisation 1" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - Do Initialisation 1" );
         
         iInit = EFalse;
         iInit2 = ETrue;
@@ -1107,6 +1180,7 @@
 		//query all items after PH query
         iDoQueryAllItems = ETrue;
         TN_DEBUG1( "CThumbAGProcessor::RunL() - Initialisation 1 done" );
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - Initialisation 1 done" );
         ActivateAO();
         return;
         }
@@ -1114,26 +1188,32 @@
     if(iInit2)
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - Do Initialisation 2" );
+		OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - Do Initialisation 2" );
 		
         iInit2 = EFalse;
         TInt err(KErrNone);
         
 #ifdef  MDS_MODIFY_OBSERVER        
         TN_DEBUG1( "CThumbAGProcessor::RunL() do iHarvesterClient connect");
+        OstTrace0( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - do iHarvesterClient connect" );
         err = iHarvesterClient.Connect();
         TN_DEBUG2( "CThumbAGProcessor::RunL() iHarvesterClient connect err = %d", err);
+        OstTrace1( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - iHarvesterClient connect;err=%d", err );
         
         __ASSERT_DEBUG((err == KErrNone), User::Panic(_L("CThumbAGProcessor::RunL(), !iHarvesterClient "), err));
         
         if(  err == KErrNone )
             {
             TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer");
+            OstTrace0( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - add iHarvesterClient observer" );
             err = iHarvesterClient.AddHarvesterEventObserver( *this, EHEObserverTypeOverall | EHEObserverTypeMMC | EHEObserverTypePlaceholder, 20 );
             TN_DEBUG2( "CThumbAGProcessor::RunL() iHarvesterClient observer err = %d", err);
+            OstTrace1( TRACE_NORMAL, DUP9_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - iHarvesterClient observer;err=%d", err );
             
             if( !err )
                 {
                 TN_DEBUG1( "CThumbAGProcessor::RunL() add iHarvesterClient observer failed");
+                OstTrace0( TRACE_NORMAL, DUP10_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - add iHarvesterClient observer failed" );
                 // if we fail observer harvester, fake it
                 iHarvesterActivated = ETrue;
                 }
@@ -1142,8 +1222,10 @@
 #endif
  
         TN_DEBUG1( "CThumbAGProcessor::RunL() MMPXCollectionUtility");
+        OstTrace0( TRACE_NORMAL, DUP11_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - MMPXCollectionUtility");
         TRAP( err, iCollectionUtility = MMPXCollectionUtility::NewL( this, KMcModeIsolated ));
         TN_DEBUG2( "CThumbAGProcessor::RunL() create MMPXCollectionUtility err = %d", err);
+        OstTrace1( TRACE_NORMAL, DUP12_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - create MMPXCollectionUtility err;err=%d", err );
         __ASSERT_DEBUG((iCollectionUtility), User::Panic(_L("CThumbAGProcessor::RunL(), !iCollectionUtility "), err));
         
         __ASSERT_DEBUG((iActivityManager), User::Panic(_L("CThumbAGProcessor::RunL(), !iActivityManager "), KErrBadHandle));
@@ -1153,6 +1235,7 @@
             }
         
         TN_DEBUG1( "CThumbAGProcessor::RunL() - Initialisation 2 done" );
+        OstTrace0( TRACE_NORMAL, DUP13_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - Initialisation 2 done" );
         return;
         }
     
@@ -1160,6 +1243,7 @@
     if (!iTMSession)
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - open TNM session");
+        OstTrace0( TRACE_NORMAL, DUP14_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL" );
         TRAPD( err, iTMSession = CThumbnailManager::NewL( *this ) );
 		
         if (err != KErrNone)
@@ -1167,6 +1251,7 @@
             iTMSession = NULL;
             ActivateAO();
             TN_DEBUG2( "CThumbAGProcessor::RunL() - Session restart failed, error == %d", err );
+            OstTrace1( TRACE_NORMAL, DUP15_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - Session restart failed, error;err=%d", err );
             }        
         else 
             {
@@ -1179,6 +1264,7 @@
     if(iActiveCount >= KMaxDaemonRequests)
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - waiting for previous to complete, abort..." );
+        OstTrace0( TRACE_NORMAL, DUP16_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - waiting for previous to complete, abort..." );
         return;
         }
     
@@ -1187,17 +1273,20 @@
 	if( iForegroundRun )
 		{
       	TN_DEBUG1( "void CThumbAGProcessor::RunL() KForceBackgroundGeneration enabled");
+	  	OstTrace0( TRACE_NORMAL, DUP17_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - KForceBackgroundGeneration enabled" );
 	  	}
 	
     if( iForceRun )
         {
         TN_DEBUG1( "CThumbAGProcessor::RunL() - *** FORCED RUN ***");
+        OstTrace0( TRACE_NORMAL, DUP18_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - *** FORCED RUN ***" );
         }
 #endif
 	
   	if( (iForceRun || iForegroundRun ) && !iMountTimer->IsActive() )
       	{
         TN_DEBUG1( "void CThumbAGProcessor::RunL() skip idle detection!");
+      	OstTrace0( TRACE_NORMAL, DUP19_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - skip idle detection!" );
       	CancelTimeout();
      	}
   	else
@@ -1205,6 +1294,7 @@
         if( !iIdle || iHarvesting || iMPXHarvesting || iPeriodicTimer->IsActive() )
             {
             TN_DEBUG1( "void CThumbAGProcessor::RunL() device not idle");
+            OstTrace0( TRACE_NORMAL, DUP20_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - device not idle" );
             return;
             }
         else
@@ -1217,10 +1307,12 @@
                 {
             	//start inactivity timer and retry on after callback
             	TN_DEBUG1( "void CThumbAGProcessor::RunL() server not idle");
+                OstTrace0( TRACE_NORMAL, DUP21_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - server not idle" );
                 StartTimeout();
                 return;
                 }
             TN_DEBUG1( "void CThumbAGProcessor::RunL() device and server idle, process");
+            OstTrace0( TRACE_NORMAL, DUP22_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - device and server idle, process" );
             }
 	    }
     
@@ -1234,6 +1326,7 @@
         if(((iForceRun && iModify ) || (!iForceRun && !iModify )) && !iUnknownItemCount && !iMountTimer->IsActive())
             {
             TN_DEBUG1( "CThumbAGProcessor::RunL() - iQueryReady START" );
+            OstTrace0( TRACE_NORMAL, DUP23_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - iQueryReady START" );
             
             const CMdEObject* object = &iQuery->Result( iProcessingCount-1 );
             iProcessingCount--;
@@ -1251,6 +1344,7 @@
             
                 TRAP( err, CreateThumbnailsL( object ) );
                 TN_DEBUG2( "CThumbAGProcessor::RunL(), CreateThumbnailsL error == %d", err );
+                OstTrace1( TRACE_NORMAL, DUP24_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - CreateThumbnailsL error;err=%d", err );
                 __ASSERT_DEBUG((err==KErrNone), User::Panic(_L("CThumbAGProcessor::RunL(), CreateThumbnailsL() "), err));
                 }
             }
@@ -1259,6 +1353,7 @@
             {
 			//cancel query
             TN_DEBUG1( "CThumbAGProcessor::RunL() - cancel processing query" );
+            OstTrace0( TRACE_NORMAL, DUP25_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - cancel processing query" );
             DeleteAndCancelQuery( ETrue );
 	        ActivateAO();
             return;  
@@ -1268,6 +1363,7 @@
         if( iProcessingCount <= 0 )
             {
             TN_DEBUG1( "CThumbAGProcessor::RunL() - iQueryReady FINISH" );
+            OstTrace0( TRACE_NORMAL, DUP26_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - iQueryReady FINISH" );
             iQueryReady = EFalse;
             iQueryActive = EFalse;
             }
@@ -1287,11 +1383,13 @@
         else  
             {
             TN_DEBUG1( "CThumbAGProcessor::RunL() - waiting for query to complete, abort..." );
+            OstTrace0( TRACE_NORMAL, DUP27_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - waiting for query to complete, abort..." );
             }    
         }
     else if ( iUnknownItemCount > 0 )
         {
         TN_DEBUG1( "void CThumbAGProcessor::RunL() unknown items in queue");
+        OstTrace0( TRACE_NORMAL, DUP28_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - unknown items in queue" );
         
         i2ndRound = EFalse;
         iModify = EFalse;
@@ -1303,6 +1401,7 @@
     else if ( iDeleteItemCount > 0 )
        {
        TN_DEBUG1( "void CThumbAGProcessor::RunL() delete thumbnails");
+       OstTrace0( TRACE_NORMAL, DUP29_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - delete thumbnails" );
        // delete thumbs by URI
        __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::RunL() !iTMSession "), KErrBadHandle));
        if(iTMSession)
@@ -1323,12 +1422,14 @@
                    {
                    //URI is invalid
                    TN_DEBUG1( "void CThumbAGProcessor::RunL() unable to delete URI inbalid");
+                   OstTrace0( TRACE_NORMAL, DUP30_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - unable to delete URI inbalid" );
                    iGenerationQueue.Remove( itemIndex );
                    ActivateAO();
                    return;
                    }
 
                TN_DEBUG2( "void CThumbAGProcessor::RunL() delete %S",  iGenerationQueue[itemIndex].iUri);
+               OstTraceExt1( TRACE_NORMAL, DUP31_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL;iGenerationQueue[itemIndex].iUri=%S", *iGenerationQueue[itemIndex].iUri );
                CThumbnailObjectSource* source = NULL;                
                TRAPD(err,  source = CThumbnailObjectSource::NewL( *iGenerationQueue[itemIndex].iUri, KNullDesC));
                   
@@ -1351,6 +1452,7 @@
     else if ( iModifyItemCount > 0 )
         {
         TN_DEBUG1( "void CThumbAGProcessor::RunL() update thumbnails");
+        OstTrace0( TRACE_NORMAL, DUP32_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - update thumbnails" );
         
         i2ndRound = EFalse;
         
@@ -1363,6 +1465,7 @@
     else if ( iAddItemCount > 0 )
         {
         TN_DEBUG1( "void CThumbAGProcessor::RunL() update 1st round thumbnails");
+        OstTrace0( TRACE_NORMAL, DUP33_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - update 1st round thumbnails" );
         
         i2ndRound = EFalse;
         iUnknown = EFalse;
@@ -1374,6 +1477,7 @@
     else if( i2ndAddItemCount > 0)
         {
         TN_DEBUG1( "void CThumbAGProcessor::RunL() update 2nd round thumbnails");
+            OstTrace0( TRACE_NORMAL, DUP34_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - update 2nd round thumbnails" );
             
         // query for object info
         iQueryActive = ETrue;
@@ -1383,6 +1487,7 @@
         }
         
     TN_DEBUG1( "CThumbAGProcessor::RunL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP35_CTHUMBAGPROCESSOR_RUNL, "CThumbAGProcessor::RunL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -1392,10 +1497,12 @@
 void CThumbAGProcessor::DeleteAndCancelQuery(TBool aRestoreItems)
     {
     TN_DEBUG2( "CThumbAGProcessor::DeleteAndCancelQuery(aRestoreItems = %d) in", aRestoreItems );
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_DELETEANDCANCELQUERY, "CThumbAGProcessor::DeleteAndCancelQuery;aRestoreItems=%d", aRestoreItems );
     
     if(iQuery)
         {
         TN_DEBUG1( "CThumbAGProcessor::DeleteAndCancelQuery() - deleting query" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_DELETEANDCANCELQUERY, "CThumbAGProcessor::DeleteAndCancelQuery - deleting query" );
         iQuery->Cancel();
         delete iQuery;
         iQuery = NULL;
@@ -1425,6 +1532,7 @@
         }
 
     TN_DEBUG1( "CThumbAGProcessor::DeleteAndCancelQuery() out" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_DELETEANDCANCELQUERY, "CThumbAGProcessor::DeleteAndCancelQuery - out" );
     }
 
 // ---------------------------------------------------------------------------
@@ -1442,6 +1550,7 @@
          TInt aItemsLeft )
     {
     TN_DEBUG4( "CThumbAGProcessor::HarvestingUpdated -- start() aHEObserverType = %d, aHarvesterEventState = %d, aItemsLeft = %d", aHEObserverType, aHarvesterEventState, aItemsLeft );
+    OstTraceExt3( TRACE_NORMAL, CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated;aHEObserverType=%u;aHarvesterEventState=%u;aItemsLeft=%d", aHEObserverType, aHarvesterEventState, aItemsLeft );
     
 	if(iShutdown)
         {
@@ -1457,14 +1566,17 @@
     if( aHEObserverType == EHEObserverTypePlaceholder)
         {
         TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypePlaceholder");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypePlaceholder" );
         }
     else if( aHEObserverType == EHEObserverTypeOverall)
         {
         TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypeOverall");
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypeOverall" );
         }
     else if( aHEObserverType == EHEObserverTypeMMC)
         {
         TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypeMMC");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- type EHEObserverTypeMMC" );
         }
     #endif
     
@@ -1496,10 +1608,12 @@
             if( iPHHarvesting )
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesterin started");
+                OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesterin starteds" );
                 }
             else
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesting finished");
+                OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS placeholder harvesting finished" );
                 //query present placeholders
                 TRAP_IGNORE(QueryPlaceholdersL( EFalse ));
                 iDoQueryAllItems = EFalse;
@@ -1512,6 +1626,7 @@
           {
           //if items count increasing, restart mount timeout 
             TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- PH count increasing, restart mount timeout");
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- PH count increasing, restart mount timeout" );
             
            if(iMountTimer->IsActive())
               {
@@ -1555,11 +1670,13 @@
             if( iHarvesting )
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS harvesting started");
+                OstTrace0( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS harvesting started" );
                 CancelTimeout();
                 }
             else
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS harvesting finished ");
+                OstTrace0( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS harvesting finished" );
                 // continue processing if needed
                 StartTimeout();
                 
@@ -1598,6 +1715,7 @@
             if( iMMCHarvesting )
                 {
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesterin started");
+                OstTrace0( TRACE_NORMAL, DUP9_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesterin started" );
                 UpdatePSValues(EFalse, ETrue);
                 iMMCHarvestingItemsLeftTemp = 0;
                 }
@@ -1609,6 +1727,7 @@
                     StartTimeout();
                     }
                 TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesting finished ");
+                OstTrace0( TRACE_NORMAL, DUP10_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MDS MMC harvesting finished" );
                 }
             }
         
@@ -1616,6 +1735,7 @@
         if(iMMCHarvesting && aItemsLeft > iMMCHarvestingItemsLeftTemp)
             {
               TN_DEBUG1( "CThumbAGProcessor::HarvestingUpdated -- MMC count increasing, restart mount timeout");
+              OstTrace0( TRACE_NORMAL, DUP11_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated -- MMC count increasing, restart mount timeout" );
               
              if(iMountTimer->IsActive())
                 {
@@ -1629,6 +1749,7 @@
         }
    
     TN_DEBUG4( "CThumbAGProcessor::HarvestingUpdated -- end() iHarvesting == %d, iPHHarvesting == %d iMMCHarvesting == %d ", iHarvesting, iPHHarvesting, iMMCHarvesting);
+    OstTraceExt3( TRACE_NORMAL, DUP12_CTHUMBAGPROCESSOR_HARVESTINGUPDATED, "CThumbAGProcessor::HarvestingUpdated;iHarvesting=%u;iPHHarvesting=%u;iMMCHarvesting=%u", iHarvesting, iPHHarvesting, iMMCHarvesting );
     }
 
 // ---------------------------------------------------------------------------
@@ -1638,6 +1759,7 @@
 void CThumbAGProcessor::StartTimeout()
     {
     TN_DEBUG1( "CThumbAGProcessor::StartTimeout()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_STARTTIMEOUT, "CThumbAGProcessor::StartTimeout" );
     CancelTimeout();
     
     if(!iHarvesting && !iMPXHarvesting && !iPeriodicTimer->IsActive() && !iShutdown)
@@ -1654,6 +1776,7 @@
 void CThumbAGProcessor::CancelTimeout()
     {
     TN_DEBUG1( "CThumbAGProcessor::CancelTimeout()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_CANCELTIMEOUT, "CThumbAGProcessor::CancelTimeout" );
     if(iPeriodicTimer->IsActive())
         {
         iPeriodicTimer->Cancel();
@@ -1671,7 +1794,11 @@
 #endif
     {
     TN_DEBUG2( "CThumbAGrocessor::RunError() %d", aError);
-    
+#ifdef _DEBUG
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_RUNERROR, "CThumbAGProcessor::RunError;aError=%d", aError );
+#else
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_RUNERROR, "CThumbAGProcessor::RunError");
+#endif    
     UpdatePSValues(EFalse, EFalse);
         
     iActiveCount--;
@@ -1693,6 +1820,7 @@
     if(iFormatting)
         {
         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - FORMATTING - DAEMON ON PAUSE");
+        OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_ACTIVATEAO, "CThumbAGProcessor::ActivateAO - FORMATTING - DAEMON ON PAUSE" );
         return;
         }
     
@@ -1700,6 +1828,7 @@
     if ( (iModifyItemCount > 0 || iDeleteItemCount > 0 ||  iUnknownItemCount > 0) && !iMountTimer->IsActive())
         {
         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() -  forced run");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_ACTIVATEAO, "CThumbAGProcessor::ActivateAO - iModifyItemCount > 0 || iUnknownItemCount > 0 || iDeleteItemCount > 0" );
         SetForceRun( ETrue );
         }
     else
@@ -1711,6 +1840,7 @@
     if( !IsActive() && !iShutdown && ((iActiveCount < KMaxDaemonRequests && !iQueryActive) || iForceRun ))
         {
         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - Activated");
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_ACTIVATEAO, "CThumbAGProcessor::ActivateAO - Activated" );
         SetActive();
         TRequestStatus* statusPtr = &iStatus;
         User::RequestComplete( statusPtr, KErrNone );
@@ -1726,6 +1856,7 @@
 TInt CThumbAGProcessor::PeriodicTimerCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGProcessor::PeriodicTimerCallBack()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_PERIODICTIMERCALLBACK, "CThumbAGProcessor::PeriodicTimerCallBack" );
     CThumbAGProcessor* self = static_cast<CThumbAGProcessor*>( aAny );
     
     self->CancelTimeout();
@@ -1755,22 +1886,31 @@
     // get cenrep values
     TInt ret = rep->Get( KAutoCreateImageGrid, imageGrid );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateImageGrid %d", ret);
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateImageGrid;ret=%d", ret );
     ret = rep->Get( KAutoCreateImageList, imageList );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateImageList %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateImageList;ret=%d", ret );
     ret = rep->Get( KAutoCreateImageFullscreen, imageFull );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateImageFullscreen %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL;ret=%d", ret );
     ret = rep->Get( KAutoCreateVideoGrid, videoGrid );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateVideoGrid %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateVideoGrid;ret=%d", ret );
     ret = rep->Get( KAutoCreateVideoList, videoList );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateVideoList %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateVideoList;ret=%d", ret );
     ret = rep->Get( KAutoCreateVideoFullscreen, videoFull );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateVideoFullscreen %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateVideoFullscreen;ret=%d", ret );
     ret = rep->Get( KAutoCreateAudioGrid, audioGrid );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateAudioGrid %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateAudioGrid;ret=%d", ret );
     ret = rep->Get( KAutoCreateAudioList, audioList );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateAudioList %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateAudioList;ret=%d", ret );
     ret = rep->Get( KAutoCreateAudioFullscreen, audioFull );
     TN_DEBUG2( "CThumbAGProcessor::CheckAutoCreateValuesL() KAutoCreateAudioFullscreen %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_CHECKAUTOCREATEVALUESL, "CThumbAGProcessor::CheckAutoCreateValuesL - KAutoCreateAudioFullscreen;ret=%d", ret );
     
     iAutoImage = EFalse;
     iAutoVideo = EFalse;
@@ -1804,6 +1944,11 @@
 #endif
     {
     TN_DEBUG2( "CThumbAGProcessor::RemoveFromQueues() aRemoveFromDelete == %d - begin", aRemoveFromDelete );
+#ifdef _DEBUG
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues - aRemoveFromDelete;aRemoveFromDelete=%d", aRemoveFromDelete );
+#else
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues - aRemoveFromDelete" );
+#endif
     
     TInt itemIndex(KErrNotFound);
     
@@ -1812,6 +1957,7 @@
         TThumbnailGenerationItem item;
         item.iItemId = aIDArray[i];
         TN_DEBUG2( "CThumbAGProcessor::RemoveFromQueues() - %d", aIDArray[i]);
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues;aIDArray[i]=%u", aIDArray[i] );
 
         itemIndex = iGenerationQueue.FindInOrder(item, Compare);                        
         if(itemIndex >= 0)
@@ -1820,6 +1966,7 @@
             iGenerationQueue[itemIndex].iUri = NULL;
             iGenerationQueue.Remove(itemIndex);
             TN_DEBUG1( "CThumbAGProcessor::RemoveFromQueues() - iGenerationQueue" );
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues - iGenerationQueue" );
             }
                 
         itemIndex = iQueryQueue.FindInOrder(aIDArray[i], CompareId);                    
@@ -1827,12 +1974,14 @@
             {
             iQueryQueue.Remove(itemIndex);
             TN_DEBUG1( "CThumbAGProcessor::RemoveFromQueues() - iQueryQueue" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues - iQueryQueue" );
             }
         }
     
     ActivateAO();
     
     TN_DEBUG1( "CThumbAGProcessor::RemoveFromQueues() - end" );
+    OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_REMOVEFROMQUEUES, "CThumbAGProcessor::RemoveFromQueues - end" );
     }
 	
 // ---------------------------------------------------------------------------
@@ -1842,6 +1991,7 @@
 void CThumbAGProcessor::SetForceRun( const TBool aForceRun)
     {
     TN_DEBUG2( "CThumbAGProcessor::SetForceRun(%d) - end", aForceRun ); 
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_SETFORCERUN, "CThumbAGProcessor::SetForceRun - end;aForceRun=%u", aForceRun );
 
     // enable forced run
     iForceRun = aForceRun;
@@ -1854,6 +2004,7 @@
 void CThumbAGProcessor::QueryAllItemsL()
     {
     TN_DEBUG1( "CThumbAGProcessor::QueryAllItemsL" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_QUERYALLITEMSL, "CThumbAGProcessor::QueryAllItemsL" );
     
     __ASSERT_DEBUG((iMdESession), User::Panic(_L("CThumbAGProcessor::QueryAllItemsL() !iMdeSession "), KErrBadHandle));
     
@@ -1867,6 +2018,7 @@
         if( !iQueryAllItems->IsComplete() )
             {
             TN_DEBUG1( "CThumbAGProcessor::QueryAllItemsL active- skip" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_QUERYALLITEMSL, "CThumbAGProcessor::QueryAllItemsL - active- skip" );
             return;
             }
         
@@ -1877,6 +2029,7 @@
         }
     
     TN_DEBUG1( "CThumbAGProcessor::QueryAllItemsL - start" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_QUERYALLITEMSL, "CThumbAGProcessor::QueryAllItemsL -start" );
     
     CMdEObjectDef& imageObjDef = iDefNamespace->GetObjectDefL( MdeConstants::Image::KImageObject );
     CMdEObjectDef& videoObjDef = iDefNamespace->GetObjectDefL( MdeConstants::Video::KVideoObject );
@@ -1899,11 +2052,12 @@
     CMdEObjectCondition& audioObjectCondition = rootCondition.AddObjectConditionL(audioObjDef);
 	CleanupStack::PushL( &audioObjectCondition );
     
-    iQueryAllItems->FindL(KMaxTInt, KMaxQueryBatchSize);  
+    iQueryAllItems->FindL(KMdEQueryDefaultMaxCount, KMaxQueryBatchSize);  
 	
 	CleanupStack::Pop(3, &imageObjectCondition);
     
     TN_DEBUG1( "CThumbAGProcessor::QueryAllItemsL - end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_QUERYALLITEMSL, "CThumbAGProcessor::QueryAllItemsL" );
     }
 
 // -----------------------------------------------------------------------------
@@ -1922,6 +2076,7 @@
     TMPXMessageId generalId( *aMessage->Value<TMPXMessageId>( KMPXMessageGeneralId ) );
     
     TN_DEBUG2( "CThumbAGProcessor::HandleCollectionMessage KMPXMessageGeneralId=%d", generalId);
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_HANDLECOLLECTIONMESSAGE, "CThumbAGProcessor::HandleCollectionMessage - KMPXMessageGeneralId;generalId=%u", generalId );
 
 	//we are interestead of only general system events
     if ( generalId == KMPXMessageGeneral )
@@ -1929,6 +2084,7 @@
         TInt event( *aMessage->Value<TInt>( KMPXMessageGeneralEvent ) );
         TInt op( *aMessage->Value<TInt>( KMPXMessageGeneralType ) );
         TN_DEBUG3( "CThumbAGProcessor::HandleCollectionMessage KMPXMessageGeneralEvent=%d", event, op);
+        OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_HANDLECOLLECTIONMESSAGE, "CThumbAGProcessor::HandleCollectionMessage - KMPXMessageGeneralEvent;event=%d;op=%d", event, op );
         if ( event == TMPXCollectionMessage::EBroadcastEvent )
             {
             switch( op )
@@ -1937,6 +2093,7 @@
                 case EMcMsgRefreshStart:
                 case EMcMsgUSBMTPStart:
                     TN_DEBUG1("CThumbAGProcessor::HandleCollectionMessage MPX refresh started" );
+                    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_HANDLECOLLECTIONMESSAGE, "CThumbAGProcessor::HandleCollectionMessage - MPX refresh started" );
                     iMPXHarvesting = ETrue;
                     CancelTimeout();
                     break;
@@ -1945,6 +2102,7 @@
                 case EMcMsgUSBMTPEnd:
                 case EMcMsgUSBMTPNotActive:
                     TN_DEBUG1("CThumbAGProcessor::HandleCollectionMessage MPX refresh finished/not active" );
+                    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_HANDLECOLLECTIONMESSAGE, "CThumbAGProcessor::HandleCollectionMessage - MPX refresh finished/not active" );
                     iMPXHarvesting = EFalse;
                     StartTimeout();
                     break;
@@ -1963,6 +2121,7 @@
                 }
                 
             TN_DEBUG3( "CThumbAGProcessor::HandleCollectionMessage -- end() iHarvesting == %d, iMPXHarvesting == %d", iHarvesting, iMPXHarvesting);
+            OstTraceExt2( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_HANDLECOLLECTIONMESSAGE, "CThumbAGProcessor::HandleCollectionMessage - end;iHarvesting=%u;iMPXHarvesting=%u", iHarvesting, iMPXHarvesting );
             }
         }
     }
@@ -2008,6 +2167,7 @@
 void CThumbAGProcessor::ActivityChanged(const TBool aActive)
     {
     TN_DEBUG2( "void CThumbAGProcessor::ActivityChanged() aActive == %d", aActive);
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_ACTIVITYCHANGED, "CThumbAGProcessor::ActivityChanged" );
     if(aActive)
         {
         iIdle = EFalse;
@@ -2032,6 +2192,7 @@
 void CThumbAGProcessor::FormatNotification( TBool aFormat )
     {
     TN_DEBUG2( "CThumbAGProcessor::FormatNotification(%d)", aFormat );
+    OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_FORMATNOTIFICATION, "CThumbAGProcessor::FormatNotification;aFormat=%u", aFormat );
     
     iFormatting = aFormat;
     
@@ -2051,6 +2212,7 @@
 void CThumbAGProcessor::RPropertyNotification(const TInt aError, const TUid aKeyCategory, const TUint aPropertyKey, const TInt aValue)
     {
     TN_DEBUG5( "CThumbAGProcessor::RPropertyNotification() aError = %d, aPropertyKey = %d, aKeyCategory = %d, aValue = %d", aError, aPropertyKey, aKeyCategory, aValue );
+    OstTraceExt2( TRACE_NORMAL, CTHUMBAGPROCESSOR_RPROPERTYNOTIFICATION, "CThumbAGProcessor::RPropertyNotification;aPropertyKey=%u;aValue=%d", aPropertyKey, aValue );
     
     if(aPropertyKey == KForceBackgroundGeneration && aKeyCategory == KTAGDPSNotification )
         {
@@ -2090,6 +2252,7 @@
         if( ret != KErrNone )
             {
             TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() define KDaemonProcessing ret = %d", ret);
+            OstTrace1( TRACE_NORMAL, CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - define KDaemonProcessing;ret=%d", ret );
             }
 
         ret = RProperty::Define(KTAGDPSNotification, KItemsleft, RProperty::EInt);
@@ -2097,6 +2260,7 @@
         if( ret != KErrNone )
             {
             TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() define KItemsleft ret = %d", ret);
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - define KItemsleft;ret=%d", ret );
             }
         }
     
@@ -2118,6 +2282,7 @@
            }
        
        TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() KItemsleft == %d", itemsLeft);
+       OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues;itemsLeft=%d", itemsLeft );
            
        //cancel 2nd round generarion when there is items in 1st round queues
        if(iAddItemCount && i2ndRound)
@@ -2138,26 +2303,32 @@
         if( daemonProcessing != iPreviousDaemonProcessing)
             {
             TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() update KDaemonProcessing == %d", daemonProcessing);
+            OstTrace1( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - update KDaemonProcessing;daemonProcessing=%u", daemonProcessing );
             iPreviousDaemonProcessing = daemonProcessing;
             TInt ret = RProperty::Set(KTAGDPSNotification, KDaemonProcessing, daemonProcessing);
             
             if(ret != KErrNone )
                 {
                 TN_DEBUG3( "CThumbAGProcessor::UpdatePSValues() set KDaemonProcessing %d failed %d", daemonProcessing, ret);
+                OstTraceExt2( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - set KDaemonProcessing;daemonProcessing=%u;ret=%d", daemonProcessing, ret );
                 }
             }
         
+        TInt ret = RProperty::Get(KTAGDPSNotification, KItemsleft, iPreviousItemsLeft );
         TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() iPreviousItemsLeft == %d", iPreviousItemsLeft);
+        OstTrace1( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues;iPreviousItemsLeft=%d", iPreviousItemsLeft );
         
         if( itemsLeft != iPreviousItemsLeft)
             {
             TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() Set KItemsleft == %d", itemsLeft);
+            OstTrace1( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - Set KItemsleft;itemsLeft=%d", itemsLeft );
             iPreviousItemsLeft = itemsLeft;
             TInt ret = RProperty::Set(KTAGDPSNotification, KItemsleft, itemsLeft );
             
             if(ret != KErrNone )
                 {
                 TN_DEBUG3( "CThumbAGProcessor::UpdatePSValues() set KItemsleft %d failed %d", itemsLeft, ret);
+                OstTraceExt2( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_UPDATEPSVALUES, "CThumbAGProcessor::UpdatePSValues - set KItemsleft failed;itemsLeft=%d;ret=%d", itemsLeft, ret );
                 }
             }
         
@@ -2182,6 +2353,7 @@
 void CThumbAGProcessor::UpdateItemCounts()
     {
     TN_DEBUG1( "CThumbAGProcessor::UpdateItemCounts()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts" );
     iModifyItemCount = 0;
     iDeleteItemCount = 0;
     iAddItemCount = 0;
@@ -2243,24 +2415,43 @@
     
     TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iActiveCount = %d", 
             iActiveCount);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts - iActiveCount;iActiveCount=%u", iActiveCount );
     TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iPreviousItemsLeft = %d", 
             iPreviousItemsLeft);
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iPreviousItemsLeft=%d", iPreviousItemsLeft );
     TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iHarvesting == %d, iMMCHarvesting == %d, iPHHarvesting == %d, iMPXHarvesting == %d", 
             iHarvesting, iMMCHarvesting, iPHHarvesting, iMPXHarvesting);
+    OstTraceExt4( TRACE_NORMAL, DUP3_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iHarvesting=%d;iMMCHarvesting=%d;iPHHarvesting=%d;iMPXHarvesting=%d", 
+            iHarvesting, iMMCHarvesting, iPHHarvesting, iMPXHarvesting );
+
     TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iIdle = %d, iForegroundRun = %d, timer = %d, iForceRun = %d", 
             iIdle, iForegroundRun, iPeriodicTimer->IsActive(), iForceRun);
+    OstTraceExt4( TRACE_NORMAL, DUP4_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iIdle=%d;iForegroundRun=%d;iPeriodicTimer->IsActive()=%d;iForceRun=%d", 
+            iIdle, iForegroundRun, iPeriodicTimer->IsActive(), iForceRun );
+			
     TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iModify = %d, iQueryReady = %d, iProcessingCount = %d", 
             iModify, iQueryReady, iProcessingCount);
+    OstTraceExt2( TRACE_NORMAL, DUP5_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iModify=%u;iQueryReady=%u", 
+            iModify, iQueryReady );
+    OstTrace1( TRACE_NORMAL, DUP12_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iProcessingCount=%u", iProcessingCount );
     TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iMountTimer = %d", iMountTimer->IsActive());
+    OstTrace1( TRACE_NORMAL, DUP6_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iMountTimer->IsActive()=%u", iMountTimer->IsActive() );
     TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() iGenerationQueue = %d, iQueryQueue = %d", 
             iGenerationQueue.Count(), iQueryQueue.Count());
+    OstTraceExt2( TRACE_NORMAL, DUP7_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iGenerationQueue.Count()=%d;iQueryQueue.Count()=%d", iGenerationQueue.Count(), iQueryQueue.Count() );
     TN_DEBUG5( "CThumbAGProcessor::UpdateItemCounts() iAddItemCount=%d, i2ndAddItemCount=%d, iModifyItemCount=%d, iDeleteItemCount=%d",
             iAddItemCount, i2ndAddItemCount, iModifyItemCount, iDeleteItemCount );
+    OstTrace0( TRACE_NORMAL, DUP8_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts" );
     TN_DEBUG3( "CThumbAGProcessor::UpdateItemCounts() iUnknownItemCount=%d, iPlaceholderItemCount=%d",
             iUnknownItemCount, iPlaceholderItemCount);
+    OstTraceExt2( TRACE_NORMAL, DUP9_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iUnknownItemCount=%d;iPlaceholderItemCount=%d", iUnknownItemCount, iPlaceholderItemCount );
     TN_DEBUG4( "CThumbAGProcessor::UpdateItemCounts() iAudioItemCount=%d, iVideoItemCount=%d, iImageItemCount=%d",
             iAudioItemCount, iVideoItemCount, iImageItemCount);
+    OstTraceExt3( TRACE_NORMAL, DUP10_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iAudioItemCount=%u;iVideoItemCount=%d;iImageItemCount=%d", 
+            iAudioItemCount, iVideoItemCount, iImageItemCount );
+			
     TN_DEBUG2( "CThumbAGProcessor::UpdateItemCounts() iCameraItemCount=%d", iCameraItemCount);
+    OstTrace1( TRACE_NORMAL, DUP11_CTHUMBAGPROCESSOR_UPDATEITEMCOUNTS, "CThumbAGProcessor::UpdateItemCounts;iCameraItemCount=%d", iCameraItemCount );
     
     //compress queues when empty
     if(!iGenerationQueue.Count())
@@ -2282,6 +2473,7 @@
 TInt CThumbAGProcessor::MountTimerCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGProcessor::MountTimerCallBack()");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGPROCESSOR_MOUNTTIMERCALLBACK, "CThumbAGProcessor::MountTimerCallBack" );
     CThumbAGProcessor* self = static_cast<CThumbAGProcessor*>( aAny );
     
     self->iMountTimer->Cancel();
@@ -2316,7 +2508,7 @@
         case EGenerationItemTypeVideo:
             //S^3 EGenerationItemActionAdd
             //S^4 EGenerationItemAction2ndAdd
-            aGenerationItem.iItemAction = EGenerationItemActionAdd;    
+            aGenerationItem.iItemAction = EGenerationItemAction2ndAdd;    
             break;
         default:
             aGenerationItem.iItemAction = EGenerationItemActionResolveType;
--- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagvideoobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,11 @@
 #include "thumbnaillog.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailmanagerprivatecrkeys.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbagvideoobserverTraces.h"
+#endif
+
 
 
 // ---------------------------------------------------------------------------
@@ -51,6 +56,7 @@
 CThumbAGVideoObserver* CThumbAGVideoObserver::NewL(CThumbAGProcessor* aProcessor)
 	{
 	TN_DEBUG1( "CThumbAGVideoObserver::NewL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_NEWL, "CThumbAGVideoObserver::NewL" );
     
 	CThumbAGVideoObserver* self = CThumbAGVideoObserver::NewLC(aProcessor);
 	CleanupStack::Pop( self );
@@ -74,6 +80,7 @@
 void CThumbAGVideoObserver::ConstructL()
 	{
 	TN_DEBUG1( "CThumbAGVideoObserver::ConstructL() - begin" );
+	OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_CONSTRUCTL, "CThumbAGVideoObserver::ConstructL - begin" );
 	
 #ifdef _DEBUG
     iAddCounter = 0;
@@ -83,6 +90,7 @@
     InitializeL();
     	
 	TN_DEBUG1( "CThumbAGVideoObserver::ConstructL() - end" );
+	OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_CONSTRUCTL, "CThumbAGVideoObserver::ConstructL - end" );
 	}
 
 // ---------------------------------------------------------------------------
@@ -92,9 +100,11 @@
 void CThumbAGVideoObserver::InitializeL()
     {
     TN_DEBUG1( "CThumbAGVideoObserver::InitializeL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_INITIALIZEL, "CThumbAGVideoObserver::InitializeL - begin" );
     
    
         TN_DEBUG1( "CThumbAGVideoObserver::InitializeL() - create observers" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_INITIALIZEL, "CThumbAGVideoObserver::InitializeL - create observers" );
         
         // create shutdown observer
         if(iMDSShutdownObserver)
@@ -119,6 +129,7 @@
             }
         
         TN_DEBUG1( "CThumbAGVideoObserver::InitializeL() - connect to MDS" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBAGVIDEOOBSERVER_INITIALIZEL, "CThumbAGVideoObserver::InitializeL - connect to MDS" );
         
         if(iMdESession)
             {
@@ -134,6 +145,7 @@
         iSessionError = EFalse;
       
         TN_DEBUG1( "CThumbAGVideoObserver::InitializeL() - end" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGVIDEOOBSERVER_INITIALIZEL, "CThumbAGVideoObserver::InitializeL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -143,6 +155,7 @@
 CThumbAGVideoObserver::~CThumbAGVideoObserver()
     {
     TN_DEBUG1( "CThumbAGVideoObserver::~CThumbAGVideoObserver() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_CTHUMBAGVIDEOOBSERVER, "CThumbAGVideoObserver::~CThumbAGVideoObserver - begin" );
     
     iShutdown = ETrue;    
     
@@ -167,6 +180,7 @@
         }
     
     TN_DEBUG1( "CThumbAGVideoObserver::~CThumbAGVideoObserver() - end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_CTHUMBAGVIDEOOBSERVER, "CThumbAGVideoObserver::~CThumbAGVideoObserver - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -176,6 +190,7 @@
 void CThumbAGVideoObserver::HandleSessionOpened( CMdESession& /* aSession */, TInt aError )
     {
     TN_DEBUG1( "CThumbAGVideoObserver::HandleSessionOpened");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_HANDLESESSIONOPENED, "CThumbAGVideoObserver::HandleSessionOpened" );
     
     if (aError == KErrNone)
         {
@@ -183,11 +198,13 @@
         if (err != KErrNone)
             {
             TN_DEBUG2( "CThumbAGVideoObserver::HandleSessionOpened, AddObserversL error == %d", err );
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_HANDLESESSIONOPENED, "CThumbAGVideoObserver::HandleSessionOpened - AddObserversL;err=%d", err );
             }
         }
     else
         {
         TN_DEBUG2( "CThumbAGVideoObserver::HandleSessionOpened error == %d", aError );
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGVIDEOOBSERVER_HANDLESESSIONOPENED, "CThumbAGVideoObserver::HandleSessionOpened;aError=%d", aError );
         }
     }
 
@@ -198,6 +215,7 @@
 void CThumbAGVideoObserver::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbAGVideoObserver::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_HANDLESESSIONERROR, "CThumbAGVideoObserver::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iSessionError)
         {
         iSessionError = ETrue;
@@ -210,6 +228,7 @@
                                    TCallBack(ReconnectCallBack, this));
                 
                 TN_DEBUG1( "CThumbAGVideoObserver::HandleSessionError() - reconnect timer started" );
+                OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_HANDLESESSIONERROR, "CThumbAGVideoObserver::HandleSessionError - reconnect timer started" );
                 }
             }
 
@@ -225,6 +244,7 @@
                                                const RArray<TItemId>& aObjectIdArray )
     {
     TN_DEBUG1( "CThumbAGVideoObserver::HandleObjectNotification() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - begin" );
 
     // no processor or shutting down
     if ( iShutdown || !iProcessor)
@@ -236,11 +256,13 @@
     if (aType == ENotifyAdd)
         {
         TN_DEBUG2( "CThumbAGVideoObserver::HandleObjectNotification() - ENotifyAdd %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - ENotifyAdd;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iAddCounter = aObjectIdArray.Count();
         }
     else if (aType == ENotifyModify)
         {
         TN_DEBUG2( "CThumbAGVideoObserver::HandleObjectNotification() - ENotifyModify %d", aObjectIdArray.Count() );
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - ENotifyModify;aObjectIdArray.Count()=%d", aObjectIdArray.Count() );
         iModCounter = aObjectIdArray.Count();
         }
 #endif
@@ -248,6 +270,7 @@
     if ( (aType == ENotifyAdd || aType == ENotifyModify ) && (aObjectIdArray.Count() > 0) )
         {
         TN_DEBUG1( "CThumbAGVideoObserver::HandleObjectNotification() - AddToQueueL" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - AddToQueueL" );
 
         // Add event to processing queue by type and enable force run        
         RPointerArray<HBufC> dummyArray;
@@ -255,20 +278,24 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbAGVideoObserver::HandleObjectNotification() - error adding to queue" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - error adding to queue" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbAGVideoObserver::HandleObjectNotification() - bad notification" );
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - bad notification" );
         }
     
 #ifdef _DEBUG
     TN_DEBUG3( "CThumbAGVideoObserver::IN-COUNTERS---------- Add = %d Modify = %d", iAddCounter, iModCounter );
+    OstTraceExt2( TRACE_NORMAL, DUP6_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::IN-COUNTERS---------- Add = %u Modify = %u", iAddCounter, iModCounter );
     iModCounter = 0;
     iAddCounter = 0;
 #endif
 
     TN_DEBUG1( "CThumbAGVideoObserver::HandleObjectNotification() - end" );
+    OstTrace0( TRACE_NORMAL, DUP7_CTHUMBAGVIDEOOBSERVER_HANDLEOBJECTNOTIFICATION, "CThumbAGVideoObserver::HandleObjectNotification - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -278,10 +305,12 @@
 void CThumbAGVideoObserver::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbAGVideoObserver::ShutdownNotification()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGVideoObserver::ShutdownNotification" );
     
     if (!iShutdown)
         {
         TN_DEBUG1( "CThumbAGVideoObserver::ShutdownNotification() shutdown" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_SHUTDOWNNOTIFICATION, "CThumbAGVideoObserver::ShutdownNotification - shutdown" );
         iShutdown = ETrue;
         }
     }
@@ -293,6 +322,7 @@
 void CThumbAGVideoObserver::AddObserversL()
     {
     TN_DEBUG1( "CThumbAGVideoObserver::AddObserversL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_ADDOBSERVERSL, "CThumbAGVideoObserver::AddObserversL - begin" );
     
     CMdENamespaceDef& defaultNamespace = iMdESession->GetDefaultNamespaceDefL();
     CMdEObjectDef& objectDef = defaultNamespace.GetObjectDefL( MdeConstants::Object::KBaseObject );
@@ -324,6 +354,7 @@
 	CleanupStack::Pop( 6, addCondition );
      
     TN_DEBUG1( "CThumbAGVideoObserver::AddObserversL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_ADDOBSERVERSL, "CThumbAGVideoObserver::AddObserversL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -333,6 +364,7 @@
 TInt CThumbAGVideoObserver::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbAGVideoObserver::ReconnectCallBack() - reinitialize");
+    OstTrace0( TRACE_NORMAL, CTHUMBAGVIDEOOBSERVER_RECONNECTCALLBACK, "CThumbAGVideoObserver::ReconnectCallBack - reinitialize" );
     
     CThumbAGVideoObserver* self = static_cast<CThumbAGVideoObserver*>( aAny );
     
@@ -342,6 +374,7 @@
     TRAP_IGNORE( self->InitializeL() );
     
     TN_DEBUG1( "CThumbAGVideoObserver::ReconnectCallBack() - done");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBAGVIDEOOBSERVER_RECONNECTCALLBACK, "CThumbAGVideoObserver::ReconnectCallBack - done" );
     
     return KErrNone;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/group/thumbnailmanager.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/group/thumbnailmanager.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -42,7 +42,7 @@
 MW_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE             ../inc
-USERINCLUDE             ../../inc
+USERINCLUDE             ../../inc ../traces
 
 LIBRARY                 fbscli.lib
 LIBRARY                 euser.lib
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/inc/thumbnailrequestactive.h	Tue Aug 31 15:30:59 2010 +0300
@@ -95,7 +95,7 @@
      *                    ThumbnailReady callback.
      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
      */
-    void GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId,
+    void GetThumbnailL( const RFile64& aFile, 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 = KNullDesC,
@@ -117,7 +117,7 @@
      *                    ThumbnailReady callback.
      * @param aTargetUri         Target URI to which the imported thumbnail is linked.
      */
-    void GetThumbnailL( TThumbnailId aThumbnailId, const TDesC& aPath,
+    void GetThumbnailL( TThumbnailId aThumbnailId, 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 = KNullDesC,
@@ -142,7 +142,7 @@
      * @param aThumbnailSize Relative thumbnail size
      */
     void GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId,
-        CThumbnailManager::TThumbnailFlags aFlags, 
+        const TDesC8& aMimeType, CThumbnailManager::TThumbnailFlags aFlags, 
         CThumbnailManager::TThumbnailQualityPreference aQualityPreference, 
         const TSize& aSize, const TDisplayMode aDisplayMode, const TInt aPriority, 
         TAny* aClientData, TBool aGeneratePersistentSizesOnly, 
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnaildataimpl.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -19,6 +19,10 @@
 #include <fbs.h>
 
 #include "thumbnaildataimpl.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnaildataimplTraces.h"
+#endif
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -29,6 +33,7 @@
 //
 CThumbnailDataImpl::CThumbnailDataImpl()
     {
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDATAIMPL_CTHUMBNAILDATAIMPL, "CThumbnailDataImpl::CThumbnailDataImpl" );
     // No implementation required
     }
 
@@ -40,6 +45,7 @@
 //
 CThumbnailDataImpl::~CThumbnailDataImpl()
     {
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILDATAIMPL_CTHUMBNAILDATAIMPL, "CThumbnailDataImpl::~CThumbnailDataImpl" );
     delete iBitmap;
     iBitmap = NULL;
     iClientData = NULL;
@@ -53,6 +59,7 @@
 //
 CFbsBitmap* CThumbnailDataImpl::Bitmap()
     {
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDATAIMPL_BITMAP, "CThumbnailDataImpl::Bitmap" );
     return iBitmap;
     }
 
@@ -64,6 +71,7 @@
 //
 CFbsBitmap* CThumbnailDataImpl::DetachBitmap()
     {
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDATAIMPL_DETACHBITMAP, "CThumbnailDataImpl::DetachBitmap" );
     CFbsBitmap* ret = iBitmap;
     iBitmap = NULL; // client owns it now
     return ret;
@@ -77,6 +85,7 @@
 //
 TAny* CThumbnailDataImpl::ClientData()
     {
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDATAIMPL_CLIENTDATA, "CThumbnailDataImpl::ClientData" );
     return iClientData;
     }
 
@@ -88,6 +97,7 @@
 //
 void CThumbnailDataImpl::Set( CFbsBitmap* aBitmap, TAny* aClientData )
     {
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDATAIMPL_SET, "CThumbnailDataImpl::Set" );
     delete iBitmap;
     iBitmap = aBitmap;
     iClientData = aClientData;
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailmanagerimpl.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -33,6 +33,10 @@
 #include "thumbnailpanic.h"
 
 #include "thumbnaildata.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailmanagerimplTraces.h"
+#endif
 
 
 const TInt KThumbnailMimeTypeListGranularity = 8;
@@ -48,6 +52,7 @@
 CThumbnailManagerImpl::~CThumbnailManagerImpl()
     {
     TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - start" );
+	OstTrace0( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - start" );
 	
     delete iRequestQueue;  
     iRequestQueue = NULL;
@@ -62,9 +67,11 @@
         if( --sessionCount == 0 )
             {
 		    TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - Disconnect FBS" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - Disconnect FBS" );
             iFbsSession.Disconnect();
             }
 	    TN_DEBUG2( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - update sessionCount == %d to TLS", sessionCount );
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - update sessionCount == %d to TLS", sessionCount );
         Dll::SetTls( (TAny*)sessionCount );
         }
 
@@ -72,6 +79,7 @@
     iMimeTypeList = NULL;
 	
 	TN_DEBUG1( "CThumbnailManagerImpl::~CThumbnailManagerImpl() - end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::~CThumbnailManagerImpl - end" );
     }
 
 
@@ -102,6 +110,7 @@
     {
     // No implementation required
     TN_DEBUG1( "CThumbnailManagerImpl::CThumbnailManagerImpl()" );
+    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILMANAGERIMPL_CTHUMBNAILMANAGERIMPL, "CThumbnailManagerImpl::CThumbnailManagerImpl" );
     }
 
 
@@ -113,6 +122,7 @@
 void CThumbnailManagerImpl::ConstructL()
     {
     TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - start");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - start" );
     
     User::LeaveIfError( iSession.Connect());
     User::LeaveIfError( iFs.Connect());
@@ -125,6 +135,7 @@
         User::LeaveIfError( iFbsSession.Connect()); 
         Dll::SetTls( (TAny*)1 ); 
         TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", 1 );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - update sessionCount == %d to TLS", 1 );
         }
     else
         {
@@ -134,12 +145,14 @@
             // Increase the reference count in TLS
             Dll::SetTls( (TAny*)sessionCount );
             TN_DEBUG2( "CThumbnailManagerImpl::ConstructL() - update sessionCount == %d to TLS", sessionCount );
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - update sessionCount == %d to TLS", sessionCount );
             } 
         else
             {
             // Fbs connection was available in the beginning, no need to
             // increase the reference count
             TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - no need to update sessionCount");
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - no need to update sessionCount" );
             }
         }
     
@@ -147,6 +160,7 @@
     iRequestQueue = CThumbnailRequestQueue::NewL();
     
     TN_DEBUG1( "CThumbnailManagerImpl::ConstructL - end");
+    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILMANAGERIMPL_CONSTRUCTL, "CThumbnailManagerImpl::ConstructL - end" );
     }
 
 
@@ -161,6 +175,7 @@
     {
     iRequestId++;
     TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() URI==%S, iThumbnailSize==%d, req %d", &aObjectSource.Uri(), iThumbnailSize, iRequestId );
+    OstTraceExt3( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;aObjectSource.Uri()=%S;iThumbnailSize=%d;iRequestId=%d", aObjectSource.Uri(), iThumbnailSize, iRequestId );
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
@@ -172,21 +187,21 @@
     
     if(aObjectSource.Id() > 0)
         {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
-            KNullDesC, iThumbnailSize);
+        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), 
+            aObjectSource.MimeType(),iFlags, iQualityPreference, iSize, iDisplayMode, 
+            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize);
         }
     else if ( aObjectSource.Uri().Length())
         {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
-            KNullDesC, iThumbnailSize );
+        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(),
+            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
+            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize );
         }
     else
         {
-        getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, priority, aClientData, aGeneratePersistentSizesOnly,
-            KNullDesC, iThumbnailSize );
+        getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), 
+            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
+            priority, aClientData, aGeneratePersistentSizesOnly, KNullDesC, iThumbnailSize );
         }
     
     iRequestQueue->AddRequestL( getThumbnailActive );
@@ -195,6 +210,7 @@
     iRequestQueue->Process();
     
     TN_DEBUG2( "CThumbnailManagerImpl::GetThumbnailL() - request ID: %d", iRequestId );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;iRequestId=%u", iRequestId );
     
     return iRequestId;
     }
@@ -222,6 +238,7 @@
     {
     iRequestId++;
     TN_DEBUG4( "CThumbnailManagerImpl::GetThumbnailL() aThumbnailId==%d, iThumbnailSize==%d, req %d", aThumbnailId, iThumbnailSize, iRequestId );
+    OstTraceExt3( TRACE_NORMAL, DUP2_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;aThumbnailId=%u;iThumbnailSize=%u;iRequestId=%u", aThumbnailId, iThumbnailSize, iRequestId );
 
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 
@@ -231,9 +248,9 @@
         ( iFs, iSession, iObserver, iRequestObserver, iRequestId, priority, iRequestQueue );
     CleanupStack::PushL( getThumbnailActive );
     
-    getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, iFlags,
-                       iQualityPreference, iSize, iDisplayMode, priority, aClientData,
-                       EFalse, KNullDesC, iThumbnailSize );
+    getThumbnailActive->GetThumbnailL( KNullDesC, aThumbnailId, KNullDesC8,
+            iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData,
+            EFalse, KNullDesC, iThumbnailSize );
     
     iRequestQueue->AddRequestL( getThumbnailActive );
     CleanupStack::Pop( getThumbnailActive );
@@ -241,6 +258,7 @@
     iRequestQueue->Process();
     
     TN_DEBUG2( "CThumbnailManagerImpl::GetThumbnailL() - request ID: %d", iRequestId );
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILMANAGERIMPL_GETTHUMBNAILL, "CThumbnailManagerImpl::GetThumbnailL;iRequestId=%u", iRequestId );
     
     return iRequestId;
     }
@@ -267,15 +285,15 @@
 
     if ( aObjectSource.Uri().Length())
         {
-        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), iFlags,
-            iQualityPreference, iSize, iDisplayMode, priority, aClientData,
-            EFalse, aTargetUri, iThumbnailSize );
+        getThumbnailActive->GetThumbnailL( aObjectSource.Uri(), aObjectSource.Id(), 
+            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode, 
+            priority, aClientData, EFalse, aTargetUri, iThumbnailSize );
         }
     else
         {
         getThumbnailActive->GetThumbnailL( aObjectSource.FileHandle(), aObjectSource.Id(), 
-            iFlags, iQualityPreference, iSize, iDisplayMode, priority, aClientData,
-            EFalse, aTargetUri, iThumbnailSize );
+            aObjectSource.MimeType(), iFlags, iQualityPreference, iSize, iDisplayMode,
+            priority, aClientData, EFalse, aTargetUri, iThumbnailSize );
         }
     
     iRequestQueue->AddRequestL( getThumbnailActive );
@@ -284,6 +302,7 @@
     iRequestQueue->Process();
     
     TN_DEBUG2( "CThumbnailManagerImpl::ImportThumbnailL() - request ID: %d", iRequestId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_IMPORTTHUMBNAILL, "CThumbnailManagerImpl::ImportThumbnailL;iRequestId=%u", iRequestId );
     
     return iRequestId;
     }
@@ -338,6 +357,7 @@
     iRequestQueue->Process();
     
     TN_DEBUG2( "CThumbnailManagerImpl::SetThumbnailL() - request ID: %d", iRequestId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_SETTHUMBNAILL, "CThumbnailManagerImpl::SetThumbnailL;iRequestId=%u", iRequestId );
     
     return iRequestId;
     }
@@ -352,6 +372,7 @@
 	{
 	TRAPD(err,
 		TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() aObjectSource==%S ", &aObjectSource.Uri() );
+		OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CREATETHUMBNAILS, "CThumbnailManagerImpl::CreateThumbnails;aObjectSource.Uri()=%S", aObjectSource.Uri() );
 		iRequestId++;
 
 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
@@ -374,9 +395,9 @@
 		else if( !aObjectSource.Buffer() )
 			{        
 			getThumbnailActive->GetThumbnailL( aObjectSource.Id(), 
-						 aObjectSource.Uri(), iFlags, iQualityPreference, iSize,
-						 iDisplayMode, priority, NULL, ETrue, aObjectSource.Uri(), 
-						 EUnknownThumbnailSize);      
+						 aObjectSource.Uri(), aObjectSource.MimeType(), iFlags, 
+						 iQualityPreference, iSize, iDisplayMode, priority, NULL, 
+						 ETrue, aObjectSource.Uri(), EUnknownThumbnailSize);      
 			}
 		else
 			{
@@ -394,6 +415,7 @@
 		iRequestQueue->Process();
 		
 		TN_DEBUG2( "CThumbnailManagerImpl::CreateThumbnails() - request ID: %d", iRequestId );
+		OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_CREATETHUMBNAILS, "CThumbnailManagerImpl::CreateThumbnails;iRequestId=%u", iRequestId );
 	);
 	
 	if( err != KErrNone)
@@ -517,6 +539,7 @@
 	TRAP_IGNORE(
 		iRequestId++;
 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() URI==%S ", &aObjectSource.Uri() );
+		OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_DELETETHUMBNAILS, "CThumbnailManagerImpl::DeleteThumbnails;aObjectSource.Uri()=%S", aObjectSource.Uri() );
 
 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 		
@@ -560,6 +583,7 @@
 	TRAP_IGNORE(
 		iRequestId++;
 		TN_DEBUG2( "CThumbnailManagerImpl::DeleteThumbnails() aItemId==%d ", aItemId );
+		OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_DELETETHUMBNAILS, "CThumbnailManagerImpl::DeleteThumbnails;aItemId=%u", aItemId );
 		
 		__ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
 		
@@ -590,6 +614,7 @@
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
     TN_DEBUG2( "CThumbnailManagerImpl::CancelRequest() - request ID: %d", aId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CANCELREQUEST, "CThumbnailManagerImpl::CancelRequest;aId=%u", aId );
     
     return iRequestQueue->CancelRequest(aId);
     }
@@ -608,6 +633,7 @@
     TInt priority = ValidatePriority(aNewPriority);
     
     TN_DEBUG2( "CThumbnailManagerImpl::ChangePriority() - request ID: %d", aId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_CHANGEPRIORITY, "CThumbnailManagerImpl::ChangePriority;aId=%u", aId );
     
     return iRequestQueue->ChangePriority(aId, priority);
     }
@@ -646,6 +672,7 @@
     {
     iRequestId++;
     TN_DEBUG4( "CThumbnailManagerImpl::UpdateThumbnailsL() URI==%S, aItemId==%d, req %d", &aPath, aItemId, iRequestId); 
+    OstTraceExt3( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_UPDATETHUMBNAILSL, "CThumbnailManagerImpl::UpdateThumbnailsL;aPath=%S;aItemId=%d;iRequestId=%d", aPath, aItemId, iRequestId );
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
@@ -674,6 +701,7 @@
     {
     iRequestId++;
     TN_DEBUG3( "CThumbnailManagerImpl::RenameThumbnailsL() URI==%S, req %d", &aCurrentPath, iRequestId); 
+     OstTraceExt1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_RENAMETHUMBNAILSL, "CThumbnailManagerImpl::RenameThumbnailsL;aCurrentPath=%S", aCurrentPath );
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
@@ -729,11 +757,13 @@
     if (aPriority < CActive::EPriorityIdle)
         {
         TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too low for CActive", aPriority );
+        OstTrace1( TRACE_NORMAL, CTHUMBNAILMANAGERIMPL_VALIDATEPRIORITY, "CThumbnailManagerImpl::ValidatePriority  - priority too low for CActive;aPriority=%d", aPriority );
         return CActive::EPriorityIdle;
         }
     else if (aPriority > CActive::EPriorityHigh)
         {
         TN_DEBUG2( "CThumbnailManagerImpl::ValidatePriority() - priority %d too high for CActive", aPriority );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMANAGERIMPL_VALIDATEPRIORITY, "CThumbnailManagerImpl::ValidatePriority - priority too high for CActive;aPriority=%d", aPriority );
         return CActive::EPriorityHigh;
         }
     else
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestactive.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -31,6 +31,11 @@
 #include "thumbnaillog.h"
 
 #include "thumbnailmanagerimpl.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailrequestactiveTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -100,6 +105,7 @@
     {
     CActiveScheduler::Add( this );
     TN_DEBUG2( "CThumbnaiRequestActive::CThumbnailRequestActive() AO's priority = %d", Priority());
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_CTHUMBNAILREQUESTACTIVE, "CThumbnailRequestActive::CThumbnailRequestActive - AO's priority;Priority()=%d", Priority() );
     
     iBitmap = NULL;
     iRequestCompleted = EFalse;
@@ -132,6 +138,7 @@
 void CThumbnailRequestActive::StartL()
     {
     TN_DEBUG3( "CThumbnailRequestActive::StartL(0x%08x) reqid = %d", this, iRequestId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iRequestId=%u", iRequestId );
     
     iRequestActive = ETrue;
 
@@ -140,6 +147,8 @@
     stop.UniversalTime();
     TN_DEBUG3( "CThumbnailRequestActive::StartL() req id = %d, queuing time %d ms",
                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - req id = %d, queuing time %d ms",
+               iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
 #endif
     
     switch (iRequestType)
@@ -157,11 +166,13 @@
                 iParams.iOriginalControlFlags != EThumbnailGeneratePersistentSizesOnly)
                 {
                 TN_DEBUG1( "CThumbnaiRequestActive::StartL()- custom size request" );
+                OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - custom size request" );
                   
                 iFile.Close();
                 User::LeaveIfError( iFile.Open( iFs, iPath, EFileShareReadersOrWriters ) );  
                 
                 TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iPath );
+                OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iPath=%S", iPath );
                 
                 CleanupClosePushL( iFile );
                 
@@ -204,6 +215,7 @@
             User::LeaveIfError( iFile.Open( iFs, iTargetUri, EFileShareReadersOrWriters ) );  
             
             TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iTargetUri );
+            OstTraceExt1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL - file handle opened;iTargetUri=%S", iTargetUri );
             
             CleanupClosePushL( iFile );
             
@@ -244,6 +256,7 @@
             User::LeaveIfError( iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters ) );  
             
             TN_DEBUG2( "CThumbnailRequestActive::StartL() - file handle opened for %S", &iParams.iFileName );
+            OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_STARTL, "CThumbnailRequestActive::StartL;iParams.iFileName=%S", iParams.iFileName );
             
             CleanupClosePushL( iFile );
             
@@ -280,6 +293,7 @@
 void CThumbnailRequestActive::RunL()
     {
     TN_DEBUG2( "CThumbnailRequestActive::RunL() - request ID: %d", iParams.iRequestId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
  
     if ( iParams.iControlFlags == EThumbnailPreviewThumbnail )
         {
@@ -313,6 +327,8 @@
     stop.UniversalTime();
     TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms",
                 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms",
+                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
 #endif
         }
     else if (iCanceled || iRequestType == EReqRenameThumbnails)
@@ -337,12 +353,15 @@
     stop.UniversalTime();
     TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time of req %d is %d ms",
                 iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+    OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time of req %d is %d ms",
+                iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
 #endif
         }
     else if ( iStatus.Int() == KThumbnailErrThumbnailNotFound && iParams.iFileName.Length() && 
          !( iParams.iFlags& CThumbnailManager::EDoNotCreate ))
         {
         TN_DEBUG2( "CThumbnaiRequestActive::RunL() - no thumbnail found - lets try with file handle %S", &iParams.iFileName );
+        OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - no thumbnail found - lets try with file handle;iParams.iFileName=%S", iParams.iFileName );
         iRequestCompleted = EFalse;
         
         // We tried to get thumbnail using file path, but it was not found in
@@ -351,11 +370,13 @@
         iFile.Close();
         TInt err = iFile.Open( iFs, iParams.iFileName, EFileShareReadersOrWriters );
         TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle open err = %d", err );
+        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - file handle open err;err=%d", err );
         User::LeaveIfError( err );
         
         CleanupClosePushL( iFile );
         
         TN_DEBUG2( "CThumbnaiRequestActive::RunL() - file handle opened for %S", &iParams.iFileName );
+        OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iFileName=%S", iParams.iFileName );
         
         iSession.RequestThumbnailL( iFile, iParams.iFileName, iParamsPckg, iStatus );
         CleanupStack::PopAndDestroy( &iFile );
@@ -375,9 +396,11 @@
     else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && !iProcessingPreview)
 	    {
 	    TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailready" );
+	    OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailready" );
 	    iBitmapHandle = iParams.iBitmapHandle;
 	    
 	    TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId );
+	    OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
 	    iObserver.ThumbnailReady( iStatus.Int(), *iCallbackThumbnail, iParams.iRequestId );
 	  
 	    ReleaseServerBitmap();
@@ -392,6 +415,9 @@
             stop.UniversalTime();
             TN_DEBUG3( "CThumbnailRequestActive::RunL() total execution time %d, %d ms",
                        iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+            OstTraceExt2( TRACE_NORMAL, DUP8_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - total execution time %d, %d ms",
+                       iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+            
         #endif
 	    }
     //1st round preview ready from too low quality exif/exif not found (not-stored)
@@ -399,9 +425,11 @@
     else if (iParams.iOriginalControlFlags == EThumbnailGeneratePersistentSizesOnly && iProcessingPreview)
         {
         TN_DEBUG1( "CThumbnaiRequestActive::RunL()- generate persistent sizes thumbnailpreviewready" );
+        OstTrace0( TRACE_NORMAL, DUP9_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - generate persistent sizes thumbnailpreviewready" );
         iBitmapHandle = iParams.iBitmapHandle;
         
         TN_DEBUG2( "CThumbnaiRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId );
+        OstTrace1( TRACE_NORMAL, DUP10_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
         iObserver.ThumbnailPreviewReady( *iCallbackThumbnail, iParams.iRequestId );
         
         iProcessingPreview = EFalse;
@@ -433,6 +461,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailRequestActive::RunL() - succesful" );
+        OstTrace0( TRACE_NORMAL, DUP11_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - succesful" );
         
         // Success
         iBitmapHandle = iParams.iBitmapHandle;
@@ -447,6 +476,7 @@
             // reduce bpp value (displaymode to match reqested bits per pixel)
             #ifdef _DEBUG
             TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is %d", bitmap->DisplayMode());
+            OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() );
             #endif
             
             if( bitmap->DisplayMode() > iParams.iDisplayMode )
@@ -454,6 +484,7 @@
                 bitmap->SetDisplayMode( iParams.iDisplayMode );
                 #ifdef _DEBUG
                 TN_DEBUG2( "CThumbnailRequestActive::RunL() - displaymode is now %d", bitmap->DisplayMode());
+                OstTrace1( TRACE_NORMAL, DUP13_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;bitmap->DisplayMode()=%u", bitmap->DisplayMode() );
                 #endif
                 }
             
@@ -464,6 +495,7 @@
         if ( iProcessingPreview )
             {
             TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailPreviewReady %d", iParams.iRequestId );
+			OstTrace1( TRACE_NORMAL, DUP14_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL - iObserver.ThumbnailPreviewReady;iParams.iRequestId=%u", iParams.iRequestId );
 			
             //increase priority of 2nd round (both, AO and request itself)
             this->SetPriority(this->Priority() + 1);
@@ -480,6 +512,7 @@
         else
             {
             TN_DEBUG2( "CThumbnailRequestActive::RunL() - iObserver.ThumbnailReady %d", iParams.iRequestId );
+            OstTrace1( TRACE_NORMAL, DUP15_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u", iParams.iRequestId );
             
             iObserver.ThumbnailReady( iStatus.Int(), * iCallbackThumbnail, iParams.iRequestId );
             ReleaseServerBitmap();    
@@ -492,8 +525,11 @@
 #ifdef _DEBUG
         TTime stop;
         stop.UniversalTime();
+        TInt tookTime = (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000;
         TN_DEBUG4( "CThumbnailRequestActive::RunL(0x%08x) total execution time of req %d is %d ms",
                 this, iParams.iRequestId, (TInt)stop.MicroSecondsFrom(iStartExecTime).Int64()/1000 );
+        OstTrace1( TRACE_NORMAL, DUP16_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;this=%o", this );
+        OstTraceExt2( TRACE_NORMAL, DUP17_CTHUMBNAILREQUESTACTIVE_RUNL, "CThumbnailRequestActive::RunL;iParams.iRequestId=%u;tookTime=%d", iParams.iRequestId, tookTime );
 #endif
             }
         }
@@ -516,6 +552,7 @@
 TInt CThumbnailRequestActive::RunError( TInt aError )
     {
     TN_DEBUG1( "CThumbnailRequestActive::RunError");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RUNERROR, "CThumbnailRequestActive::RunError" );
     
     iTimer->Cancel();
     
@@ -535,6 +572,7 @@
 void CThumbnailRequestActive::DoCancel()
     {
     TN_DEBUG1( "CThumbnailRequestActive::DoCancel");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_DOCANCEL, "CThumbnailRequestActive::DoCancel" );
     iTimer->Cancel();
     
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
@@ -552,6 +590,7 @@
 void CThumbnailRequestActive::AsyncCancel()
     {
     TN_DEBUG1( "CThumbnailRequestActive::AsyncCancel");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_ASYNCCANCEL, "CThumbnailRequestActive::AsyncCancel" );
 
     __ASSERT_DEBUG(( iRequestId > 0 ), ThumbnailPanic( EThumbnailWrongId ));
     
@@ -573,6 +612,7 @@
     if ( iBitmapHandle && iSession.Handle())
         {
     	TN_DEBUG1( "CThumbnailRequestActive::ReleaseServerBitmap");
+    	OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_RELEASESERVERBITMAP, "CThumbnailRequestActive::ReleaseServerBitmap" );
     
         iSession.ReleaseBitmap( iBitmapHandle );
         iBitmapHandle = 0;
@@ -588,6 +628,7 @@
 void CThumbnailRequestActive::HandleError()
     {
     TN_DEBUG1( "CThumbnailRequestActive::HandleError");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError" );
     
     if ( iError )
         {
@@ -598,16 +639,19 @@
             if (connErr != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - session reconnect err %d", connErr );
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;err=%d", connErr );
                 }
             else
                 {
                 TN_DEBUG1( "CThumbnailRequestActive::HandleError() - session reconnected");
+                OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - session reconnected" );
                 }
             }
 
         if (iRequestObserver && iRequestType == EReqDeleteThumbnails)
              {
              TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - iRequestObserver->ThumbnailRequestReady %d", iParams.iRequestId );
+             OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError;iParams.iRequestId=%u", iParams.iRequestId );
              iRequestObserver->ThumbnailRequestReady(iError, ERequestDeleteThumbnails ,iParams.iRequestId);
              }
         else
@@ -628,6 +672,7 @@
                     {
                     iRetry++;
                     TN_DEBUG2( "CThumbnaiRequestActive::HandleError() - KErrServerTerminated, retry %d", iRetry);
+                    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - KErrServerTerminated;iRetry=%d", iRetry );
                     iError = KErrNone;
                     TRAPD(err, StartL());
                     return;
@@ -635,6 +680,7 @@
 	            }
 #endif
 	        TN_DEBUG3( "CThumbnaiRequestActive::HandleError() - iObserver.ThumbnailReady req=%d err=%d", iParams.iRequestId, iError );
+	        OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTACTIVE_HANDLEERROR, "CThumbnailRequestActive::HandleError - iObserver.ThumbnailReady %u", iParams.iRequestId );
 	        iObserver.ThumbnailReady( iError, *iCallbackThumbnail, iParams.iRequestId );
 	            
             }
@@ -659,7 +705,7 @@
 // ---------------------------------------------------------------------------
 //
 void CThumbnailRequestActive::GetThumbnailL( const RFile64& aFile, TThumbnailId aThumbnailId,
-    CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
+    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)
@@ -680,6 +726,7 @@
     						EThumbnailGeneratePersistentSizesOnly :
     						EThumbnailNoControlFlags);    
     iParams.iOriginalControlFlags = iParams.iControlFlags;
+    iParams.iMimeType = TDataType( aMimeType );
     iParams.iBitmapHandle = 0;
     iParams.iSize = aSize;
     iParams.iDisplayMode = aDisplayMode;
@@ -714,8 +761,8 @@
 // ---------------------------------------------------------------------------
 //
 void CThumbnailRequestActive::GetThumbnailL( TThumbnailId aThumbnailId,
-    const TDesC& aPath, CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
-    ::TThumbnailQualityPreference aQualityPreference, const TSize& aSize, const
+    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)
     {
@@ -726,6 +773,7 @@
                             EThumbnailGeneratePersistentSizesOnly :
                             EThumbnailNoControlFlags);
     iParams.iOriginalControlFlags = iParams.iControlFlags;
+    iParams.iMimeType = TDataType( aMimeType );
     iParams.iBitmapHandle = 0;
     iParams.iSize = aSize;
     iParams.iDisplayMode = aDisplayMode;
@@ -758,7 +806,7 @@
 // ---------------------------------------------------------------------------
 //
 void CThumbnailRequestActive::GetThumbnailL( const TDesC& aPath, TThumbnailId aThumbnailId,
-    CThumbnailManager::TThumbnailFlags aFlags, CThumbnailManager
+    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)
@@ -770,6 +818,7 @@
     						EThumbnailGeneratePersistentSizesOnly :
     						EThumbnailNoControlFlags);
     iParams.iOriginalControlFlags = iParams.iControlFlags;
+    iParams.iMimeType = TDataType( aMimeType );
     iParams.iBitmapHandle = 0;
     iParams.iSize = aSize;
     iParams.iDisplayMode = aDisplayMode;
@@ -898,6 +947,7 @@
         {
         // memory low, create thumbs using filehandle
         TN_DEBUG1( "CThumbnaiRequestActive::SetThumbnailbyBitmap() - memory low, create thumbs using filehandle!" );
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_SETTHUMBNAILL, "CThumbnailRequestActive::SetThumbnailL - memory low, create thumbs using filehandle!" );
         delete aBitmap;
         aBitmap = NULL;
         iParams.iPriority = aPriority - 1;
@@ -1025,6 +1075,7 @@
 void CThumbnailRequestActive::Get2ndPhaseThumbnailL()
     {
     TN_DEBUG2( "CThumbnailRequestActive::Get2ndPhaseThumbnailL() %d", iParams.iRequestId );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_GET2NDPHASETHUMBNAILL, "CThumbnailRequestActive::Get2ndPhaseThumbnailL;iParams.iRequestId=%u", iParams.iRequestId );
     
     iParams.iQualityPreference = CThumbnailManager::EOptimizeForQuality;
     iParams.iControlFlags = EThumbnailNoControlFlags;
@@ -1049,6 +1100,7 @@
 void CThumbnailRequestActive::ChangePriority( const TInt aNewPriority )
     {
     TN_DEBUG1( "CThumbnailRequestActive::ChangePriority");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_CHANGEPRIORITY, "CThumbnailRequestActive::ChangePriority" );
     
     iParams.iPriority = aNewPriority;
     
@@ -1070,6 +1122,7 @@
 void CThumbnailRequestActive::StartError( const TInt aErr )
     {
     TN_DEBUG1( "CThumbnailRequestActive::StartError");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_STARTERROR, "CThumbnailRequestActive::StartError" );
     
     iStartError = aErr;
     iRequestActive = ETrue;
@@ -1088,6 +1141,7 @@
 TInt CThumbnailRequestActive::TimerCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - request timeout");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_TIMERCALLBACK, "CThumbnailRequestActive::TimerCallBack" );
     
     CThumbnailRequestActive* self = static_cast<CThumbnailRequestActive*>( aAny );
     
@@ -1107,6 +1161,7 @@
     self->HandleError();
     
     TN_DEBUG1( "CThumbnailRequestActive::TimerCallBack() - end");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTACTIVE_TIMERCALLBACK, "CThumbnailRequestActive::TimerCallBack - end" );
     
     return KErrNone;
     }
@@ -1129,6 +1184,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailRequestActive::IsVirtualUri() - yes");
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTACTIVE_ISVIRTUALURI, "CThumbnailRequestActive::IsVirtualUri - yes" );
         return ETrue;
         }    
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailrequestqueue.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -19,6 +19,11 @@
 #include "thumbnailrequestqueue.h"
 #include "thumbnailrequestactive.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailrequestqueueTraces.h"
+#endif
+
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -67,10 +72,12 @@
 CThumbnailRequestQueue::~CThumbnailRequestQueue()
     {
     TN_DEBUG1( "CThumbnailRequestQueue::~CThumbnailRequestQueue()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CTHUMBNAILREQUESTQUEUE, "CThumbnailRequestQueue::~CThumbnailRequestQueue" );
     
     iRequests.ResetAndDestroy();
     
     TN_DEBUG1( "CThumbnailRequestQueue::~CThumbnailRequestQueue() - All requests deleted");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_CTHUMBNAILREQUESTQUEUE, "CThumbnailRequestQueue::~CThumbnailRequestQueue - All requests deleted" );
     }
 
 
@@ -82,6 +89,7 @@
 void CThumbnailRequestQueue::Process()
     {
     TN_DEBUG1( "CThumbnailRequestQueue::Process()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process" );
     
     while ( (iActiveRequests < KMaxClientRequests) &&
             (iRequests.Count() > iActiveRequests) )
@@ -101,6 +109,9 @@
                TN_DEBUG4( "CThumbnailRequestQueue::Process() - candidate at %d, id = %d, (0x%08x)", i, 
                        request->RequestId(), 
                        request);
+               OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;request->RequestId()=%u", request->RequestId() );
+               OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;request=%o", request );
+               
                reqPriority = request->Priority();
                if ( reqPriority > priority )
                    {
@@ -114,6 +125,7 @@
         if ( selectedRequest )
            {
            TN_DEBUG1( "CThumbnailRequestQueue::Process() - starting next request");
+           OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process - starting next request" );
                     
            iActiveRequests++;
            
@@ -121,6 +133,7 @@
            if (err != KErrNone)
                {
                TN_DEBUG1( "CThumbnailRequestQueue::Process() - starting request failed");
+               OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process - starting request failed" );
                
                selectedRequest->StartError(err);
                }
@@ -133,6 +146,7 @@
     
     TN_DEBUG3( "CThumbnailRequestQueue::Process() end - requests: %d, active requests: %d",
                iRequests.Count(), iActiveRequests );
+    OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTQUEUE_PROCESS, "CThumbnailRequestQueue::Process;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
     }
 
 
@@ -148,6 +162,7 @@
     
     TN_DEBUG3( "CThumbnailRequestQueue::AddRequestL() end - requests: %d, active requests: %d",
                iRequests.Count(), iActiveRequests );
+    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_ADDREQUESTL, "CThumbnailRequestQueue::AddRequestL;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
     }
 
 void CThumbnailRequestQueue::RemoveCompleted( CThumbnailRequestActive* aRequestAO)
@@ -162,6 +177,9 @@
              {
              // delete completed task
              TN_DEBUG3( "CThumbnailRequestQueue::RemoveCompleted() - deleted id = %d (0x%08x)", request->RequestId(), request);
+             OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;request=%o", request );
+             OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;request->RequestId()=%u", request->RequestId() );
+             
              delete request;
              request = NULL;
              iRequests.Remove( i );
@@ -175,6 +193,7 @@
      
      TN_DEBUG3( "CThumbnailRequestQueue::RemoveCompleted() end - requests: %d, active requests: %d",
                     iRequests.Count(), iActiveRequests );
+     OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILREQUESTQUEUE_REMOVECOMPLETED, "CThumbnailRequestQueue::RemoveCompleted;iRequests.Count()=%d;iActiveRequests=%d", iRequests.Count(), iActiveRequests );
     }
 
 
@@ -186,6 +205,7 @@
 TInt CThumbnailRequestQueue::CancelRequest( const TThumbnailRequestId aRequestId )
     {
     TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - request ID: %d", aRequestId);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
     
     TInt res = KErrNotFound;
 
@@ -200,6 +220,7 @@
                 iRequests[i]->AsyncCancel();
                 
                 TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - canceled request ID: %d", aRequestId);
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
                 }
             else
                 {
@@ -208,6 +229,7 @@
                 iRequests.Remove( i );
                           
                 TN_DEBUG2( "CThumbnailRequestQueue::CancelRequest() - removed request ID: %d", aRequestId);
+                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILREQUESTQUEUE_CANCELREQUEST, "CThumbnailRequestQueue::CancelRequest;aRequestId=%u", aRequestId );
                 }
 
             res = KErrNone;
@@ -232,6 +254,7 @@
                                              const TInt aNewPriority )
     {
     TN_DEBUG1( "CThumbnailRequestQueue::ChangePriority()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_CHANGEPRIORITY, "CThumbnailRequestQueue::ChangePriority" );
     
     TInt err = KErrNotFound;
     const TInt count = iRequests.Count();
@@ -259,6 +282,7 @@
 void CThumbnailRequestQueue::RequestComplete(CThumbnailRequestActive* aRequestAO)
     {
     TN_DEBUG2( "CThumbnailRequestQueue::RequestComplete(0x%08x)", aRequestAO);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILREQUESTQUEUE_REQUESTCOMPLETE, "CThumbnailRequestQueue::RequestComplete;aRequestAO=%o", aRequestAO );
     
     iActiveRequests--;
     if(iActiveRequests <= -1)
--- a/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailsession.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailclient/src/thumbnailsession.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -20,6 +20,10 @@
 #include "thumbnailsession.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailsessionTraces.h"
+#endif
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -32,6 +36,7 @@
     {
     // No implementation required
     TN_DEBUG1( "RThumbnailSession::RThumbnailSession");
+    OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_RTHUMBNAILSESSION, "RThumbnailSession::RThumbnailSession" );
     }
 
 
@@ -42,6 +47,7 @@
 TInt RThumbnailSession::Connect()
     { 
     TN_DEBUG1( "RThumbnailSession::Connect - start");
+    OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_CONNECT, "RThumbnailSession::Connect - start" );
     
     StartServer();
     
@@ -58,6 +64,7 @@
     while (retry <= 10 && err != KErrNone)
         {
         TN_DEBUG1( "RThumbnailSession::Connect - retry");
+        OstTrace0( TRACE_NORMAL, DUP1_RTHUMBNAILSESSION_CONNECT, "RThumbnailSession::Connect - retry" );
     
         User::After(retry * 50000);
         StartServer();
@@ -66,6 +73,7 @@
         }
     
     TN_DEBUG1( "RThumbnailSession::Connect - end");
+    OstTrace0( TRACE_NORMAL, DUP2_RTHUMBNAILSESSION_CONNECT, "RThumbnailSession::Connect - end" );
     
     return err;
     }
@@ -79,6 +87,7 @@
 void RThumbnailSession::Close()
     {
     TN_DEBUG1( "RThumbnailSession::Close");
+    OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_CLOSE, "RThumbnailSession::Close" );
     
     RSessionBase::Close();
     }
@@ -104,6 +113,7 @@
 TInt RThumbnailSession::StartServer()
     {
     TN_DEBUG1( "RThumbnailSession::StartServer - start");
+    OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer - start" );
     
     TInt res( KErrNone );
     // create server - if one of this name does not already exist
@@ -114,6 +124,7 @@
         // we don't exist already
         {
         TN_DEBUG1( "RThumbnailSession::StartServer - server process doesn't exist yet");
+        OstTrace0( TRACE_NORMAL, DUP1_RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer - server process doesn't exist yet" );
     
         RProcess server;
         // Create the server process
@@ -122,10 +133,12 @@
         if ( res != KErrNone )
             {
             TN_DEBUG2( "RThumbnailSession::StartServer - error creating process: %d", res);
+            OstTrace1( TRACE_NORMAL, DUP2_RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer;res=%d", res );
             return res;
             }
         
         TN_DEBUG1( "RThumbnailSession::StartServer - process created");
+        OstTrace0( TRACE_NORMAL, DUP3_RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer - process created" );
 
         // Process created successfully
         TRequestStatus status;
@@ -138,6 +151,7 @@
         if ( status != KErrNone )
             {
             TN_DEBUG2( "RThumbnailSession::StartServer - status: %d, closing", status.Int() );
+            OstTrace1( TRACE_NORMAL, DUP4_RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer;status.Int()=%d", status.Int() );
         
             server.Close();
             return status.Int();
@@ -148,6 +162,7 @@
         }
     
     TN_DEBUG1( "RThumbnailSession::StartServer - end");
+    OstTrace0( TRACE_NORMAL, DUP5_RTHUMBNAILSESSION_STARTSERVER, "RThumbnailSession::StartServer - end" );
     
     return res;
     }
@@ -225,6 +240,7 @@
     if( !aBuffer )
         {
         TN_DEBUG1( "RThumbnailSession::RequestSetThumbnailL() - !aBuffer KErrArgument");
+        OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_REQUESTSETTHUMBNAILL, "RThumbnailSession::RequestSetThumbnailL - !aBuffer KErrArgument" );
         User::Leave( KErrArgument );
         }
     
@@ -241,6 +257,7 @@
     if( !aBitmapHandle )
         {
         TN_DEBUG1( "RThumbnailSession::RequestSetThumbnailL() - !aBitmapHandle KErrArgument");
+        OstTrace0( TRACE_NORMAL, DUP1_RTHUMBNAILSESSION_REQUESTSETTHUMBNAILL, "RThumbnailSession::RequestSetThumbnailL - !aBitmapHandle KErrArgument" );
         User::Leave( KErrArgument );
         }
     
@@ -259,6 +276,7 @@
     while ( err == KErrServerBusy )
         {
         TN_DEBUG1( "RThumbnailSession::ReleaseBitmap() - server slots full");
+        OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_RELEASEBITMAP, "RThumbnailSession::ReleaseBitmap - server slots full" );
     
         err = Send( EReleaseBitmap, TIpcArgs( aBitmapHandle ));
         }
@@ -275,6 +293,7 @@
     while ( err == KErrServerBusy )
         {
         TN_DEBUG1( "RThumbnailSession::CancelRequest() - server slots full");
+        OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_CANCELREQUEST, "RThumbnailSession::CancelRequest - server slots full" );
     
         err = Send( ECancelRequest, TIpcArgs( aRequestId ));
         }
@@ -293,6 +312,7 @@
     while ( err == KErrServerBusy )
         {
         TN_DEBUG1( "RThumbnailSession::ChangePriority() - server slots full");
+        OstTrace0( TRACE_NORMAL, RTHUMBNAILSESSION_CHANGEPRIORITY, "RThumbnailSession::ChangePriority - server slots full" );
     
         err = Send( EChangePriority, TIpcArgs( aRequestId, aNewPriority ));
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/bwins/thumbnailmanagerqt.def	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,22 @@
+EXPORTS
+	?getThumbnail@ThumbnailManager@@QAEHABVQString@@PAXH@Z @ 1 NONAME ; int ThumbnailManager::getThumbnail(class QString const &, void *, int)
+	?qualityPreference@ThumbnailManager@@QBE?AW4QualityPreference@1@XZ @ 2 NONAME ; enum ThumbnailManager::QualityPreference ThumbnailManager::qualityPreference(void) const
+	?cancelRequest@ThumbnailManager@@QAE_NH@Z @ 3 NONAME ; bool ThumbnailManager::cancelRequest(int)
+	?setMode@ThumbnailManager@@QAE_NW4ThumbnailMode@1@@Z @ 4 NONAME ; bool ThumbnailManager::setMode(enum ThumbnailManager::ThumbnailMode)
+	?setQualityPreference@ThumbnailManager@@QAE_NW4QualityPreference@1@@Z @ 5 NONAME ; bool ThumbnailManager::setQualityPreference(enum ThumbnailManager::QualityPreference)
+	?setThumbnail@ThumbnailManager@@QAEHABVQPixmap@@ABVQString@@PAXH@Z @ 6 NONAME ; int ThumbnailManager::setThumbnail(class QPixmap const &, class QString const &, void *, int)
+	?thumbnailSize@ThumbnailManager@@QBE?AVQSize@@XZ @ 7 NONAME ; class QSize ThumbnailManager::thumbnailSize(void) const
+	??1ThumbnailManager@@UAE@XZ @ 8 NONAME ; ThumbnailManager::~ThumbnailManager(void)
+	??0ThumbnailManager@@QAE@PAVQObject@@@Z @ 9 NONAME ; ThumbnailManager::ThumbnailManager(class QObject *)
+	?setThumbnailSize@ThumbnailManager@@QAE_NW4ThumbnailSize@1@@Z @ 10 NONAME ; bool ThumbnailManager::setThumbnailSize(enum ThumbnailManager::ThumbnailSize)
+	?deleteThumbnails@ThumbnailManager@@QAEXABVQString@@@Z @ 11 NONAME ; void ThumbnailManager::deleteThumbnails(class QString const &)
+	?setThumbnailSize@ThumbnailManager@@QAE_NABVQSize@@@Z @ 12 NONAME ; bool ThumbnailManager::setThumbnailSize(class QSize const &)
+	?deleteThumbnails@ThumbnailManager@@QAEXK@Z @ 13 NONAME ; void ThumbnailManager::deleteThumbnails(unsigned long)
+	?changePriority@ThumbnailManager@@QAE_NHH@Z @ 14 NONAME ; bool ThumbnailManager::changePriority(int, int)
+	?getThumbnail@ThumbnailManager@@QAEHKPAXH@Z @ 15 NONAME ; int ThumbnailManager::getThumbnail(unsigned long, void *, int)
+	?mode@ThumbnailManager@@QBE?AW4ThumbnailMode@1@XZ @ 16 NONAME ; enum ThumbnailManager::ThumbnailMode ThumbnailManager::mode(void) const
+	?setThumbnail@ThumbnailManager@@QAEHABVQImage@@ABVQString@@PAXH@Z @ 17 NONAME ; int ThumbnailManager::setThumbnail(class QImage const &, class QString const &, void *, int)
+	?thumbnailReady@ThumbnailManager@@IAEXVQImage@@PAXHH@Z @ 18 NONAME ; void ThumbnailManager::thumbnailReady(class QImage, void *, int, int)
+	?thumbnailReady@ThumbnailManager@@IAEXVQPixmap@@PAXHH@Z @ 19 NONAME ; void ThumbnailManager::thumbnailReady(class QPixmap, void *, int, int)
+	?setThumbnail@ThumbnailManager@@QAEHABVQString@@00PAXH@Z @ 20 NONAME ; int ThumbnailManager::setThumbnail(class QString const &, class QString const &, class QString const &, void *, int)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/eabi/thumbnailmanagerqt.def	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,25 @@
+EXPORTS
+	_ZN16ThumbnailManager12getThumbnailERK7QStringPvi @ 1 NONAME
+	_ZN16ThumbnailManager12getThumbnailEmPvi @ 2 NONAME
+	_ZN16ThumbnailManager12setThumbnailERK7QPixmapRK7QStringPvi @ 3 NONAME
+	_ZN16ThumbnailManager13cancelRequestEi @ 4 NONAME
+	_ZN16ThumbnailManager14changePriorityEii @ 5 NONAME
+	_ZN16ThumbnailManager16deleteThumbnailsERK7QString @ 6 NONAME
+	_ZN16ThumbnailManager16deleteThumbnailsEm @ 7 NONAME
+	_ZN16ThumbnailManager16setThumbnailSizeENS_13ThumbnailSizeE @ 8 NONAME
+	_ZN16ThumbnailManager16setThumbnailSizeERK5QSize @ 9 NONAME
+	_ZN16ThumbnailManager20setQualityPreferenceENS_17QualityPreferenceE @ 10 NONAME
+	_ZN16ThumbnailManager7setModeENS_13ThumbnailModeE @ 11 NONAME
+	_ZN16ThumbnailManagerC1EP7QObject @ 12 NONAME
+	_ZN16ThumbnailManagerC2EP7QObject @ 13 NONAME
+	_ZN16ThumbnailManagerD0Ev @ 14 NONAME
+	_ZN16ThumbnailManagerD1Ev @ 15 NONAME
+	_ZN16ThumbnailManagerD2Ev @ 16 NONAME
+	_ZNK16ThumbnailManager13thumbnailSizeEv @ 17 NONAME
+	_ZNK16ThumbnailManager17qualityPreferenceEv @ 18 NONAME
+	_ZNK16ThumbnailManager4modeEv @ 19 NONAME
+	_ZN16ThumbnailManager12setThumbnailERK6QImageRK7QStringPvi @ 20 NONAME
+	_ZN16ThumbnailManager14thumbnailReadyE6QImagePvii @ 21 NONAME
+	_ZN16ThumbnailManager14thumbnailReadyE7QPixmapPvii @ 22 NONAME
+	_ZN16ThumbnailManager12setThumbnailERK7QStringS2_S2_Pvi @ 23 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/inc/thumbnailmanager_p_qt.h	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,226 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#ifndef THUMBNAILMANAGER_P_QT_H
+#define THUMBNAILMANAGER_P_QT_H
+
+#include <QObject>
+#include <QPixmap>
+
+#include <thumbnailmanager.h>
+#include <thumbnailmanager_qt.h>
+#include <thumbnailmanagerobserver.h>
+
+
+class QString;
+class QSize;
+class CThumbnailManager;
+class MThumbnailData;
+class CFbsBitmap;
+class QByteArray;
+
+class TestThumbnailManager;
+
+class ThumbnailManagerPrivate : 
+public QObject,
+public MThumbnailManagerObserver
+    {
+    Q_OBJECT
+public:
+
+    /**
+     * Constructor
+     */    
+        
+    ThumbnailManagerPrivate();
+
+    /**
+     * Destructor
+     */
+    virtual ~ThumbnailManagerPrivate();
+
+    /**
+     * Get quality versus performance preference.
+     */
+    ThumbnailManager::QualityPreference qualityPreference() const;
+    
+    /**
+     * Set quality versus performance preference.
+     */
+    bool setQualityPreference( ThumbnailManager::QualityPreference qualityPreference );
+    
+    /**
+     * Get the current desired size for thumbnail bitmaps.
+     */
+    QSize thumbnailSize() const;
+
+    /**
+     * Set desired size for thumbnail bitmaps.
+     */
+    bool setThumbnailSize( const QSize& aThumbnailSize );
+    
+    /**
+     * Set desired size for thumbnail bitmaps.
+     */
+    bool setThumbnailSize( ThumbnailManager::ThumbnailSize thumbnailSize );
+
+    /**
+     * Get current mode for thumbnail generation.
+     */
+    ThumbnailManager::ThumbnailMode mode() const;
+
+    /**
+     * Set mode for thumbnail generation. 
+     */
+    bool setMode( ThumbnailManager::ThumbnailMode mode );
+
+    /**
+     * 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. 
+     */
+    int getThumbnail( const QString& fileName, void * clientData, 
+            int priority );
+
+    /**
+     * 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. 
+     */    
+    int getThumbnail( unsigned long int aThumbnailId, void * clientData, 
+            int priority );
+    
+    /**
+     * Set a thumbnail for an object file generated from pixmap delivered.
+     * thumbnailReady() signal will be emited when the operation is complete.                           
+     */    
+    int setThumbnail( const QPixmap& source, const QString& fileName,
+            void * clientData, int priority );
+    
+    /**
+     * Set a thumbnail for an object file generated from pixmap delivered.
+     * thumbnailReady() signal will be emited when the operation is complete.                           
+     */    
+    int setThumbnail( const QImage& source, const QString& fileName,
+            void * clientData, int priority );
+    
+    /**
+     * Set a thumbnail for an object file generated from source file.
+     * thumbnailReady() signal will be emited when the operation is complete.                           
+     */    
+    int setThumbnail( const QString& sourceFileName, const QString& targetFileName,
+            const QString& mimeType, void * clientData, int priority );   
+    
+    /**
+     * Delete all thumbnails for a given object. This is an asynchronous
+     * operation, which always returns immediately.
+     */
+    void deleteThumbnails( const QString& fileName );
+
+    /**
+     * Delete all thumbnails for a given object. This is an asynchronous
+     * operation, which always returns immediately.
+     */
+    void deleteThumbnails( unsigned long int thumbnailId );
+    
+    /**
+     * Cancel a thumbnail operation.
+     */
+    bool cancelRequest( int id );
+
+    /**
+     * Change the priority of a queued thumbnail operation.
+     */
+    bool changePriority( int id, int newPriority );
+    
+    //FROM  MThumbnailManagerObserver
+    /**
+     * Preview thumbnail generation or loading is complete.
+     *
+     * This callback is not called unless EOptimizeForQualityWithPreview flag
+     * was specified.
+     *
+     * This callback is not called if any of the following is true:
+     * - an error occurred while processing the preview thumbnail
+     * - a suitable existing thumbnail was not found
+     * - a high quality thumbnail is already available
+     *
+     * The MThumbnailData instance is only valid for the duration of
+     * this call. It may not be stored for later use. If the client should
+     * want to use the bitmap data later, it can claim ownership of the
+     * CFbsBitmap object by calling DetachBitmap().
+     *
+     * @since S60 v5.0
+     * @param aThumbnail     An object representing the resulting thumbnail.
+     * @param aId            Request ID for the operation
+     */
+    void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+        TThumbnailRequestId aId );
+
+    /**
+     * Final thumbnail bitmap generation or loading is complete.
+     *
+     * The MThumbnailData instance is only valid for the duration of
+     * this call. It may not be stored for later use. If the client should
+     * want to use the bitmap data later, it can claim ownership of the
+     * CFbsBitmap object by calling DetachBitmap().
+     *
+     * @since S60 v5.0
+     * @param aError         Error code.
+     * @param aThumbnail     An object representing the resulting thumbnail.
+     * @param aId            Request ID for the operation.
+     */
+    void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
+        TThumbnailRequestId aId );
+    
+
+signals:
+
+    /**
+     * Final thumbnail bitmap generation or loading is complete.
+     */
+    void thumbnailReady( QPixmap , void * , int , int );
+
+    void thumbnailReady( QImage , void * , int , int );
+
+private:
+    /**
+     * Limit priority to presumed range.
+     */
+    int convertPriority(int basePriority);
+
+
+public:
+    
+    int connectionCounterImage;
+
+    int connectionCounterPixmap;
+    
+private:
+    
+    ThumbnailManager *q_ptr;
+
+    CThumbnailManager* iThumbnailManager;
+    
+    QByteArray* byteArray;
+
+    friend class ThumbnailManager;
+    friend class TestThumbnailManager;
+    
+};
+
+#endif // ThumbnailManager_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_p_qt.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,338 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#include <fbs.h>
+#include <QtCore>
+#include <qpixmap.h>
+#include <thumbnailmanager.h>
+#include <thumbnaildata.h>
+
+#include "thumbnailmanager_qt.h"
+#include "thumbnailmanager_p_qt.h"
+
+#include <e32base.h>
+
+const int ThumbnailMangerPriorityLowest = CActive::EPriorityIdle;
+const int ThumbnailMangerPriorityHighest = CActive::EPriorityHigh;
+
+ThumbnailManagerPrivate::ThumbnailManagerPrivate() : 
+    connectionCounterImage( 0 ),
+    connectionCounterPixmap( 0 ),
+    iThumbnailManager( NULL ), 
+    byteArray( NULL )
+{
+    TRAP_IGNORE(
+        iThumbnailManager = CThumbnailManager::NewL( *this );
+        iThumbnailManager->SetDisplayModeL( EColor64K );
+        );
+}
+
+ThumbnailManagerPrivate::~ThumbnailManagerPrivate()
+{
+    if( iThumbnailManager ){
+        delete iThumbnailManager;
+    }
+    if( byteArray ){
+        delete byteArray;
+    }
+}
+
+ThumbnailManager::QualityPreference ThumbnailManagerPrivate::qualityPreference() const
+{
+    return static_cast<ThumbnailManager::QualityPreference>( iThumbnailManager->QualityPreference() );
+}
+
+bool ThumbnailManagerPrivate::setQualityPreference( ThumbnailManager::QualityPreference qualityPreference )
+{
+    TRAPD( err, iThumbnailManager->SetQualityPreferenceL( static_cast<CThumbnailManager::TThumbnailQualityPreference>(qualityPreference) ));
+    return ( err == KErrNone );
+}
+
+QSize ThumbnailManagerPrivate::thumbnailSize() const
+{
+    TSize tsize( iThumbnailManager->ThumbnailSize() );
+    QSize qsize( tsize.iWidth, tsize.iHeight);
+    return qsize;
+}
+
+bool ThumbnailManagerPrivate::setThumbnailSize( const QSize& thumbnailSize )
+{
+    TRAPD( err, iThumbnailManager->SetThumbnailSizeL( TSize( thumbnailSize.width(), thumbnailSize.height() ) ) );
+    return ( err == KErrNone );
+}
+
+bool ThumbnailManagerPrivate::setThumbnailSize( ThumbnailManager::ThumbnailSize thumbnailSize )
+{
+    TThumbnailSize size(EUnknownThumbnailSize);
+    switch( thumbnailSize ){
+    case ThumbnailManager::ThumbnailSmall:
+        size = EListThumbnailSize;
+        break;
+    case ThumbnailManager::ThumbnailMedium:
+        size = EGridThumbnailSize;
+        break;
+    case ThumbnailManager::ThumbnailLarge:
+        size = EFullScreenThumbnailSize;
+        break;
+    default:
+        break;
+    }
+
+    TRAPD( err, iThumbnailManager->SetThumbnailSizeL( size ) );
+    return ( err == KErrNone );
+}
+
+ThumbnailManager::ThumbnailMode ThumbnailManagerPrivate::mode() const
+{
+    return static_cast<ThumbnailManager::ThumbnailMode>( iThumbnailManager->Flags() );
+}
+
+bool ThumbnailManagerPrivate::setMode( ThumbnailManager::ThumbnailMode mode )
+{
+    TRAPD( err, iThumbnailManager->SetFlagsL( static_cast<CThumbnailManager::TThumbnailFlags>( mode ) ) );
+    return ( err == KErrNone );
+}
+
+int ThumbnailManagerPrivate::getThumbnail( const QString& fileName, void* clientData, 
+        int priority )
+{
+    int result( -1 );
+    QString symbFileName( fileName );
+    
+    priority = convertPriority(priority);
+
+    if( symbFileName.contains( "/" ) )
+        symbFileName.replace( "/", "\\", Qt::CaseSensitive );
+    
+    RBuf buf;
+    TRAP_IGNORE( 
+        CleanupClosePushL( buf );
+        buf.CreateL( symbFileName.length() );
+        buf.Copy( symbFileName.utf16(), symbFileName.length() );
+        
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( buf, KNullDesC );
+        result = iThumbnailManager->GetThumbnailL( *objSrc, clientData, priority );
+        CleanupStack::PopAndDestroy( 2, &buf );
+    );
+    return result;
+}
+
+int ThumbnailManagerPrivate::getThumbnail( unsigned long int aThumbnailId, void* clientData, 
+        int priority )
+{
+    int result( -1 );
+    
+    priority = convertPriority(priority);
+    
+    TRAP_IGNORE( result = iThumbnailManager->GetThumbnailL( aThumbnailId, clientData, priority ));
+    return result;
+}    
+
+int ThumbnailManagerPrivate::setThumbnail( const QPixmap& source, const QString& fileName, 
+        void * clientData, int priority )
+{
+    int result( -1 );
+    RBuf file;
+    _LIT( mime, "image/png" );
+    
+    priority = convertPriority(priority);
+
+    if( !byteArray ){
+        byteArray = new QByteArray();
+    }
+    QBuffer buffer( byteArray );
+    buffer.open( QBuffer::ReadWrite );
+    QDataStream dataStream( &buffer );
+
+    dataStream << source;
+
+    int offset = ( dataStream.version() >= 5 ? 4 : 0 );
+    
+    TRAP_IGNORE( 
+        CleanupClosePushL( file );
+        file.CreateL( fileName.length() );
+        file.Copy( fileName.utf16(), fileName.length() );
+
+        HBufC* mimetype = HBufC::NewLC( 9 );
+        mimetype->Des() = mime();
+
+        TPtrC8* ptr = new TPtrC8( reinterpret_cast<const TUint8*>( byteArray->data() + offset ), byteArray->count() - offset );
+                
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( ptr, *mimetype, file );
+        result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority );
+        CleanupStack::PopAndDestroy( 3, &file );
+    );
+    return result;
+}
+
+int ThumbnailManagerPrivate::setThumbnail( const QImage& source, const QString& fileName, 
+        void * clientData, int priority )
+{
+    int result( -1 );
+    RBuf file;
+    _LIT( mime, "image/png" );
+
+    priority = convertPriority(priority);
+    
+    if( !byteArray ){
+        byteArray = new QByteArray();
+    }
+    QBuffer buffer( byteArray );
+    buffer.open( QBuffer::ReadWrite );
+    QDataStream dataStream( &buffer );
+
+    dataStream << source;
+
+    int offset = ( dataStream.version() >= 5 ? 4 : 0 );
+    
+    TRAP_IGNORE( 
+        CleanupClosePushL( file );
+        file.CreateL( fileName.length() );
+        file.Copy( fileName.utf16(), fileName.length() );
+
+        HBufC* mimetype = HBufC::NewLC( 9 );
+        mimetype->Des() = mime();
+
+        TPtrC8* ptr = new TPtrC8( reinterpret_cast<const TUint8*>( byteArray->data() + offset ), byteArray->count() - offset );
+                
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( ptr, *mimetype, file );
+        result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority );
+        CleanupStack::PopAndDestroy( 3, &file );
+    );
+    
+    return result;
+}
+
+int ThumbnailManagerPrivate::setThumbnail( const QString& sourceFileName, const QString& targetFileName,
+        const QString& mimeType, void * clientData, int priority )
+{
+    int result( -1 );
+    QString symbSourceFile( sourceFileName );
+    QString symbTargetFile( targetFileName );
+    RBuf sourceFile;
+    RBuf targetFile;
+    RBuf mime;
+
+    priority = convertPriority(priority);
+    
+    if( symbSourceFile.contains( "/" ) )
+        symbSourceFile.replace( "/", "\\", Qt::CaseSensitive );
+    
+    if( symbTargetFile.contains( "/" ) )
+        symbTargetFile.replace( "/", "\\", Qt::CaseSensitive );
+    
+    TRAP_IGNORE( 
+        CleanupClosePushL( sourceFile );
+        sourceFile.CreateL( symbSourceFile.length() );
+        sourceFile.Copy( symbSourceFile.utf16(), symbSourceFile.length() );
+        
+        CleanupClosePushL( targetFile );
+        targetFile.CreateL( symbTargetFile.length() );
+        targetFile.Copy( symbTargetFile.utf16(), symbTargetFile.length() );
+        
+        CleanupClosePushL( mime );
+        
+        if (mimeType.length())
+            {
+            mime.CreateL( mimeType.length() );
+            mime.Copy( mimeType.utf16(), mimeType.length() );
+            }
+        else
+            {
+            mime.Assign(KNullDesC().AllocL());
+            }
+                
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewLC( sourceFile, targetFile, mime );
+        result = iThumbnailManager->SetThumbnailL( *objSrc, clientData, priority );
+        CleanupStack::PopAndDestroy( 4, &sourceFile );
+    );
+    
+    return result;
+}
+
+void ThumbnailManagerPrivate::deleteThumbnails( const QString& fileName )
+{
+    QString symbFileName( fileName );
+
+    if( symbFileName.contains( "/" ) )
+        symbFileName.replace( "/", "\\", Qt::CaseSensitive );
+
+    RBuf buf;
+    TRAP_IGNORE( CleanupClosePushL( buf );
+        buf.CreateL( symbFileName.length() );
+        buf.Copy( symbFileName.utf16(), symbFileName.length() );
+        CThumbnailObjectSource* objSrc = CThumbnailObjectSource::NewL( buf, KNullDesC );
+        iThumbnailManager->DeleteThumbnails( *objSrc );
+        CleanupStack::PopAndDestroy( &buf );
+        delete objSrc;
+    );
+}
+
+void ThumbnailManagerPrivate::deleteThumbnails( unsigned long int thumbnailId )
+{
+    iThumbnailManager->DeleteThumbnails( thumbnailId );
+}
+
+bool ThumbnailManagerPrivate::cancelRequest( int id )
+{
+    return ( iThumbnailManager->CancelRequest( id ) == KErrNone );
+}
+
+bool ThumbnailManagerPrivate::changePriority( int id, int newPriority )
+{
+    newPriority = convertPriority(newPriority);
+    
+    return ( iThumbnailManager->ChangePriority( id, newPriority ) == KErrNone );
+}
+
+int ThumbnailManagerPrivate::convertPriority(int basePriority)
+{
+    return qBound(ThumbnailMangerPriorityLowest, basePriority, ThumbnailMangerPriorityHighest);    
+}
+
+void ThumbnailManagerPrivate::ThumbnailPreviewReady( MThumbnailData& /*aThumbnail*/,
+    TThumbnailRequestId /*aId*/ )
+{
+}
+
+void ThumbnailManagerPrivate::ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
+    TThumbnailRequestId aId )
+{
+    if( byteArray ){
+        delete byteArray;
+        byteArray = NULL;
+    }
+    
+    if (connectionCounterImage || connectionCounterPixmap) {
+		QPixmap pixmap;
+
+        if (aError == KErrNone) {
+            pixmap = QPixmap::fromSymbianCFbsBitmap(aThumbnail.Bitmap());
+        } else {
+            pixmap = QPixmap(); 
+        }
+
+        if (connectionCounterImage) {
+            emit q_ptr->thumbnailReady(pixmap.toImage(), aThumbnail.ClientData(), aId, aError);
+        }
+        
+        if (connectionCounterPixmap) {
+            emit q_ptr->thumbnailReady(pixmap, aThumbnail.ClientData(), aId, aError);
+        }
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/src/thumbnailmanager_qt.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#include <QSize>
+#include "thumbnailmanager_qt.h"
+#include "thumbnailmanager_p_qt.h"
+ 
+Q_DECL_EXPORT ThumbnailManager::ThumbnailManager( QObject* parentPtr ) :
+QObject( parentPtr ),
+d( new ThumbnailManagerPrivate() )
+{
+    d->q_ptr = this; 
+}
+
+
+Q_DECL_EXPORT ThumbnailManager::~ThumbnailManager()
+{
+    if( NULL != d ){
+        delete d;
+    }
+}
+
+Q_DECL_EXPORT ThumbnailManager::QualityPreference ThumbnailManager::qualityPreference() const
+{
+    return d->qualityPreference();
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::setQualityPreference( QualityPreference
+    qualityPreference )
+{
+    return d->setQualityPreference( qualityPreference );
+}
+ 
+Q_DECL_EXPORT QSize ThumbnailManager::thumbnailSize() const
+{
+    return d->thumbnailSize();
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::setThumbnailSize( const QSize& thumbnailSize )
+{
+    return d->setThumbnailSize( thumbnailSize );
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::setThumbnailSize( ThumbnailSize thumbnailSize )
+{
+    return d->setThumbnailSize( thumbnailSize );
+}
+
+Q_DECL_EXPORT ThumbnailManager::ThumbnailMode ThumbnailManager::mode() const
+{
+    return d->mode();
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::setMode( ThumbnailMode mode )
+{
+    return d->setMode( mode );
+}
+
+Q_DECL_EXPORT int ThumbnailManager::getThumbnail( const QString& fileName, void * clientData, 
+        int priority )
+{
+    return d->getThumbnail( fileName, clientData, priority );
+}
+
+Q_DECL_EXPORT int ThumbnailManager::getThumbnail( unsigned long int thumbnailId, void * clientData, 
+        int priority )
+{
+    return d->getThumbnail( thumbnailId, clientData, priority );
+}    
+
+Q_DECL_EXPORT int ThumbnailManager::setThumbnail( const QPixmap& source, const QString& filename,
+        void * clientData , int priority )
+{
+    return d->setThumbnail( source, filename, clientData, priority );
+}
+
+Q_DECL_EXPORT int ThumbnailManager::setThumbnail( const QImage& source, const QString& filename,
+        void * clientData , int priority )
+{
+    return d->setThumbnail( source, filename, clientData, priority );
+}
+
+Q_DECL_EXPORT int ThumbnailManager::setThumbnail( const QString& sourceFileName, const QString& targetFileName,
+        const QString& mimeType, void * clientData , int priority )
+{
+    return d->setThumbnail( sourceFileName, targetFileName, mimeType, clientData, priority );
+}
+
+Q_DECL_EXPORT void ThumbnailManager::deleteThumbnails( const QString& fileName )
+{
+    d->deleteThumbnails( fileName );
+}
+
+Q_DECL_EXPORT void ThumbnailManager::deleteThumbnails( unsigned long int thumbnailId )
+{
+    d->deleteThumbnails( thumbnailId );
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::cancelRequest( int id )
+{
+    return d->cancelRequest( id );
+}
+
+Q_DECL_EXPORT bool ThumbnailManager::changePriority( int id, int newPriority )
+{
+    return d->changePriority( id, newPriority );
+}
+
+void ThumbnailManager::connectNotify(const char *signal)
+{
+    if (QLatin1String(signal) == SIGNAL(thumbnailReady(QPixmap,void*,int,int))) {
+        d->connectionCounterPixmap++;
+    } else if (QLatin1String(signal) == SIGNAL(thumbnailReady(QImage,void*,int,int))) {
+        d->connectionCounterImage++;
+    }
+}
+
+void ThumbnailManager::disconnectNotify(const char *signal)
+{   
+    if (QLatin1String(signal) == SIGNAL(thumbnailReady(QPixmap,void*,int,int))) {
+        d->connectionCounterPixmap--;
+    } else if (QLatin1String(signal) == SIGNAL(thumbnailReady(QImage,void*,int,int))) {
+        d->connectionCounterImage--;
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/thumbnailmanagerqt.iby	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#ifndef __THUMBNAILMANAGER_QT_IBY__
+#define __THUMBNAILMANAGER_QT_IBY__
+
+#include <bldvariant.hrh>
+
+file=ABI_DIR\BUILD_DIR\thumbnailmanagerqt.dll                       SHARED_LIB_DIR\thumbnailmanagerqt.dll
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/thumbnailmanagerqt.pro	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,52 @@
+#
+# Copyright (c) 2009 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: 
+#
+#
+
+TEMPLATE = lib
+TARGET = thumbnailmanagerqt
+
+symbian:TARGET.UID3=0x20029F65
+
+DEFINES+=TNMQT_DLL
+
+INCLUDEPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE
+
+TARGET.CAPABILITY = CAP_GENERAL_DLL
+
+symbian:TARGET.EPOCALLOWDLLDATA = 1
+
+# Input
+LIBS +=     -lthumbnailmanager.dll \
+            -lfbscli.dll
+
+
+SOURCES += src/thumbnailmanager_qt.cpp \
+           src/thumbnailmanager_p_qt.cpp  
+          
+HEADERS += ../../../imagehandling_plat/thumbnailmanager_api/inc/thumbnailmanager_qt.h \
+           inc/thumbnailmanager_p_qt.h  
+
+BLD_INF_RULES.prj_exports += "thumbnailmanagerqt.iby /epoc32/rom/include/core/mw/"
+
+myDefInclude = "NOSTRICTDEF" \
+"$${LITERAL_HASH}if defined(WINS)"\
+"DEFFILE  bwins/thumbnailmanagerqt.def "\
+"$${LITERAL_HASH}else "\
+"DEFFILE  eabi/thumbnailmanagerqt.def "\
+"$${LITERAL_HASH}endif"
+MMP_RULES += myDefInclude
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/moc_thumbnailmanager_p_qt.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,99 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'thumbnailmanager_p_qt.h'
+**
+** Created: Fri 30. Apr 11:26:04 2010
+**      by: The Qt Meta Object Compiler version 62 (Qt 4.6.3)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "../inc/thumbnailmanager_p_qt.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'thumbnailmanager_p_qt.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 62
+#error "This file was generated using the moc from 4.6.3. It"
+#error "cannot be used with the include files from this version of Qt."
+#error "(The moc has changed too much.)"
+#endif
+
+QT_BEGIN_MOC_NAMESPACE
+static const uint qt_meta_data_ThumbnailManagerPrivate[] = {
+
+ // content:
+       4,       // revision
+       0,       // classname
+       0,    0, // classinfo
+       2,   14, // methods
+       0,    0, // properties
+       0,    0, // enums/sets
+       0,    0, // constructors
+       0,       // flags
+       2,       // signalCount
+
+ // signals: signature, parameters, type, tag, flags
+      29,   25,   24,   24, 0x05,
+      67,   25,   24,   24, 0x05,
+
+       0        // eod
+};
+
+static const char qt_meta_stringdata_ThumbnailManagerPrivate[] = {
+    "ThumbnailManagerPrivate\0\0,,,\0"
+    "thumbnailReady(QPixmap,void*,int,int)\0"
+    "thumbnailReady(QImage,void*,int,int)\0"
+};
+
+const QMetaObject ThumbnailManagerPrivate::staticMetaObject = {
+    { &QObject::staticMetaObject, qt_meta_stringdata_ThumbnailManagerPrivate,
+      qt_meta_data_ThumbnailManagerPrivate, 0 }
+};
+
+#ifdef Q_NO_DATA_RELOCATION
+const QMetaObject &ThumbnailManagerPrivate::getStaticMetaObject() { return staticMetaObject; }
+#endif //Q_NO_DATA_RELOCATION
+
+const QMetaObject *ThumbnailManagerPrivate::metaObject() const
+{
+    return QObject::d_ptr->metaObject ? QObject::d_ptr->metaObject : &staticMetaObject;
+}
+
+void *ThumbnailManagerPrivate::qt_metacast(const char *_clname)
+{
+    if (!_clname) return 0;
+    if (!strcmp(_clname, qt_meta_stringdata_ThumbnailManagerPrivate))
+        return static_cast<void*>(const_cast< ThumbnailManagerPrivate*>(this));
+    if (!strcmp(_clname, "MThumbnailManagerObserver"))
+        return static_cast< MThumbnailManagerObserver*>(const_cast< ThumbnailManagerPrivate*>(this));
+    return QObject::qt_metacast(_clname);
+}
+
+int ThumbnailManagerPrivate::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+    _id = QObject::qt_metacall(_c, _id, _a);
+    if (_id < 0)
+        return _id;
+    if (_c == QMetaObject::InvokeMetaMethod) {
+        switch (_id) {
+        case 0: thumbnailReady((*reinterpret_cast< QPixmap(*)>(_a[1])),(*reinterpret_cast< void*(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4]))); break;
+        case 1: thumbnailReady((*reinterpret_cast< QImage(*)>(_a[1])),(*reinterpret_cast< void*(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4]))); break;
+        default: ;
+        }
+        _id -= 2;
+    }
+    return _id;
+}
+
+// SIGNAL 0
+void ThumbnailManagerPrivate::thumbnailReady(QPixmap _t1, void * _t2, int _t3, int _t4)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)), const_cast<void*>(reinterpret_cast<const void*>(&_t4)) };
+    QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void ThumbnailManagerPrivate::thumbnailReady(QImage _t1, void * _t2, int _t3, int _t4)
+{
+    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)), const_cast<void*>(reinterpret_cast<const void*>(&_t3)), const_cast<void*>(reinterpret_cast<const void*>(&_t4)) };
+    QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+QT_END_MOC_NAMESPACE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,495 @@
+/*
+* Copyright (c) 2009 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: 
+*
+*/
+
+#include <QtGui>
+#include <QtTest/QtTest>
+#include <QEventLoop>
+#include <QDebug>
+#include <QImage>
+#include <fbs.h>
+
+#include <thumbnaildata.h>
+
+#include <thumbnailmanager_qt.h>
+#include "thumbnailmanager_p_qt.h"
+
+class TestThumbnailManager : public QObject
+{
+    Q_OBJECT
+
+public:
+    TestThumbnailManager(): QObject(), wrapper( NULL ), ipixmap( NULL ) {};
+
+public slots:
+    void thumbnailReady( QPixmap , void * , int , int );
+
+    void thumbnailReady_p( QPixmap , void * , int , int );
+
+    void thumbnailReadyPixmap( QPixmap , void * , int , int );
+
+    void thumbnailReadyImage( QImage , void * , int , int );
+
+private slots:
+    void init();
+    void cleanup();
+
+    void testThumbnailReadyError();
+    void testThumbnailReadyValid();
+    
+    void testThumbnailReadyImage();
+    void testThumbnailReadyPixmap();
+    void testThumbnailReadyImageAndPixmap();
+
+    void createAndDestroy();
+    void qualityPreference();
+    void thumbnailSize();
+    void thumbnailMode();
+    
+    void getThumbnailByName();
+    void getThumbnailById();
+    void setThumbnail();
+    void setThumbnailFromPath();
+    void cancelRequest();
+    void changePriority();
+    void deleteThumbnailsByName();
+    void deleteThumbnailsById();
+
+    void testPriorities_data();
+    void testPriorities();
+
+
+public:
+    ThumbnailManager *wrapper;
+    ThumbnailManagerPrivate *wrapper_p;
+    
+    QPixmap* ipixmap;
+    
+    int aid; 
+    int aerrorCode;
+    bool pixmapNull;
+    
+    //pixmap
+    int pixmapId;
+    int pixmapErr;
+    void *pixmapDataPtr;
+    
+    //image
+    int imageId;
+    int imageErr;
+    void *imageDataPtr;
+    
+};
+
+enum testDataType{
+    AllNull,
+    BitmapValid
+};
+
+class TestThumbnailData : public MThumbnailData
+{
+public:
+    static const int BITMAP_WIDTH = 26;
+    static const int BITMAP_HEIGHT = 15;
+    
+public:
+    TestThumbnailData( testDataType type, void* clientData_ = 0) : bitmap(0), clientData(clientData_)
+    {
+        switch( type ){
+        case AllNull:
+        break;
+
+        case BitmapValid:
+            bitmap = new CFbsBitmap();
+            QVERIFY( !bitmap->Create(TSize(BITMAP_WIDTH, BITMAP_HEIGHT),EColor64K) );
+            QVERIFY( !bitmap->Load( _L("c:\\tnmwrapper_tsrc.mbm") ) );
+        break;
+        };
+    
+    };
+
+    ~TestThumbnailData() { 
+        if( bitmap ) {
+            delete bitmap;
+        }
+    };
+    
+    CFbsBitmap* Bitmap() {return bitmap;};
+
+    CFbsBitmap* DetachBitmap() {return bitmap;};
+
+    TAny* ClientData(){ return clientData; };
+
+public:
+    CFbsBitmap* bitmap;
+    TAny* clientData;
+
+};
+
+// --- test initialization ---
+
+void TestThumbnailManager::init()
+{
+    wrapper = new ThumbnailManager();
+    connect( wrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+            this, SLOT( thumbnailReady( QPixmap , void* , int , int )));
+    
+    wrapper_p = wrapper->d; //new ThumbnailManagerPrivate();
+}
+    
+void TestThumbnailManager::cleanup()
+{
+    disconnect( wrapper, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+            this, SLOT( thumbnailReady( QPixmap , void* , int , int )));
+    delete wrapper;
+    wrapper = NULL;
+
+    if( ipixmap ) {
+        delete ipixmap;
+        ipixmap = NULL;
+        }
+ 
+ //   delete wrapper_p;
+}
+
+// --- test ---
+
+/**
+ * Simple create and destroy.
+ */
+void TestThumbnailManager::createAndDestroy()
+{
+    //empty
+}
+
+/**
+ * Checking quality preference flag.
+ */
+void TestThumbnailManager::qualityPreference()
+{
+    QVERIFY( wrapper->setQualityPreference( ThumbnailManager::OptimizeForQuality ) );
+    QVERIFY( wrapper->setQualityPreference( ThumbnailManager::OptimizeForPerformance ) );
+    QVERIFY( wrapper->qualityPreference() == ThumbnailManager::OptimizeForPerformance );
+}
+
+/**
+ * Checking thumbnail size flag.
+ */
+void TestThumbnailManager::thumbnailSize()
+{
+    QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailSmall ) );
+    QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailMedium ) );
+    QVERIFY( wrapper->setThumbnailSize( ThumbnailManager::ThumbnailLarge ) );
+    QVERIFY( wrapper->setThumbnailSize( QSize( 100, 100 ) ) );
+    QVERIFY( wrapper->thumbnailSize() == QSize( 100, 100 ) );
+}
+
+/**
+ * Checking thumbnail mode flag.
+ */
+void TestThumbnailManager::thumbnailMode()
+{
+    QVERIFY( wrapper->setMode( ThumbnailManager::Default ) );
+    QVERIFY( wrapper->setMode( ThumbnailManager::AllowAnySize ) );
+    QVERIFY( wrapper->setMode( ThumbnailManager::DoNotCreate ) );
+    
+    QVERIFY( wrapper->setMode( ThumbnailManager::CropToAspectRatio ) );
+    QVERIFY( wrapper->mode() == ThumbnailManager::CropToAspectRatio );
+}
+
+/**
+ * Checking thumbnail mode flag.
+ */
+void TestThumbnailManager::getThumbnailByName()
+{
+    wrapper->setMode( ThumbnailManager::CropToAspectRatio );
+    wrapper->setThumbnailSize( QSize( 200, 50 )); 
+    QVERIFY( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ) != -1 );
+    QVERIFY( wrapper->getThumbnail( "c:/tnmwrapper_tsrc.png", NULL, -99 ) != -1 );
+}
+
+void TestThumbnailManager::getThumbnailById()
+{
+    wrapper->setMode( ThumbnailManager::CropToAspectRatio );
+    wrapper->setThumbnailSize( QSize( 200, 50 )); 
+    QVERIFY( wrapper->getThumbnail( 2, NULL, -99 ) != -1 );
+}
+
+void TestThumbnailManager::setThumbnail()
+{
+    ipixmap = new QPixmap();
+    ipixmap->load( "c:\\tnmwrapper.bmp" );
+    wrapper->setMode( ThumbnailManager::CropToAspectRatio );
+    wrapper->setThumbnailSize(ThumbnailManager::ThumbnailMedium); 
+    QVERIFY( wrapper->setThumbnail( *ipixmap, "c:\\tnmwrapper_tsrc.png" ) != -1 );
+    ipixmap->fill();
+    QVERIFY( wrapper->setThumbnail( *ipixmap, "c:\\tnmwrapper_tsrc.png" ) != -1 );
+
+	//QI,mage
+	QImage *img = new QImage("c:\\tnmwrapper.bmp");
+    QVERIFY( wrapper->setThumbnail( *img, "c:\\tnmwrapper_tsrc.png" ) != -1 );
+    img->fill(0);
+    QVERIFY( wrapper->setThumbnail( *img, "c:\\tnmwrapper_tsrc.png" ) != -1 );
+	delete img;
+}
+
+void TestThumbnailManager::setThumbnailFromPath()
+{ 
+    // normal URI
+    QVERIFY( wrapper->setThumbnail( "c:\\tnmwrapper_tsrc.png", "c:\\tnmwrapper_tsrc.vcf", "contact/x-vcard" ) != -1 );
+    
+    // virtual URI
+    QVERIFY( wrapper->setThumbnail( "c:\\tnmwrapper_tsrc.png", "c:tnmwrapper_tsrc.vcf", "contact/x-vcard" ) != -1 );
+    
+    // no mime
+    QVERIFY( wrapper->setThumbnail( "c:\\tnmwrapper_tsrc.png", "c:tnmwrapper_tsrc.vcf" ) != -1 );
+}
+
+void TestThumbnailManager::cancelRequest()
+{
+    wrapper->setMode( ThumbnailManager::CropToAspectRatio );
+    wrapper->setThumbnailSize( QSize( 200, 50 )); 
+    QVERIFY( wrapper->cancelRequest( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ) ) );
+    QVERIFY( !wrapper->cancelRequest( 123 ) ); //test request not found
+}
+
+void TestThumbnailManager::changePriority()
+{
+    wrapper->setMode( ThumbnailManager::CropToAspectRatio );
+    wrapper->setThumbnailSize( QSize( 200, 50 )); 
+    QVERIFY( wrapper->changePriority( wrapper->getThumbnail( "c:\\tnmwrapper_tsrc.png", NULL, -99 ), -80 ) );
+}
+
+void TestThumbnailManager::deleteThumbnailsByName()
+{
+    wrapper->deleteThumbnails( "c:/tnmwrapper_tsrc.png" );
+    wrapper->deleteThumbnails( "c:\\tnmwrapper_tsrc.png" );
+}
+
+void TestThumbnailManager::deleteThumbnailsById()
+{
+    wrapper->deleteThumbnails( 2 );
+}
+
+void TestThumbnailManager::testThumbnailReadyError()
+{
+    int a=0;
+
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )), Qt::DirectConnection ) );
+
+    //test bytearray not null and thumbnail error
+    TestThumbnailData tdata1(AllNull);
+    aid = 12; 
+    aerrorCode = -1;
+    pixmapNull = true;
+    wrapper_p->ThumbnailReady( aerrorCode, tdata1, aid );
+    
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )));
+}
+
+void TestThumbnailManager::testThumbnailReadyValid()
+{
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )), Qt::DirectConnection ) );
+
+    TestThumbnailData tdata3( BitmapValid );
+    aid = 10; 
+    aerrorCode = 0;
+    pixmapNull = false;
+    wrapper_p->ThumbnailReady( aerrorCode, tdata3, aid );
+
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReady_p( QPixmap , void* , int , int )));
+}
+
+void TestThumbnailManager::testThumbnailReadyImage()
+{
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QImage , void* , int, int ) ),
+        this, SLOT( thumbnailReadyImage( QImage , void* , int , int )), Qt::DirectConnection ) );
+
+    pixmapId = 0;
+    pixmapErr = 0;
+    pixmapDataPtr = 0;
+
+    imageId = 432;
+    imageErr = KErrNone;
+    imageDataPtr = reinterpret_cast<void*>(0x1234);
+    
+    TestThumbnailData td = TestThumbnailData(BitmapValid);
+    td.clientData = imageDataPtr;
+
+    wrapper_p->ThumbnailReady(imageErr, td, imageId);
+    
+    QVERIFY(td.bitmap!=0);
+    QVERIFY(td.bitmap->SizeInPixels().iWidth == TestThumbnailData::BITMAP_WIDTH);
+    QVERIFY(td.bitmap->SizeInPixels().iHeight == TestThumbnailData::BITMAP_HEIGHT);
+
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QImage , void* , int, int ) ),
+        this, SLOT( thumbnailReadyImage(QImage, void* , int , int )));  
+}
+
+void TestThumbnailManager::testThumbnailReadyPixmap()
+{
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReadyPixmap( QPixmap , void* , int , int )), Qt::DirectConnection ) );
+
+    pixmapId = 432;
+    pixmapErr = -7;
+    pixmapDataPtr = reinterpret_cast<void*>(0x1234);
+
+    imageId = 0;
+    imageErr = 0;
+    imageDataPtr = 0;
+
+    TestThumbnailData td = TestThumbnailData(BitmapValid);
+    td.clientData = pixmapDataPtr;
+
+    wrapper_p->ThumbnailReady(pixmapErr, td, pixmapId);
+    
+    QVERIFY(td.bitmap!=0);
+    QVERIFY(td.bitmap->SizeInPixels().iWidth == TestThumbnailData::BITMAP_WIDTH);
+    QVERIFY(td.bitmap->SizeInPixels().iHeight == TestThumbnailData::BITMAP_HEIGHT);
+
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReadyPixmap( QPixmap , void* , int , int )));
+}
+
+void TestThumbnailManager::testThumbnailReadyImageAndPixmap()
+{
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReadyPixmap( QPixmap , void* , int , int )), Qt::DirectConnection ) );
+
+    QVERIFY( connect( wrapper_p, SIGNAL(thumbnailReady( QImage , void* , int, int ) ),
+        this, SLOT( thumbnailReadyImage( QImage , void* , int , int )), Qt::DirectConnection ) );
+
+    pixmapId = 432;
+    pixmapErr = KErrNone;
+    pixmapDataPtr = reinterpret_cast<void*>(0x1234);
+
+    imageId = pixmapId;
+    imageErr = pixmapErr;
+    imageDataPtr = pixmapDataPtr;
+
+    TestThumbnailData td = TestThumbnailData(BitmapValid);
+    td.clientData = pixmapDataPtr;
+
+    wrapper_p->ThumbnailReady(pixmapErr, td, pixmapId);
+
+    QVERIFY(td.bitmap!=0);
+    QVERIFY(td.bitmap->SizeInPixels().iWidth == TestThumbnailData::BITMAP_WIDTH);
+    QVERIFY(td.bitmap->SizeInPixels().iHeight == TestThumbnailData::BITMAP_HEIGHT);
+
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QImage , void* , int, int ) ),
+        this, SLOT( thumbnailReadyImage( QImage , void* , int , int )));
+
+    disconnect( wrapper_p, SIGNAL(thumbnailReady( QPixmap , void* , int, int ) ),
+        this, SLOT( thumbnailReadyPixmap( QPixmap , void* , int , int )));    
+}
+
+void TestThumbnailManager::testPriorities_data()
+{
+    // note: current bounds for priorites are [-100:20] (from: CActive::TPriority)
+    
+    QTest::addColumn<int>("priority");
+    QTest::addColumn<int>("expectedPriority");
+    QTest::newRow("priority 0") << 0 << 0;
+    QTest::newRow("priority 10") << 10 << 10;
+    QTest::newRow("priority 20") << 20 << 20;
+    QTest::newRow("priority 100") << 100 << 20;
+    QTest::newRow("priority 200") << 200 << 20;
+    QTest::newRow("priority -10") << -10 << -10;
+    QTest::newRow("priority -100") << -100 << -100;
+    QTest::newRow("priority -200") << -200 << -100;
+}
+
+void TestThumbnailManager::testPriorities()
+{
+    QFETCH(int, priority);
+    QFETCH(int, expectedPriority);
+    QCOMPARE(wrapper_p->convertPriority(priority), expectedPriority);
+}
+ 
+
+// --- private slots - callback  ---
+
+void TestThumbnailManager::thumbnailReady( QPixmap pixmap, void *clientData, int id, int errorCode )
+{
+    //do nothing, we dont test Thumbnail Manager's functionality, we just use it
+    Q_UNUSED( pixmap );
+    Q_UNUSED( clientData );
+    Q_UNUSED( id );
+    Q_UNUSED( errorCode );
+}
+
+void TestThumbnailManager::thumbnailReady_p( QPixmap pixmap, void * clientData, int id, int errorCode )
+{
+    Q_UNUSED( clientData );
+    QVERIFY( pixmap.isNull() == pixmapNull );
+    QVERIFY( errorCode == aerrorCode );
+    QVERIFY( id == aid );
+}
+
+void TestThumbnailManager::thumbnailReadyPixmap( QPixmap pixmap, void *clientData, int id, int errorCode )
+{
+    Q_UNUSED( pixmap );
+    QVERIFY( errorCode == pixmapErr );
+    QVERIFY( id == pixmapId );
+    QVERIFY( clientData = pixmapDataPtr );
+}
+
+void TestThumbnailManager::thumbnailReadyImage( QImage image, void *clientData, int id, int errorCode )
+{
+    Q_UNUSED( image );
+    QVERIFY( errorCode == imageErr );
+    QVERIFY( id == imageId );
+    QVERIFY( clientData = imageDataPtr );
+}
+
+#ifdef _LOG_TO_C_
+    int main (int argc, char* argv[]) 
+    {
+        QApplication app(argc, argv);
+        TestThumbnailManager tc;
+        int c = 3;
+        char* v[] = {argv[0], "-o", "c:/test.txt"};
+        return QTest::qExec(&tc, c, v);
+    }
+#else
+    int main (int argc, char* argv[]) 
+    {
+        for ( int i=0;i<argc; i++){
+            if (strcmp(argv[i], "-o")==0 && i+1 <argc ){
+                //let's make sure that folder specified after -o exists
+                QDir file( QString::fromLatin1( argv[i+1] ));
+                QString s = file.absolutePath ();
+                s = s.left( s.lastIndexOf(file.dirName()) );
+                if ( !file.exists(s) ){
+                    file.mkpath(s);
+                }
+            }
+        }
+        
+        QApplication app(argc, argv);
+        QTEST_DISABLE_KEYPAD_NAVIGATION
+        TestThumbnailManager tc;
+        return QTest::qExec(&tc, argc, argv);
+    }
+#endif
+	
+#include "test_qtnmwrapper.moc"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.pkg	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,32 @@
+; test_qtnmwrapper_template.pkg generated by qmake at 2010-03-02T10:38:07
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+; SIS header: name, uid, version
+#{"test_qtnmwrapper"},(0xE33f73a5),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+; Manual PKG pre-rules from PRO files
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+
+; Executable and default resource files
+"/epoc32/release/armv5/urel/test_qtnmwrapper.exe"    - "!:\sys\bin\test_qtnmwrapper.exe"
+"/epoc32/data/z/resource/apps/test_qtnmwrapper.rsc"    - "!:\resource\apps\test_qtnmwrapper.rsc"
+"/epoc32/data/z/private/10003a3f/import/apps/test_qtnmwrapper_reg.rsc"    - "!:\private\10003a3f\import\apps\test_qtnmwrapper_reg.rsc"
+; DEPLOYMENT
+"/sf/mw/imghandling/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.png"    - "C:\tnmwrapper_tsrc.png"
+"/sf/mw/imghandling/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.mbm"    - "C:\tnmwrapper_tsrc.mbm"
+
+; Manual PKG post-rules from PRO files
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/test_qtnmwrapper.pro	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,46 @@
+#
+# Copyright (c) 2009 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: 
+#
+#
+
+TEMPLATE = app
+TARGET = test_qtnmwrapper
+CONFIG += symbian_test
+
+INCLUDEPATH += .
+INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \
+               /epoc32/include/mw/qt \
+               /epoc32/include/mw/qttest \
+               ../inc
+
+TARGET.CAPABILITY = ALL -TCB
+#DEFINES += _LOG_TO_C_
+
+# Input
+LIBS +=     -lthumbnailmanager \
+            -lfbscli \
+            -lthumbnailmanagerqt
+
+SOURCES +=  test_qtnmwrapper.cpp \
+            ../src/thumbnailmanager_p_qt.cpp
+            
+HEADERS += ../inc/thumbnailmanager_p_qt.h
+
+CONFIG += qtestlib console
+
+icons.sources += tnmwrapper_tsrc.png
+icons.sources += tnmwrapper_tsrc.mbm
+icons.path = /
+DEPLOYMENT += icons
Binary file imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.mbm has changed
Binary file imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc/tnmwrapper_tsrc.png has changed
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/group/thumbnailserver.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/group/thumbnailserver.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -68,7 +68,7 @@
 
 USERINCLUDE             ../inc
 USERINCLUDE             ../../inc
-USERINCLUDE             ../../tmcommon/inc
+USERINCLUDE             ../../tmcommon/inc ../traces
 
 LIBRARY                 fbscli.lib
 LIBRARY                 euser.lib
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildecodetask.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildecodetask.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -26,6 +26,11 @@
 #include "thumbnailserver.h"
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnaildecodetaskTraces.h"
+#endif
+
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -41,6 +46,8 @@
     {
     TN_DEBUG3( "CThumbnailDecodeTask(0x%08x)::CThumbnailDecodeTask() aDisplayMode = %d", this
         , iDisplayMode);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDECODETASK_CTHUMBNAILDECODETASK, "CThumbnailDecodeTask::CThumbnailDecodeTask;iDisplayMode=%u", iDisplayMode );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILDECODETASK_CTHUMBNAILDECODETASK, "CThumbnailDecodeTask::CThumbnailDecodeTask;this=%o", this );
     }
 
 
@@ -52,6 +59,8 @@
 CThumbnailDecodeTask::~CThumbnailDecodeTask()
     {
     TN_DEBUG2( "CThumbnailDecodeTask(0x%08x)::~CThumbnailDecodeTask()", this );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILDECODETASK_CTHUMBNAILDECODETASK, "CThumbnailDecodeTask::~CThumbnailDecodeTask" );
+    
     if ( iProvider )
         {
         iProvider->CancelGetThumbnail();
@@ -70,6 +79,7 @@
 void CThumbnailDecodeTask::StartL()
     {
     TN_DEBUG2( "CThumbnailDecodeTask(0x%08x)::StartL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDECODETASK_STARTL, "CThumbnailDecodeTask::StartL;this=%o", this );
 
     CThumbnailTask::StartL();
 
@@ -78,6 +88,7 @@
     iProvider = iServer.ResolveProviderL( mimeType );
     TN_DEBUG3( "CThumbnailDecodeTask(0x%08x) -- provider UID 0x%08x", this,
         iProvider->Uid());
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILDECODETASK_STARTL, "CThumbnailDecodeTask::StartL;this=%o", this );
 
     __ASSERT_DEBUG(( iProvider ), ThumbnailPanic( EThumbnailNullPointer ));
 
@@ -97,6 +108,7 @@
     {
     // No implementation required
     TN_DEBUG2( "CThumbnailDecodeTask(0x%08x)::RunL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDECODETASK_RUNL, "CThumbnailDecodeTask::RunL;this=%o", this );
     }
 
 
@@ -107,6 +119,7 @@
 void CThumbnailDecodeTask::DoCancel()
     {
     TN_DEBUG2( "CThumbnailDecodeTask(0x%08x)::DoCancel()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDECODETASK_DOCANCEL, "CThumbnailDecodeTask::DoCancel;this=%o", this );
     if ( iProvider )
         {
         iProvider->CancelGetThumbnail();
@@ -125,6 +138,9 @@
     {
     TN_DEBUG4( "CThumbnailDecodeTask(0x%08x)::ThumbnailProviderReady(aError=%d, aBitmap=0x%08x)", 
                this, aError, aBitmap );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDECODETASK_THUMBNAILPROVIDERREADY, "CThumbnailDecodeTask::ThumbnailProviderReady;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILDECODETASK_THUMBNAILPROVIDERREADY, "CThumbnailDecodeTask::ThumbnailProviderReady;aError=%d", aError );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILDECODETASK_THUMBNAILPROVIDERREADY, "CThumbnailDecodeTask::ThumbnailProviderReady;aBitmap=%o", aBitmap );
 
     iOriginalSize = aOriginalSize;
 
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildiskunmountobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnaildiskunmountobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -19,6 +19,11 @@
 #include "thumbnaildiskunmountobserver.h"
 #include "thumbnaillog.h"
 #include "thumbnailserver.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnaildiskunmountobserverTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -50,6 +55,7 @@
     {
     TN_DEBUG1( "CThumbnailDiskUnmountObserver::CThumbnailDiskUnmountObserver()"
         );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILDISKUNMOUNTOBSERVER_CTHUMBNAILDISKUNMOUNTOBSERVER, "CThumbnailDiskUnmountObserver::CThumbnailDiskUnmountObserver" );
     CActiveScheduler::Add( this );
     StartNotify();
     }
@@ -75,6 +81,7 @@
     {
     TN_DEBUG1( 
         "CThumbnailDiskUnmountObserver::~CThumbnailDiskUnmountObserver()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDISKUNMOUNTOBSERVER_CTHUMBNAILDISKUNMOUNTOBSERVER, "CThumbnailDiskUnmountObserver::~CThumbnailDiskUnmountObserver" );
     Cancel();
     }
 
@@ -87,6 +94,7 @@
     {
     TN_DEBUG2( "CThumbnailDiskUnmountObserver::RunL() iStatus = %d",
         iStatus.Int());
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILDISKUNMOUNTOBSERVER_RUNL, "CThumbnailDiskUnmountObserver::RunL - iStatus =;iStatus.Int()=%d", iStatus.Int() );
     
     if( !iStatus.Int() )
         {       
@@ -117,6 +125,7 @@
 void CThumbnailDiskUnmountObserver::StartNotify()
     {
     TN_DEBUG1( "CThumbnailDiskUnmountObserver::StartNotify()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILDISKUNMOUNTOBSERVER_STARTNOTIFY, "CThumbnailDiskUnmountObserver::StartNotify" );
     if(!IsActive())
         { 
         iFs.NotifyDismount( iDrive, iStatus, EFsDismountRegisterClient );
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailfetchedchecker.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -17,6 +17,11 @@
 
 #include "thumbnailfetchedchecker.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailfetchedcheckerTraces.h"
+#endif
+
 
 const int KMaxStoredEntries = 100;
 
@@ -53,6 +58,7 @@
 TInt CThumbnailFetchedChecker::LastFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize )
     {
     TN_DEBUG3( "CThumbnailFetchedChecker::LastFetchResult(aUri=%S aThumbnailSize=%d)", &aUri, aThumbnailSize);
+    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_LASTFETCHRESULT, "CThumbnailFetchedChecker::LastFetchResult;aUri=%S;aThumbnailSize=%hu", aUri, aThumbnailSize );
 
     CEntry* entry = NULL;
     TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, KErrNone ) );
@@ -62,6 +68,7 @@
         if ( ret != KErrNotFound )
             {
             TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> error found");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_LASTFETCHRESULT, "CThumbnailFetchedChecker::LastFetchResult  - error found" );
             delete entry;
             entry = NULL;
             return iNotFetched[ ret ]->iError;
@@ -81,6 +88,7 @@
 void CThumbnailFetchedChecker::SetFetchResult( const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
     {
     TN_DEBUG4( "CThumbnailFetchedChecker::SetFetchResult(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
+    OstTraceExt3( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
     if ( aError == KErrNone )
         {
         // Remove successful results from store
@@ -92,6 +100,7 @@
             if ( i >= 0 )
                 {
                 TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Remove successful results from store %d",  iNotFetched.Count() );
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;iNotFetched.Count()=%d", iNotFetched.Count() );
                 delete iNotFetched[ i ];
                 iNotFetched[ i ] = NULL;
                 iNotFetched.Remove( i );
@@ -106,6 +115,7 @@
         // Add or update
         CEntry* entry = NULL;
         TRAPD( err, entry = CEntry::NewL( aUri, aThumbnailSize, aError ) );
+        OstTraceExt3( TRACE_NORMAL, DUP4_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
         if ( !err && entry )
             {
             err = iNotFetched.Find( entry );
@@ -116,6 +126,7 @@
                 if ( i >= 0 )
                     {
                     TN_DEBUG1( "CThumbnailFetchedChecker::LastFetchResult() -> Update fetched tn error" );
+                    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult - Update fetched tn error" );
                     iNotFetched[ i ]->iError = aError;
                     }
                 }
@@ -128,6 +139,7 @@
                     if ( err == KErrNone )
                         {
                         TN_DEBUG2( "CThumbnailFetchedChecker::LastFetchResult() -> Inserted new fetched tn error %d", iNotFetched.Count());	
+                        OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILFETCHEDCHECKER_SETFETCHRESULT, "CThumbnailFetchedChecker::SetFetchResult;iNotFetched.Count()=%d", iNotFetched.Count() );
                         entry = NULL; // owned by array now
                         }
                     }
@@ -146,6 +158,7 @@
 void CThumbnailFetchedChecker::DeleteFetchResult( const TDesC& aUri )
     {
     TN_DEBUG2( "CThumbnailFetchedChecker::DeleteFetchResult(%S)", &aUri);
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_DELETEFETCHRESULT, "CThumbnailFetchedChecker::DeleteFetchResult;aUri=%S", aUri );
     // delete all entries of passed uri
     TInt ret;
     do
@@ -154,6 +167,7 @@
         if ( ret >= 0 )
             {
             TN_DEBUG1( "CThumbnailFetchedChecker::DeleteFetchResult() -> Deteled URI from fetched list" );	
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_DELETEFETCHRESULT, "CThumbnailFetchedChecker::DeleteFetchResult - Deteled URI from fetched list" );
             delete iNotFetched[ ret ];
             iNotFetched[ ret ] = NULL;
             iNotFetched.Remove( ret );
@@ -170,6 +184,7 @@
 void CThumbnailFetchedChecker::RenameFetchResultL( const TDesC& aNewUri, const TDesC& aOldUri )
     {
     TN_DEBUG3( "CThumbnailFetchedChecker::RenameFetchResult(aNewUri=%S aOldUri=%S)", &aNewUri, &aOldUri);
+    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_RENAMEFETCHRESULTL, "CThumbnailFetchedChecker::RenameFetchResultL;aNewUri=%S;aOldUri=%S", aNewUri, aOldUri );
     // change every occurence of passed uri
     TInt ret;
     do
@@ -182,6 +197,7 @@
 
             iNotFetched[ ret ]->iUri = aNewUri.AllocL();
             TN_DEBUG1( "CThumbnailFetchedChecker::RenameeFetchResult() -> Renamed URI in fetched list" );	
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILFETCHEDCHECKER_RENAMEFETCHRESULTL, "CThumbnailFetchedChecker::RenameFetchResultL - Renamed URI in fetched list" );
             }
         }
     while(ret != KErrNotFound );
@@ -195,6 +211,7 @@
 void CThumbnailFetchedChecker::Reset()
     {
     TN_DEBUG1( "CThumbnailFetchedChecker::Reset()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILFETCHEDCHECKER_RESET, "CThumbnailFetchedChecker::Reset" );
     iNotFetched.ResetAndDestroy();
     }
 
@@ -206,6 +223,7 @@
         const TDesC& aUri, const TThumbnailSize aThumbnailSize, TInt aError )
     {
     TN_DEBUG4( "CThumbnailFetchedChecker::CEntry::NewL(aUri=%S aThumbnailSize=%d aError=%d)", &aUri, aThumbnailSize, aError);
+    OstTraceExt3( TRACE_NORMAL, CENTRY_NEWL, "CEntry::NewL;aUri=%S;aThumbnailSize=%u;aError=%d", aUri, aThumbnailSize, aError );
     CEntry* self  = new (ELeave) CEntry();
     if ( self )
         {
@@ -229,6 +247,7 @@
         const CThumbnailFetchedChecker::CEntry& aEntry, const CThumbnailFetchedChecker::CEntry& aEntry1 )
     {
     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::FindCB");
+    OstTrace0( TRACE_NORMAL, CENTRY_FINDCB, "CEntry::FindCB" );
     if( aEntry1.iSize == aEntry.iSize)
         {
         // return index if size and uri matches
@@ -248,6 +267,7 @@
         const TDesC* aUri, const CThumbnailFetchedChecker::CEntry& aEntry )
     {
     TN_DEBUG2( "CThumbnailFetchedChecker::CEntry::FindCBUri(aUri=%S", &aUri);
+    OstTrace0( TRACE_NORMAL, CENTRY_FINDCBURI, "CEntry::FindCBUri" );
     return aUri->CompareF( *( aEntry.iUri ) );
     }
 
@@ -260,6 +280,7 @@
         const CThumbnailFetchedChecker::CEntry& aEntry2 )
     {
     TN_DEBUG1( "CThumbnailFetchedChecker::CEntry::InsertCB");
+    OstTrace0( TRACE_NORMAL, CENTRY_INSERTCB, "CEntry::InsertCB" );
     if( aEntry1.iSize == aEntry2.iSize)
         {
         // return index if size and uri matches
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailgeneratetask.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -29,6 +29,11 @@
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
 #include "thumbnailfetchedchecker.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailgeneratetaskTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -52,6 +57,7 @@
     iQualityPreference( aQualityPreference ), iVirtualUri( aVirtualUri )
     {
     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CThumbnailGenerateTask()", this);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::CThumbnailGenerateTask;this=%o", this );
     
     if ( !aBuffer && aFile)
         {
@@ -85,6 +91,7 @@
 CThumbnailGenerateTask::~CThumbnailGenerateTask()
     {
     TN_DEBUG2("CThumbnailGenerateTask(0x%08x)::~CThumbnailGenerateTask()", this);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::~CThumbnailGenerateTask;this=%o", this );
     
     if ( iProvider )
         {
@@ -110,6 +117,7 @@
     
     iFile.Close();
     TN_DEBUG1("CThumbnailGenerateTask::~CThumbnailGenerateTask() - file handle closed");
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_CTHUMBNAILGENERATETASK, "CThumbnailGenerateTask::~CThumbnailGenerateTask - file handle closed" );
     }
 
 
@@ -120,6 +128,7 @@
 void CThumbnailGenerateTask::StartL()
     {
     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::StartL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL;this=%o", this );
 
     CThumbnailTask::StartL();
     
@@ -141,6 +150,7 @@
     iProvider = iServer.ResolveProviderL(mimeType);
        	
     TN_DEBUG3( "CThumbnailGenerateTask(0x%08x) -- provider UID 0x%08x", this, iProvider->Uid());
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL;this=%o", this );
 
     __ASSERT_DEBUG(( iProvider ), ThumbnailPanic( EThumbnailNullPointer ));
 
@@ -178,6 +188,7 @@
     User::LeaveIfError( providerErr );
     
     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::StartL() end", this );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_STARTL, "CThumbnailGenerateTask::StartL -end;this=%o", this );
     }
 
 
@@ -198,6 +209,7 @@
 void CThumbnailGenerateTask::DoCancel()
     {
     TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::DoCancel()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_DOCANCEL, "CThumbnailGenerateTask::DoCancel;this=%o", this );
     
     if ( iProvider )
         {
@@ -274,6 +286,9 @@
     {
     TN_DEBUG4( 
         "CThumbnailGenerateTask(0x%08x)::ThumbnailProviderReady(aError=%d, aBitmap=0x%08x)", this, aError, aBitmap );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aError=%d", aError );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aBitmap=%o", aBitmap );
 
     #ifdef _DEBUG
     aStop.UniversalTime();
@@ -299,6 +314,7 @@
         
 #ifdef _DEBUG
         TN_DEBUG2( "CThumbnailGenerateTask::ThumbnailProviderReady() - displaymode is %d", aBitmap->DisplayMode());
+        OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_THUMBNAILPROVIDERREADY, "CThumbnailGenerateTask::ThumbnailProviderReady;aBitmap->DisplayMode()=%u", aBitmap->DisplayMode() );
 #endif
         
         TRAPD( err, CreateScaleTasksL( aBitmap ));
@@ -358,6 +374,8 @@
             TThumbnailSize size = (*iMissingSizes)[ i ].iType;
 #ifdef _DEBUG
             TN_DEBUG3( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() *iMissingSizes)[ i ].iType == %d", this, size );
+            OstTrace1( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;this=%o", this );
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;size=%d", size );
 #endif
             
             if ( iPortrait )
@@ -367,13 +385,21 @@
                      size == EAudioFullScreenThumbnailSize ||
                      size == EImageFullScreenThumbnailSize )
                     {
+                    TInt mis_width = (*iMissingSizes)[ i ].iSize.iWidth;
                     TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth );
+                    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;width=%d", mis_width );
+
+                    TInt mis_height = (*iMissingSizes)[ i ].iSize.iHeight;
                     TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight );
+                    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;mis_height=%d", mis_height );
                     TInt width = (*iMissingSizes)[ i ].iSize.iWidth; 
                     (*iMissingSizes)[ i ].iSize.iWidth = (*iMissingSizes)[ i ].iSize.iHeight;
                     (*iMissingSizes)[ i ].iSize.iHeight = width;
                     TN_DEBUG2( "*iMissingSizes)[ i ].iWidth == %d", (*iMissingSizes)[ i ].iSize.iWidth );
+                    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;width=%d", width );
+                    mis_height = (*iMissingSizes)[ i ].iSize.iHeight;
                     TN_DEBUG2( "*iMissingSizes)[ i ].iHeight == %d", (*iMissingSizes)[ i ].iSize.iHeight );
+                    OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL;mis_height=%d", mis_height );
                     }
                 }
             
@@ -393,6 +419,7 @@
                 {
                 complTask->SetDoStore( EFalse );
                 TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
+                OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL - do not store;this=%o", this );
                 }
             else
                 {
@@ -442,6 +469,7 @@
             {
             complTask->SetDoStore( EFalse );
             TN_DEBUG2( "CThumbnailGenerateTask(0x%08x)::CreateScaleTasksL() - do not store", this );
+            OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILGENERATETASK_CREATESCALETASKSL, "CThumbnailGenerateTask::CreateScaleTasksL - do not store;this=%o", this );
             }
         else
             {
@@ -479,6 +507,7 @@
 void CThumbnailGenerateTask::CreateBlackListedL( const TSize& aOriginalSize )
     {
     TN_DEBUG1( "CThumbnailGenerateTask::CreateBlackListedL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILGENERATETASK_CREATEBLACKLISTEDL, "CThumbnailGenerateTask::CreateBlackListedL" );
     CFbsBitmap* tempBitmap = 0;
     tempBitmap = new (ELeave) CFbsBitmap();
     CleanupStack::PushL( tempBitmap );
@@ -515,6 +544,7 @@
 void CThumbnailGenerateTask::DoBlacklisting( const TInt aError, const TSize& aOriginalSize )
     {
     TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting" );
     // Create a temporary bitmap of size 1 for storing blacklisted thumbnail
     // Because no actual bitmap data is generated, there is no reason to 
     // add bitmap to server bitmap pool. Completion of client request with
@@ -533,6 +563,7 @@
         if(iMissingSizes)
             {
             TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklist missing sizes count = %d", iMissingSizes->Count() );
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklist missing sizes count;iMissingSizes->Count()=%d", iMissingSizes->Count() );
 
             for ( TInt i( 0 ); i < iMissingSizes->Count(); i++ )
                 {
@@ -541,6 +572,7 @@
                 if (err != KErrNone)
                    {
                    TN_DEBUG3( "CThumbnailGenerateTask::DoBlacklisting() - blacklisting missing size %d failed with code %d", iThumbnailSize, err );
+                   OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting -  - blacklisting missing size failed with error;iThumbnailSize=%u;err=%d", iThumbnailSize, err );
                    }
                 }
             return;
@@ -548,15 +580,18 @@
         else
             {
             TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting() - blacklist single size" );
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklist single size" );
             TRAPD( err, CreateBlackListedL( aOriginalSize ) );
             if (err != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnailGenerateTask::DoBlacklisting() - blacklisting failed with code %d", err );
+                OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - blacklisting failed with code;err=%d", err );
                 }
             return;
             }
         }
     TN_DEBUG1( "CThumbnailGenerateTask::DoBlacklisting() - not blacklisted " );        
+    OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILGENERATETASK_DOBLACKLISTING, "CThumbnailGenerateTask::DoBlacklisting - not blacklisted" );
     }
 }
 
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmdsquerytask.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,10 @@
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
 #include "thumbnailserver.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailmdsquerytaskTraces.h"
+#endif
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -36,9 +40,11 @@
 //
 CThumbnailMDSQueryTask::CThumbnailMDSQueryTask(
         CThumbnailTaskProcessor& aProcessor, TInt aPriority, CMdESession* aMdESession, CThumbnailServer& aServer): 
-        CThumbnailTask( aProcessor, aPriority ), iMdESession( aMdESession ), iQuery(NULL), iServer(aServer), iUpdateToDb(ETrue)
+        CThumbnailTask( aProcessor, aPriority ), iMdESession( aMdESession ), iQuery(NULL), 
+		iServer(aServer), iUpdateToDb(ETrue)
     {
     TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::CThumbnailMDSQueryTask()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_CTHUMBNAILMDSQUERYTASK, "CThumbnailMDSQueryTask::CThumbnailMDSQueryTask;this=%o", this );
     }
 
 
@@ -50,6 +56,7 @@
 CThumbnailMDSQueryTask::~CThumbnailMDSQueryTask()
     {
     TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::~CThumbnailMDSQueryTask()", this);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMDSQUERYTASK_CTHUMBNAILMDSQUERYTASK, "CThumbnailMDSQueryTask::~CThumbnailMDSQueryTask;this=%o", this );
            
     if (iQuery)
         {
@@ -78,6 +85,9 @@
 void CThumbnailMDSQueryTask::HandleQueryCompleted( CMdEQuery& /*aQuery*/, const TInt aError )
     {
     TN_DEBUG3( "CThumbnailMDSQueryTask::HandleQueryCompleted(0x%08x), aError == %d", this, aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted;aError=%d", aError );
+    
     
     // if no errors in query
     if (aError == KErrNone && iQuery && iQuery->Count() > 0)
@@ -87,11 +97,13 @@
             const CMdEObject* object = &iQuery->Result(0);
             
             TN_DEBUG2( "CThumbnailMDSQueryTask::HandleQueryCompleted() - URI = %S", &object->Uri() );
+            OstTraceExt1( TRACE_NORMAL, DUP2_CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted;object->Uri()=%S", object->Uri() );
                             
             // return path to client side       
             if( iDelete )
                 {
                 TN_DEBUG2( "CThumbnailMDSQueryTask::HandleQueryCompleted() delete %S", &iUri );
+                OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted - delete;iUri()=%S", iUri );
                 TRAP_IGNORE( iServer.DeleteThumbnailsL( iUri ) );
                 }
             else
@@ -102,6 +114,7 @@
         else
             {
             TN_DEBUG1( "CThumbnailMDSQueryTask::HandleQueryCompleted() - Don't ever come here!" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted - Don't ever come here!" );
             if (ClientThreadAlive())
                 {  
                 Complete( KErrNotFound );
@@ -113,6 +126,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailMDSQueryTask::HandleQueryCompleted() - No results." );
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILMDSQUERYTASK_HANDLEQUERYCOMPLETED, "CThumbnailMDSQueryTask::HandleQueryCompleted - No results." );
         if(!iDelete)
             {
             if (ClientThreadAlive())
@@ -132,6 +146,7 @@
 void CThumbnailMDSQueryTask::StartL()
     {
     TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::StartL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_STARTL, "CThumbnailMDSQueryTask::StartL;this=%o", this );
 
     CThumbnailTask::StartL();
     
@@ -157,6 +172,7 @@
     {
     // No implementation required
     TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::RunL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_RUNL, "CThumbnailMDSQueryTask::RunL;this=%o", this );
     }
 
 
@@ -167,6 +183,7 @@
 void CThumbnailMDSQueryTask::DoCancel()
     {
     TN_DEBUG2( "CThumbnailMDSQueryTask(0x%08x)::DoCancel()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_DOCANCEL, "CThumbnailMDSQueryTask::DoCancel;this=%o", this );
     
     iQuery->Cancel();
     }
@@ -178,6 +195,7 @@
 void CThumbnailMDSQueryTask::QueryPathByIdL(TThumbnailId aId, TBool aDelete)
     {
     TN_DEBUG1( "CThumbnailMDSQueryTask()::QueryPathByIdL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_QUERYPATHBYIDL, "CThumbnailMDSQueryTask::QueryPathByIdL" );
     iQueryType = EURI;
     iDelete = aDelete;
     CMdENamespaceDef* defNamespace = &iMdESession->GetDefaultNamespaceDefL();
@@ -231,5 +249,6 @@
 void CThumbnailMDSQueryTask::SetUpdateToDb(const TBool& aUpdateToDb )
     {
     TN_DEBUG2( "CThumbnailMDSQueryTask()::SetCompleteTask() aUpdateToDb == %d", aUpdateToDb);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMDSQUERYTASK_SETUPDATETODB, "CThumbnailMDSQueryTask::SetUpdateToDb;aUpdateToDb=%u", aUpdateToDb );
     iUpdateToDb = aUpdateToDb;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmemorycardobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailmemorycardobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -18,6 +18,11 @@
 
 #include "thumbnailmemorycardobserver.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailmemorycardobserverTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -47,6 +52,7 @@
     {
     TN_DEBUG1( "CThumbnailMemoryCardObserver::CThumbnailMemoryCardObserver()"
         );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILMEMORYCARDOBSERVER_CTHUMBNAILMEMORYCARDOBSERVER, "CThumbnailMemoryCardObserver::CThumbnailMemoryCardObserver" );
     CActiveScheduler::Add( this );
     StartNotify();
     }
@@ -72,6 +78,7 @@
     {
     TN_DEBUG1( 
         "CThumbnailMemoryCardObserver::~CThumbnailMemoryCardObserver()" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILMEMORYCARDOBSERVER_CTHUMBNAILMEMORYCARDOBSERVER, "CThumbnailMemoryCardObserver::~CThumbnailMemoryCardObserver" );
     Cancel();
     }
 
@@ -83,6 +90,7 @@
 void CThumbnailMemoryCardObserver::RunL()
     {
     TN_DEBUG2( "CThumbnailMemoryCardObserver::RunL() iStatus = %d", iStatus.Int());
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILMEMORYCARDOBSERVER_RUNL, "CThumbnailMemoryCardObserver::RunL;iStatus.Int()=%d", iStatus.Int() );
     if ( !iStatus.Int() )
         {
         // trap because nothing could be done in RunError
@@ -107,6 +115,7 @@
 void CThumbnailMemoryCardObserver::StartNotify()
     {
     TN_DEBUG1( "CThumbnailMemoryCardObserver::StartNotify()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILMEMORYCARDOBSERVER_STARTNOTIFY, "CThumbnailMemoryCardObserver::StartNotify" );
     
     if (IsActive()) 
         {
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailscaletask.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -28,6 +28,11 @@
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
 #include "thumbnailpanic.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailscaletaskTraces.h"
+#endif
+
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -78,6 +83,7 @@
     iBitmapToPool(aBitmapToPool), iEXIF(aEXIF), iVirtualUri( aVirtualUri )
     {
     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::CThumbnailScaleTask()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSCALETASK_CTHUMBNAILSCALETASK, "CThumbnailScaleTask::CThumbnailScaleTask;this=%o", this );
     
     iRequestId = aRequestId;
     }
@@ -114,6 +120,7 @@
     if ( iBitmapInPool && iBitmap )
         {
         TN_DEBUG1("CThumbnailScaleTask()::~CThumbnailScaleTask() delete original bitmap from pool");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSCALETASK_CTHUMBNAILSCALETASK, "CThumbnailScaleTask::~CThumbnailScaleTask - delete original bitmap from pool" );
         
         // Original bitmap is owned by server, decrease reference count
         iServer.DeleteBitmapFromPool( iBitmap->Handle());
@@ -132,12 +139,14 @@
 void CThumbnailScaleTask::StartL()
     {
     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL;this=%o", this );
 
     CThumbnailTask::StartL();
 
     if ( !iCrop )
         {
         TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() - cropping OFF", this );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - cropping OFF;this=%o", this );
     
         // target size at max, keep aspect ratio
         CalculateTargetSize();
@@ -145,12 +154,14 @@
     else
         {
         TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() - cropping ON", this );
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - cropping ON;this=%o", this );
     
         // exact target size, crop excess
         CalculateCropRectangle();
         }
     
     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() - sizes calculated", this );
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - sizes calculated;this=%o", this );
     
 #ifdef _DEBUG
     aStart.UniversalTime();
@@ -165,6 +176,7 @@
     if(bitmapSize.iHeight == iTargetSize.iHeight && bitmapSize.iWidth == iTargetSize.iWidth)
         {
         TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() - no need for scaling", this);
+        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - no need for scaling;this=%o", this );
     
         // copy bitmap 1:1
         User::LeaveIfError( iScaledBitmap->Create( bitmapSize, iBitmap->DisplayMode() ));
@@ -183,6 +195,7 @@
     else
         {
         TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() - scaling", this);
+        OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - scaling;this=%o", this );
         
         User::LeaveIfError( iScaledBitmap->Create( iTargetSize, iBitmap->DisplayMode() ));
         iServer.ScaleBitmapL( iStatus, * iBitmap, * iScaledBitmap, iCropRectangle );
@@ -190,6 +203,7 @@
         }  
     
     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::StartL() end", this );
+    OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILSCALETASK_STARTL, "CThumbnailScaleTask::StartL - end;this=%o", this );
     }
 
 
@@ -202,10 +216,14 @@
     TInt err = iStatus.Int();
 
     TN_DEBUG3( "CThumbnailScaleTask(0x%08x)::RunL() err=%d)", this, err );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSCALETASK_RUNL, "CThumbnailScaleTask::RunL;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSCALETASK_RUNL, "CThumbnailScaleTask::RunL;err=%d", err );
 
     #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailScaleTask::RunL() scale took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSCALETASK_RUNL, "CThumbnailScaleTask::RunL - scale took ms;tookTime=%d", tookTime );
     #endif
 
     if ( !err )
@@ -225,6 +243,7 @@
 void CThumbnailScaleTask::DoCancel()
     {
     TN_DEBUG2( "CThumbnailScaleTask(0x%08x)::DoCancel()", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSCALETASK_DOCANCEL, "CThumbnailScaleTask::DoCancel;this=%o", this );
     iServer.CancelScale();
     }
 
@@ -333,16 +352,22 @@
     {
     TN_DEBUG6( "CThumbnailScaleTask(0x%08x)::StoreAndCompleteL() iFilename=%S, iThumbnailSize=%d, iBitmap=0x%08x, iScaledBitmap=0x%08x)", 
                this, &iFilename, iThumbnailSize, iBitmap, iScaledBitmap );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL;this=%o", this );
+	OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL;iFilename=%S", iFilename );
+	OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL;iBitmap=%o", iBitmap );
+	
 		 
     // do not store TN if quality is too low eg. orignal size of image is smaller than requested size
     // (do not store upscaled images)
     if ( (iTargetSizeTN.iWidth > iOriginalSize.iWidth || iTargetSizeTN.iHeight > iOriginalSize.iHeight) && iEXIF)
         {
         TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() too low quality");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL - too low quality" );
         iDoStore = EFalse;
         }
     
     TN_DEBUG3("CThumbnailScaleTask(0x%08x)::StoreAndCompleteL() iDoStore = %d", this, iDoStore);
+    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL;this=%o", this );
     
     if ( iDoStore )
         {
@@ -377,6 +402,7 @@
         if (iBitmapToPool)
             {
             TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() scaled bitmap handle to params");
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL" );
             
             params.iBitmapHandle = iScaledBitmap->Handle();
             }    
@@ -385,12 +411,14 @@
 	        && iEXIF && !iDoStore)
 	        {
             TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() EThumbnailPreviewThumbnail");
-	    
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL - EThumbnailPreviewThumbnail" );
+            
 		    // this is upscaled preview image
 	        params.iControlFlags = EThumbnailPreviewThumbnail;
 	        }
 	    
         TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() write params to message");
+        OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL - write params to message" );
         
 	    // pass bitmap handle to client
 	    iMessage.WriteL( 0, iParamsBuf );
@@ -398,13 +426,15 @@
         if (iBitmapToPool)
             {
             TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() scaled bitmap to pool");
-        
+            OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL - scaled bitmap to pool" );
+            
             iServer.AddBitmapToPoolL( iRequestId.iSession, iScaledBitmap, iRequestId );
             iScaledBitmap = NULL; // Server owns the bitmap now
             }
         }
     
     TN_DEBUG1("CThumbnailScaleTask()::StoreAndCompleteL() - end");
+    OstTrace0( TRACE_NORMAL, DUP9_CTHUMBNAILSCALETASK_STOREANDCOMPLETEL, "CThumbnailScaleTask::StoreAndCompleteL - end" );
     }
 
 
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -37,6 +37,11 @@
 #include "thumbnailmemorycardobserver.h"
 #include "tmgetimei.h"
 #include "thumbnailfetchedchecker.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailserverTraces.h"
+#endif
+
 
 
 _LIT8( KThumbnailMimeWildCard, "*" );
@@ -211,6 +216,7 @@
 void CThumbnailServer::ConstructL()
     {
     TN_DEBUG1( "CThumbnailServer::ConstructL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_CONSTRUCTL, "CThumbnailServer::ConstructL" );
     
 #ifdef _DEBUG
     iPlaceholderCounter = 0;
@@ -273,6 +279,7 @@
 CThumbnailServer::~CThumbnailServer()
     {
     TN_DEBUG1( "CThumbnailServer::~CThumbnailServer()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_CTHUMBNAILSERVER, "CThumbnailServer::~CThumbnailServer" );
 
     iShutdown = ETrue;
     
@@ -347,7 +354,10 @@
 void CThumbnailServer::HandleSessionOpened( CMdESession& /* aSession */, TInt /*aError*/ )
 #endif
     {
+#ifdef _DEBUG
     TN_DEBUG2( "CThumbnailServer::HandleSessionOpened error == %d", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_HANDLESESSIONOPENED, "CThumbnailServer::HandleSessionOpened;aError=%d", aError );
+#endif    
     }
 
 // -----------------------------------------------------------------------------
@@ -357,6 +367,7 @@
 void CThumbnailServer::HandleSessionError( CMdESession& /*aSession*/, TInt aError )
     {
     TN_DEBUG2( "CThumbnailServer::HandleSessionError == %d", aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_HANDLESESSIONERROR, "CThumbnailServer::HandleSessionError;aError=%d", aError );
     if (aError != KErrNone && !iShutdown && !iSessionError)
         {
         iSessionError = ETrue;
@@ -367,6 +378,7 @@
                                TCallBack(ReconnectCallBack, this));
             
             TN_DEBUG1( "CThumbnailServer::HandleSessionError() - reconnect timer started" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_HANDLESESSIONERROR, "CThumbnailServer::HandleSessionError - reconnect timer started" );
             }
         } 
     }
@@ -411,9 +423,11 @@
         RProcess::Rendezvous( KErrNone );
         TN_DEBUG1( 
             "CThumbnailServer::ThreadFunctionL() -- CActiveScheduler::Start() in" );
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_THREADFUNCTIONL, "CThumbnailServer::ThreadFunctionL -- CActiveScheduler::Start() in" );
         CActiveScheduler::Start();
         TN_DEBUG1( 
             "CThumbnailServer::ThreadFunctionL() -- CActiveScheduler::Start() out" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_THREADFUNCTIONL, "CThumbnailServer::ThreadFunctionL - out" );
         // Comes here if server gets shut down
         delete server;
         server = NULL;
@@ -430,6 +444,7 @@
     {
     TN_DEBUG2( "CThumbnailServer::AddSession() iSessionCount was %d",
         iSessionCount );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_ADDSESSION, "CThumbnailServer::AddSession;iSessionCount=%d", iSessionCount );
     iSessionCount++;
     }
 
@@ -442,6 +457,7 @@
     {
     TN_DEBUG2( "CThumbnailServer::DropSession() iSessionCount was %d",
         iSessionCount );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_DROPSESSION, "CThumbnailServer::DropSession;iSessionCount=%d", iSessionCount );
     iSessionCount--;
     
     if(iProcessor)
@@ -450,6 +466,7 @@
         }
     
     TN_DEBUG2( "CThumbnailServer::DropSession() aSession = 0x%08x", aSession );        
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_DROPSESSION, "CThumbnailServer::DropSession;aSession=%o", aSession );
     
     // clean-up bitmap pool    
     THashMapIter < TInt, TThumbnailBitmapRef > bpiter( iBitmapPool );
@@ -462,11 +479,13 @@
         if ( ref->iSession == aSession )
             {
             TN_DEBUG2( "CThumbnailServer::DropSession() - ref->iSession = 0x%08x", ref->iSession );
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_DROPSESSION, "CThumbnailServer::DropSession;ref->iSession=%o", ref->iSession );
         
             delete ref->iBitmap;
             bpiter.RemoveCurrent();
                         
             TN_DEBUG2( "CThumbnailServer::DropSession() - deleted bitmap, left=%d", iBitmapPool.Count());
+            OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_DROPSESSION, "CThumbnailServer::DropSession;iBitmapPool.Count()=%d", iBitmapPool.Count() );
             }
         
         ref = bpiter.NextValue();        
@@ -493,9 +512,11 @@
 void CThumbnailServer::ShutdownNotification()
     {
     TN_DEBUG1( "CThumbnailServer::ShutdownNotification()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_SHUTDOWNNOTIFICATION, "CThumbnailServer::ShutdownNotification" );
     if (!iShutdown)
         {
         TN_DEBUG1( "CThumbnailServer::ShutdownNotification() shutdown");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_SHUTDOWNNOTIFICATION, "CThumbnailServer::ShutdownNotification - shutdown" );
         CActiveScheduler::Stop();
         iShutdown = ETrue;
         }
@@ -513,6 +534,7 @@
     if( !aBitmap )
         {
         TN_DEBUG1( "CThumbnailServer::AddBitmapToPoolL() - KErrArgument");
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_ADDBITMAPTOPOOLL, "CThumbnailServer::AddBitmapToPoolL - KErrArgument" );
         User::Leave( KErrArgument );
         }
     TN_DEBUG4( 
@@ -521,6 +543,7 @@
     TThumbnailBitmapRef* ptr = iBitmapPool.Find( aBitmap->Handle());
 
     TN_DEBUG2( "CThumbnailServer::AddBitmapToPoolL() - req id = %d", aRequestId.iRequestId );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_ADDBITMAPTOPOOLL, "CThumbnailServer::AddBitmapToPoolL;aRequestId.iRequestId=%u", aRequestId.iRequestId );
     
     if ( ptr )
         {
@@ -539,6 +562,7 @@
     
 #ifdef _DEBUG
     TN_DEBUG2( "CThumbnailServer::BITMAP-POOL-COUNTER----------, Bitmaps = %d", iBitmapPool.Count() );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_ADDBITMAPTOPOOLL, "CThumbnailServer::AddBitmapToPoolL;iBitmapPool.Count()=%d", iBitmapPool.Count() );
 #endif
     }
 
@@ -553,8 +577,13 @@
     {
     TN_DEBUG6( 
         "CThumbnailServer::StoreBitmapL(aPath=%S, aBitmap=0x%08x, aOriginalSize=%dx%d, aCropped=%d)", &aPath, aBitmap, aOriginalSize.iWidth, aOriginalSize.iHeight, aCropped );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_STORETHUMBNAILL, "CThumbnailServer::StoreThumbnailL;aBitmap=%o", aBitmap );
+    OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_STORETHUMBNAILL, "CThumbnailServer::StoreThumbnailL;aPath=%S", aPath );
+    OstTraceExt3( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_STORETHUMBNAILL, "CThumbnailServer::StoreThumbnailL;aOriginalSize.iWidth=%d;aOriginalSize.iHeight=%d;aCropped=%u", aOriginalSize.iWidth, aOriginalSize.iHeight, aCropped );
+    
 #ifdef _DEBUG
     TN_DEBUG2( "CThumbnailServer::StoreThumbnailL() - iScaledBitmap displaymode is %d", aBitmap->DisplayMode());
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_STORETHUMBNAILL, "CThumbnailServer::StoreThumbnailL;aBitmap->DisplayMode()=%u", aBitmap->DisplayMode() );
 #endif
     
     if (!aCheckExist)
@@ -570,6 +599,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!");
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVER_STORETHUMBNAILL, "CThumbnailServer::StoreThumbnailL - file doesn't exists anymore, skip store!" );
         }
     
     if( iFetchedChecker )    
@@ -587,6 +617,7 @@
     aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize )
     {
     TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize );
+    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILSERVER_FETCHTHUMBNAILL, "CThumbnailServer::FetchThumbnailL;aPath=%S;aThumbnailSize=%hu", aPath, aThumbnailSize );
     if( iFetchedChecker )
         {
         TInt err( iFetchedChecker->LastFetchResult( aPath, aThumbnailSize ) );
@@ -628,6 +659,7 @@
 void CThumbnailServer::DeleteBitmapFromPool( TInt aHandle )
     {
     TN_DEBUG2( "CThumbnailServer::DeleteBitmapFromPool(%d)", aHandle );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_DELETEBITMAPFROMPOOL, "CThumbnailServer::DeleteBitmapFromPool;aHandle=%d", aHandle );
 
     TThumbnailBitmapRef* ptr = iBitmapPool.Find( aHandle );
     if ( ptr )
@@ -637,16 +669,19 @@
             {
             TN_DEBUG3( 
                 "CThumbnailServer::DeleteBitmapFromPool(%d) -- deleting 0x%08x)", aHandle, ptr );
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_DELETEBITMAPFROMPOOL, "CThumbnailServer::DeleteBitmapFromPool -- deleting;ptr=%o", ptr );
             delete ptr->iBitmap;
             ptr->iBitmap = NULL;
             iBitmapPool.Remove( aHandle );
             TN_DEBUG2( "CThumbnailServer::DeleteBitmapFromPool -- items left %d", iBitmapPool.Count() );
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_DELETEBITMAPFROMPOOL, "CThumbnailServer::DeleteBitmapFromPool  -- items left;iBitmapPool.Count()=%d", iBitmapPool.Count() );
             }
         else
             {
             TN_DEBUG3( 
                 "CThumbnailServer::DeleteBitmapFromPool(%d) -- refcount now %d",
                 aHandle, ptr->iRefCount );
+            OstTraceExt2( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_DELETEBITMAPFROMPOOL, "CThumbnailServer::DeleteBitmapFromPool) -- refcount now;aHandle=%d;ptr->iRefCount=%d", aHandle, ptr->iRefCount );
             }
         }
     else
@@ -654,6 +689,7 @@
         //__ASSERT_DEBUG(( EFalse ), ThumbnailPanic( EThumbnailBitmapNotReleased ));
         TN_DEBUG2( "CThumbnailServer::DeleteBitmapFromPool(%d) -- not found!",
             aHandle );
+        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSERVER_DELETEBITMAPFROMPOOL, "CThumbnailServer::DeleteBitmapFromPool  -- not found!;aHandle=%d", aHandle );
         }
     }
 
@@ -665,6 +701,7 @@
 void CThumbnailServer::DeleteThumbnailsL( const TDesC& aPath )
     {
     TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath);
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVER_DELETETHUMBNAILSL, "CThumbnailServer::DeleteThumbnailsL;aPath=%S", aPath );
     
     StoreForPathL( aPath )->DeleteThumbnailsL( aPath );
     
@@ -700,6 +737,7 @@
         {
         // cannot handle other than Oma DRM 1.x files
         TN_DEBUG1( "CThumbnailStore::ResolveMimeTypeL()- only OMA DRM 1.0 supported");
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_RESOLVEMIMETYPEL, "CThumbnailServer::ResolveMimeTypeL - only OMA DRM 1.0 supported" );
         User::Leave(KErrNotSupported);
         }    
     
@@ -734,6 +772,7 @@
     TBuf < KMaxDataTypeLength > buf; // 16-bit descriptor for debug prints
     buf.Copy( aMimeType );
     TN_DEBUG2( "CThumbnailServer::ResolveProviderL(%S)", &buf );
+    OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_RESOLVEMIMETYPEL, "CThumbnailServer::ResolveMimeTypeL;buf=%S", buf );
 #endif 
 
     CThumbnailProvider* ret = NULL;
@@ -758,6 +797,8 @@
 #ifdef _DEBUG
                 TN_DEBUG3( 
                     "CThumbnailServer::ResolveProviderL(%S) -- using provider 0x%08x", &buf, iPluginInfoArray[i]->ImplementationUid().iUid );
+                OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_RESOLVEPROVIDERL, "CThumbnailServer::ResolveProviderL;buf=%S", buf );
+                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_RESOLVEPROVIDERL, "CThumbnailServer::ResolveProviderL;iPluginInfoArray[i]->ImplementationUid().iUid=%o", iPluginInfoArray[i]->ImplementationUid().iUid );
 #endif 
                 ret = GetProviderL( iPluginInfoArray[i]->ImplementationUid());
                 }
@@ -769,6 +810,7 @@
         TN_DEBUG2( 
             "CThumbnailServer::ResolveProviderL(%S) -- provider not found",
             &buf );
+        OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVER_RESOLVEPROVIDERL, "CThumbnailServer::ResolveProviderL;buf=%S", buf );
 #endif 
         User::Leave( KErrNotSupported );
         }
@@ -797,6 +839,7 @@
             aImplUid );
         res = CThumbnailProvider::NewL( aImplUid );
         TN_DEBUG1( "CThumbnailServer::GetProviderL() -- loading complete" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_GETPROVIDERL, "CThumbnailServer::GetProviderL -- loading complete" );
         CleanupStack::PushL( res );
         iProviders.InsertL( aImplUid.iUid, res );
         CleanupStack::Pop( res );
@@ -813,6 +856,7 @@
 void CThumbnailServer::PreLoadProviders(  )
     {
     TN_DEBUG1( "CThumbnailServer::PreLoadProvidersL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_PRELOADPROVIDERS, "CThumbnailServer::PreLoadProviders" );
     TInt err(KErrNone);
     
     for(TInt i=0; i< iPluginInfoArray.Count(); i++)
@@ -852,6 +896,7 @@
     while ( ref )
         {       
         TN_DEBUG2( "CThumbnailServer::DequeTask() - ref->iRequestId = %d", ref->iRequestId );
+        OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_DEQUETASK, "CThumbnailServer::DequeTask;ref->iRequestId=%u", ref->iRequestId );
 
         if ( ref->iSession == aRequestId.iSession && 
              ref->iRequestId == aRequestId.iRequestId )
@@ -861,6 +906,7 @@
                         
             TN_DEBUG2( "CThumbnailServer::DequeTask() - deleted bitmap, left=%d", 
                     iBitmapPool.Count());
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_DEQUETASK, "CThumbnailServer::DequeTask;iBitmapPool.Count()=%d", iBitmapPool.Count() );
             }
         
         ref = bpiter.NextValue();        
@@ -932,10 +978,12 @@
 CThumbnailStore* CThumbnailServer::StoreForDriveL( const TInt aDrive )
     {
     TN_DEBUG2( "CThumbnailServer::StoreForDriveL() drive=%d", aDrive );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL;aDrive=%d", aDrive );
     
     if(iUnmountedDrives.Find( aDrive ) >= KErrNone)
         {
         TN_DEBUG1( "CThumbnailServer::StoreForDriveL() unmount in progress, skip!");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL - unmount in progress, skip!" );
         User::Leave( KErrDisMounted );
         }
     
@@ -951,6 +999,7 @@
         if( iFormatting )
            {
            TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - FORMATTING! - ABORT");
+           OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL - FORMATTING! - ABORT" );
            User::Leave( KErrNotSupported );
            } 
         
@@ -961,11 +1010,13 @@
             {
             // Locked
             TN_DEBUG2( "CThumbnailServer::StoreForDriveL() - err %d", err);
+            OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL;err=%d", err );
             User::Leave( err);
             }
         else if( volumeInfo.iDrive.iMediaAtt& KMediaAttLocked )
             {
             TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - locked");
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL - locked" );
             User::Leave( KErrAccessDenied );
             }
 		else if ( volumeInfo.iDrive.iDriveAtt& KDriveAttRom ||
@@ -974,11 +1025,13 @@
             {
             // We support ROM disks and remote disks in read only mode.
             TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - rom/remote/write protected");
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL - rom/remote/write protected" );
             res = CThumbnailStore::NewL( iFs, aDrive, iImei, this, ETrue );
             }
         else
             {
             TN_DEBUG1( "CThumbnailServer::StoreForDriveL() - normal");
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSERVER_STOREFORDRIVEL, "CThumbnailServer::StoreForDriveL - normal" );
             res = CThumbnailStore::NewL( iFs, aDrive, iImei, this, EFalse );
             }
 			
@@ -1006,6 +1059,7 @@
     if(aPath.Length() < 3 || aPath.Length() > KMaxPath)
         {
         TN_DEBUG1( "CThumbnailServer::StoreForPathL() - KErrArgument");
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_STOREFORPATHL, "CThumbnailServer::StoreForPathL - KErrArgument" );
         User::Leave(KErrArgument);
         }
     TInt drive = 0;
@@ -1050,6 +1104,7 @@
             if (!err)
                 {
                 TN_DEBUG2( "CThumbnailServer::OpenStoresL() StoreForDriveL %d", i);
+                OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_OPENSTORESL, "CThumbnailServer::OpenStoresL;i=%d", i );
                 
                 // ignore errors
                 TRAP_IGNORE( StoreForDriveL( i ));
@@ -1068,6 +1123,7 @@
 void CThumbnailServer::CloseStoreForDriveL( const TInt aDrive )
     {
     TN_DEBUG2( "CThumbnailServer::CloseStoreForDriveL drive=%d", aDrive);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_CLOSESTOREFORDRIVEL, "CThumbnailServer::CloseStoreForDriveL;aDrive=%d", aDrive );
     CThumbnailStore** store = iStores.Find( aDrive );
     
     StartUnmountTimeout( aDrive);
@@ -1134,6 +1190,7 @@
         if (!err && driveInfo.iDriveAtt& KDriveAttRemovable)
             {
             TN_DEBUG2( "CThumbnailServer::AddOnMountObserver drive=%d", drive);
+            OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_ADDUNMOUNTOBSERVERSL, "CThumbnailServer::AddUnmountObserversL;drive=%d", drive );
             CThumbnailDiskUnmountObserver* obs = CThumbnailDiskUnmountObserver::NewL( iFs, drive, this );
             CleanupStack::PushL( obs );
             iUnmountObservers.AppendL( obs );
@@ -1149,6 +1206,7 @@
 void CThumbnailServer::MemoryCardStatusChangedL()
     {
     TN_DEBUG1( "CThumbnailServer::MemoryCardStatusChangedL in()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL - in" );
     TDriveList driveList;
     TInt drive; 
     TVolumeInfo volumeInfo;
@@ -1174,12 +1232,14 @@
                 && driveInfo.iDriveAtt& KDriveAttRemovable )
             {
             TN_DEBUG2( "CThumbnailServer::MemoryCardStatusChangedL mount drive==%d", drive);
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL;drive=%d", drive );
             
             CThumbnailStore** resPtr = iStores.Find( drive );
 
             if ( resPtr )
                 {
                 TN_DEBUG2( "CThumbnailServer::MemoryCardStatusChangedL() already mounted, skip %d", drive);
+                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL;drive=%d", drive );
                 continue;
                 }
             
@@ -1193,6 +1253,7 @@
 			    !(driveStatus & DriveInfo::EDriveRemote))
                 {
                 TN_DEBUG2( "CThumbnailServer::MemoryCardStatusChangedL() update KItemsleft = %d", KErrNotReady);
+                OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL;KErrNotReady=%d - update KItemsleft", KErrNotReady );
                 RProperty::Set(KTAGDPSNotification, KItemsleft, KErrNotReady );
                 }
 			
@@ -1206,6 +1267,7 @@
             if(!iUnmountedDrives.Count()&& iUnmount && iUnmount->IsActive())
                 {
                 TN_DEBUG1( "CThumbnailServer::MemoryCardStatusChangedL() cancel unmount timer");
+                OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL - cancel unmount timer" );
                 iUnmount->Cancel();
                 }
             }
@@ -1214,11 +1276,13 @@
         else if(err && !err_drive && driveInfo.iDriveAtt& KDriveAttRemovable )
             {
             TN_DEBUG2( "CThumbnailServer::MemoryCardStatusChangedL() unmount drive==%d", drive);
+            OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL - unmount drive;drive=%d", drive );
             CloseStoreForDriveL( drive);
             }
         }
 
     TN_DEBUG1( "CThumbnailServer::MemoryCardStatusChangedL out()" );
+    OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSERVER_MEMORYCARDSTATUSCHANGEDL, "CThumbnailServer::MemoryCardStatusChangedL - out" );
     }
 
 
@@ -1277,6 +1341,7 @@
                                            const TInt /*aOrientation*/, const TInt64 aModified )
     {
     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL" );
     
     // 1. check path change
     // 2. check timestamp change
@@ -1285,21 +1350,25 @@
     CThumbnailStore* store = StoreForPathL( aPath );
    
     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exist");
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - exist" );
         
     TBool exists = store->CheckModifiedByPathL(aPath, aModified, modifiedChanged);
        
     if(!exists)
         {
         TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - exists NO");
+    	OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - exists NO" );
         //not found, needs to be generated
         return EFalse;
         }
     
     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified ?");
+    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - modified ?" );
     
     if (modifiedChanged)
         {
         TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified YES");
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - modified YES" );
             
         // delete old thumbs
         store->DeleteThumbnailsL(aPath, ETrue);
@@ -1314,12 +1383,14 @@
     else
         {
         TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - modified NO");
+        OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - modified NO" );
         
         // not modified
         return ETrue;
         }
     
     TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new");
+    OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSERVER_UPDATETHUMBNAILSL, "CThumbnailServer::UpdateThumbnailsL - no thumbs found, create new" );
     
     return EFalse;
     }
@@ -1331,6 +1402,7 @@
 void CThumbnailServer::RenameThumbnailsL( const TDesC& aCurrentPath, const TDesC& aNewPath )
     {
     TN_DEBUG2( "CThumbnailServer::RenameThumbnailsL(%S)", &aCurrentPath);
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVER_RENAMETHUMBNAILSL, "CThumbnailServer::RenameThumbnailsL;aCurrentPath=%S", aCurrentPath );
     
     StoreForPathL( aCurrentPath )->RenameThumbnailsL( aCurrentPath, aNewPath );
     
@@ -1408,10 +1480,14 @@
     else if ( ext.CompareF( K3gpExt ) == 0 )
         {
         aMimeType = TDataType( KVideo3gppMime );
+        return KErrNotFound; 
+        // 3gp can contain video or audio, should go to recognizer
         } 
     else if ( ext.CompareF( K3gppExt ) == 0 )
         {
         aMimeType = TDataType( KVideo3gppMime );
+        return KErrNotFound; 
+        // 3gp can contain video or audio, should go to recognizer
         }
     else if ( ext.CompareF( KAmrExt ) == 0 )
         {
@@ -1615,6 +1691,7 @@
         TN_DEBUG2( 
             "CThumbnailServer::E32Main() -- thread function out, result=%d",
             result );
+        OstTrace1( TRACE_NORMAL, _E32MAIN, "::E32Main;result=%d - thread function out", result );
         delete cleanup;
         cleanup = NULL;
         }
@@ -1622,8 +1699,10 @@
         {
         // Signal the client that server creation failed
         TN_DEBUG1( "CThumbnailServer::E32Main() -- Rendezvous() in" );
+        OstTrace0( TRACE_NORMAL, DUP2__E32MAIN, "::E32Main - in" );
         RProcess::Rendezvous( result );
         TN_DEBUG1( "CThumbnailServer::E32Main() -- Rendezvous() out" );
+        OstTrace0( TRACE_NORMAL, DUP1__E32MAIN, "::E32Main - out" );
         }
 
     __UHEAP_MARKEND;
@@ -1658,6 +1737,7 @@
         if (!err && driveInfo.iDriveAtt& KDriveAttRemovable)
             {
             TN_DEBUG2( "CThumbnailServer::CloseRemovableDrive drive=%d", drive);
+            OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_CLOSEREMOVABLEDRIVESL, "CThumbnailServer::CloseRemovableDrivesL;drive=%d", drive );
             CloseStoreForDriveL(drive);
             }
         }
@@ -1692,6 +1772,7 @@
         if (!err && driveInfo.iDriveAtt& KDriveAttRemovable)
             {
             TN_DEBUG2( "CThumbnailServer::OpenRemovableDrive drive=%d", drive);
+            OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_OPENREMOVABLEDRIVESL, "CThumbnailServer::OpenRemovableDrivesL;drive=%d", drive );
             StoreForDriveL(drive);
             }
         }
@@ -1714,6 +1795,7 @@
 void CThumbnailServer::FormatNotification( TBool aFormat )
     {
     TN_DEBUG2( "CThumbnailServer::FormatNotification(%d)", aFormat );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_FORMATNOTIFICATION, "CThumbnailServer::FormatNotification;aFormat=%d", aFormat );
     
     if(aFormat)
         {
@@ -1732,6 +1814,7 @@
 TInt CThumbnailServer::ReconnectCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbnailServer::ReconnectCallBack() - reconnect");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_RECONNECTCALLBACK, "CThumbnailServer::ReconnectCallBack - reconnect" );
     
     CThumbnailServer* self = static_cast<CThumbnailServer*>( aAny );
     
@@ -1748,6 +1831,7 @@
     self->iSessionError = EFalse;
     
     TN_DEBUG1( "CThumbAGDaemon::ReconnectCallBack() - done");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_RECONNECTCALLBACK, "CThumbnailServer::ReconnectCallBack - done" );
     
     return KErrNone;
     }
@@ -1764,6 +1848,7 @@
     if ( pos == 1 )
         {
         TN_DEBUG1( "CThumbnailServer::IsPublicPath() NO");
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_ISPUBLICPATH, "CThumbnailServer::IsPublicPath - NO" );
         return EFalse;
         }
     
@@ -1771,6 +1856,7 @@
     if ( pos == 1 )
         {
         TN_DEBUG1( "CThumbnailServer::IsPublicPath() NO");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_ISPUBLICPATH, "CThumbnailServer::IsPublicPath - NO" );
         return EFalse;
         }
     
@@ -1784,6 +1870,7 @@
 void CThumbnailServer::StartUnmountTimeout( const TInt aDrive)
     {
     TN_DEBUG2( "CThumbnailServer::StartUnmountTimeout(%d)", aDrive);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVER_STARTUNMOUNTTIMEOUT, "CThumbnailServer::StartUnmountTimeout;aDrive=%d", aDrive );
     
     if(iUnmount )
         {
@@ -1798,6 +1885,7 @@
            }
        
        TN_DEBUG1( "CThumbnailServer::StartUnmountTimeout() start unmount timer");
+       OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_STARTUNMOUNTTIMEOUT, "CThumbnailServer::StartUnmountTimeout - start unmount timer" );
        iUnmount->Start( KUnmountTimerTimeout, KUnmountTimerTimeout, TCallBack(UnmountCallBack, this));
        }
        __ASSERT_DEBUG(( iUnmount ), ThumbnailPanic( EThumbnailNullPointer ));
@@ -1811,6 +1899,7 @@
 TInt CThumbnailServer::UnmountCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbnailServer::UnmountCallBack() - unmount finished");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVER_UNMOUNTCALLBACK, "CThumbnailServer::UnmountCallBack - unmount finished" );
     
     CThumbnailServer* self = static_cast<CThumbnailServer*>( aAny );
     
@@ -1819,6 +1908,7 @@
     self->iUnmountedDrives.Reset();
     
     TN_DEBUG1( "CThumbAGDaemon::UnmountCallBack() - done");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVER_UNMOUNTCALLBACK, "CThumbnailServer::UnmountCallBack - done" );
     
     return KErrNone;
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailserversession.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -31,6 +31,11 @@
 #include "thumbnailpanic.h"
 
 #include "thumbnailcenrep.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailserversessionTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -161,6 +166,7 @@
 void CThumbnailServerSession::CreateL()
     {
     TN_DEBUG2( "CThumbnailServerSession::AddSession() = 0x%08x", this );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CREATEL, "CThumbnailServerSession::CreateL;this=%o", this );
     
     Server()->AddSession();
     }
@@ -174,6 +180,7 @@
 void CThumbnailServerSession::ServiceL( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::ServiceL() - begin" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_SERVICEL, "CThumbnailServerSession::ServiceL - begin" );
     
     __ASSERT_DEBUG( !iMessage.Handle(), ThumbnailPanic(EThumbnailMessageNotCompleted));
     if ( iMessage.Handle())
@@ -191,6 +198,7 @@
         if (err != KErrNone)
             {
             TN_DEBUG1( "CThumbnailServerSession::ServiceL() - client thread not found");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_SERVICEL, "CThumbnailServerSession::ServiceL - client thread not found" );
     
             iMessage = RMessage2();
             }       
@@ -198,6 +206,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailServerSession::ServiceL() - message null");
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_SERVICEL, "CThumbnailServerSession::ServiceL - message null" );
         }
     
     // clean up possible trash
@@ -231,6 +240,7 @@
     iClientThread.Close();
     
     TN_DEBUG1( "CThumbnailServerSession::ServiceL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVERSESSION_SERVICEL, "CThumbnailServerSession::ServiceL - end" );
     }
 
 
@@ -261,6 +271,7 @@
 void CThumbnailServerSession::UpdateThumbnailsL( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_UPDATETHUMBNAILSL, "CThumbnailServerSession::UpdateThumbnailsL" );
     
     if(aMessage.Int1() != KCheckValue)
        {
@@ -291,8 +302,26 @@
         TInt sourceType = 0;
         TInt err = Server()->MimeTypeFromFileExt( params.iFileName, mimeType );
         
+        // need to use recognizer
+        if (err == KErrNotFound)
+            {
+            Server()->Fs().ShareProtected();
+            RFile64 file;
+            CleanupClosePushL( file );
+          
+            User::LeaveIfError( file.Open( Server()->Fs(), params.iFileName, EFileShareReadersOrWriters )); 
+            TN_DEBUG2( "CThumbnailServerSession::UpdateThumbnailsL - file handle opened for %S", &params.iFileName );
+          
+            mimeType = Server()->ResolveMimeTypeL(file);
+          
+            file.Close();
+            TN_DEBUG1("CThumbnailServerSession::UpdateThumbnailsL - file handle closed");
+          
+            CleanupStack::Pop( &file );    
+            }
+        
         // get missing sizes
-        if ( err == KErrNone && ( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) != 0 )
+        if ( ( params.iControlFlags & EThumbnailGeneratePersistentSizesOnly ) != 0 )
             {
             sourceType = Server()->SourceTypeFromMimeType( mimeType );
             
@@ -313,10 +342,12 @@
         if(!missingSizes)
             {
             TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL() - finished part 1" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_UPDATETHUMBNAILSL, "CThumbnailServerSession::UpdateThumbnailsL - finished part 1" );
             aMessage.Complete( KErrNone );
             }
         else
             {
+            OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_UPDATETHUMBNAILSL, "CThumbnailServerSession::UpdateThumbnailsL  - some sizes missing..." );
             TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL() - some sizes missing..." ); 
             }
         }
@@ -324,6 +355,7 @@
     if (missingSizes || !finished)
         {
         TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL() - need to create (some) thumbs" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVERSESSION_UPDATETHUMBNAILSL, "CThumbnailServerSession::UpdateThumbnailsL - need to create (some) thumbs" );
         
         if(missingSizes)
             {
@@ -343,6 +375,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL() - finished part 2" );
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVERSESSION_UPDATETHUMBNAILSL, "CThumbnailServerSession::UpdateThumbnailsL - finished part 2" );
         }
     
     iMessage = RMessage2();
@@ -358,6 +391,7 @@
     if(aMessage.Int1() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::RenameThumbnailsL() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_RENAMETHUMBNAILSL, "CThumbnailServerSession::RenameThumbnailsL - error in aMessage - leaving" );
        User::Leave(KErrArgument);
        }
     
@@ -397,6 +431,7 @@
     if(aMessage.Int1() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::RequestThumbByIdAsync() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYIDASYNCL, "CThumbnailServerSession::RequestThumbByIdAsyncL - leaving" );
        User::Leave(KErrArgument);
        }
 
@@ -423,10 +458,13 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailServerSession::RequestThumbByIdAsyncL() request took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000 );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYIDASYNCL, "CThumbnailServerSession::RequestThumbByIdAsyncL;tookTime=%d", tookTime );
 #endif 
     
     TN_DEBUG1("CThumbnailServerSession::RequestThumbByIdAsyncL() - end" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYIDASYNCL, "CThumbnailServerSession::RequestThumbByIdAsyncL - end" );
     }
 
 // -----------------------------------------------------------------------------
@@ -437,10 +475,12 @@
     aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL" );
     
     if(aMessage.Int1() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsync() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - error in aMessage - leaving" );
        User::Leave(KErrArgument);
        }
     
@@ -472,6 +512,7 @@
     if (params.iControlFlags == EThumbnailGeneratePersistentSizesOnly)
         {
         TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - EThumbnailGeneratePersistentSizesOnly" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - EThumbnailGeneratePersistentSizesOnly" );
         CreateGenerateTaskFromFileHandleL( &file );
         
         // ownership of the file transferred
@@ -486,6 +527,7 @@
             {
             // If thumbnail of requested size is blacklisted, fetching is left with KErrCompletion
             TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - thumbnail blacklisted" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - thumbnail blacklisted" );
             
             aMessage.Complete( err );
             iMessage = RMessage2();
@@ -496,10 +538,12 @@
         else if ( !err && iBitmap )
             {
             TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - found existing thumbnail - bitmap " );
+            OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - found existing thumbnail - bitmap " );
 
             // Thumbnail already stored
             CleanupStack::PopAndDestroy(&file);
             TN_DEBUG1("CThumbnailServerSession::RequestThumbByFileHandleAsyncL - file handle closed");
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - file handle closed" );
 
             ProcessBitmapL();
             }
@@ -507,6 +551,7 @@
                  !(params.iFlags& CThumbnailManager::EDoNotCreate) )
             {
             TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - KErrNotFound & !EDoNotCreate" );
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - KErrNotFound & !EDoNotCreate" );
             CreateGenerateTaskFromFileHandleL( &file);
             
             // ownership of the file transferred
@@ -515,6 +560,7 @@
         else if (!err && iBuffer)
             {
             TN_DEBUG1( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - found existing thumbnail - jpeg " );
+            OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - found existing thumbnail - jpeg" );
             
             CThumbnailDecodeTask* task = new( ELeave )CThumbnailDecodeTask( Server()
                         ->Processor(), * Server(), iBuffer, params.iPriority, params.iDisplayMode );
@@ -533,10 +579,12 @@
             // close file
             CleanupStack::PopAndDestroy(&file);
             TN_DEBUG1("CThumbnailServerSession::RequestThumbByFileHandleAsyncL - file handle closed");
+            OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - file handle closed" );
             }
         else
             {
             TN_DEBUG2( "CThumbnailServerSession::RequestThumbByFileHandleAsyncL() - thumbnail not found, err=%d", err );
+            OstTrace1( TRACE_NORMAL, DUP9_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYFILEHANDLEASYNCL, "CThumbnailServerSession::RequestThumbByFileHandleAsyncL - thumbnail not found;err=%d", err );
             
             aMessage.Complete( ConvertSqlErrToE32Err( err ));
             iMessage = RMessage2();
@@ -555,6 +603,7 @@
     aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::RequestThumbByPathAsyncL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL" );
     
 #ifdef _DEBUG
     TTime aStart, aStop;
@@ -564,6 +613,7 @@
     if(aMessage.Int1() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::RequestThumbByPathAsync() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL - error in aMessage - leaving" );
        User::Leave(KErrArgument);
        }
 
@@ -590,6 +640,7 @@
 	        {
 	        TN_DEBUG1( 
 	            "CThumbnailServerSession::RequestThumbByPathAsyncL() - found existing thumbnail- bitmap" );
+	        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL - found existing thumbnail- bitmap" );
 
 	        ProcessBitmapL();
 	        }
@@ -597,6 +648,7 @@
 	        {
 	        TN_DEBUG1( 
 	            "CThumbnailServerSession::RequestThumbByPathAsyncL() - found existing thumbnail- jpeg" );
+	        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL - found existing thumbnail- jpeg" );
 	        
 	        CThumbnailDecodeTask* task = new( ELeave )CThumbnailDecodeTask( Server()
 	               ->Processor(), * Server(), iBuffer, params.iPriority, params.iDisplayMode );
@@ -616,6 +668,7 @@
 	        {
             // If thumbnail of requested size is blacklisted, fetching is left with KErrCompletion
             TN_DEBUG1( "CThumbnailServerSession::RequestThumbByPathAsyncL() - thumbnail blacklisted" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL - thumbnail blacklisted" );
             
             aMessage.Complete( err );
             iMessage = RMessage2();
@@ -624,6 +677,7 @@
 	        {
 	        TN_DEBUG2( 
 	            "CThumbnailServerSession::RequestThumbByPathAsyncL() - thumbnail not found, err = %d", err );
+	        OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL  - thumbnail not found;err=%d", err );
 	        
 	        // don't try to create from virtual URI
 	        if ( params.iVirtualUri )
@@ -652,17 +706,21 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::RequestThumbByPathAsyncL() request took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000 );
+    OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILSERVERSESSION_REQUESTTHUMBBYPATHASYNCL, "CThumbnailServerSession::RequestThumbByPathAsyncL;tookTime=%d", tookTime );
 #endif
     }   
     
 void CThumbnailServerSession::RequestSetThumbnailByBufferL( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBufferL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_REQUESTSETTHUMBNAILBYBUFFERL, "CThumbnailServerSession::RequestSetThumbnailByBufferL" );
     
     if(aMessage.Int3() != KCheckValue)
         {
         TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBufferL() - error in aMessage - leaving" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_REQUESTSETTHUMBNAILBYBUFFERL, "CThumbnailServerSession::RequestSetThumbnailByBufferL - error in aMessage - leaving" );
         User::Leave(KErrArgument);
         }
       
@@ -707,10 +765,12 @@
 void CThumbnailServerSession::RequestSetThumbnailByBitmapL( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_REQUESTSETTHUMBNAILBYBITMAPL, "CThumbnailServerSession::RequestSetThumbnailByBitmapL" );
 
     if(aMessage.Int2() != KCheckValue)
         {
         TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - error in aMessage - leaving" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_REQUESTSETTHUMBNAILBYBITMAPL, "CThumbnailServerSession::RequestSetThumbnailByBitmapL - error in aMessage - leaving" );
         User::Leave(KErrArgument);
         }
         
@@ -808,6 +868,7 @@
                    (*missingSizes)[i].iSize.iWidth = height;
                     
                    TN_DEBUG1( "CThumbnailServerSession::RequestSetThumbnailByBitmapL() - portrait");
+                   OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_REQUESTSETTHUMBNAILBYBITMAPL, "CThumbnailServerSession::RequestSetThumbnailByBitmapL - portrait" );
                    }
                }
         
@@ -862,6 +923,7 @@
 
     TN_DEBUG2( 
         "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() -- create thumbnail generation task for %S", &params.iFileName );
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMFILEHANDLEL, "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL -- create thumbnail generation task for;params.iFileName=%S", params.iFileName );
     
     // disk space check only for stored sizes
     if ( params.iImport && 
@@ -947,6 +1009,7 @@
     if( !aFile)
         {
         TN_DEBUG1("CThumbnailServerSession::CreateGenerateTaskFromFileHandleL() - KErrArgument");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMFILEHANDLEL, "CThumbnailServerSession::CreateGenerateTaskFromFileHandleL - KErrArgument" );
         User::Leave( KErrArgument );
         }
     CleanupClosePushL( *aFile );
@@ -989,6 +1052,7 @@
 
     TN_DEBUG2( 
         "CThumbnailServerSession::CreateGenerateTaskFromBufferL() -- create thumbnail generation task for %S", &params.iTargetUri );
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMBUFFERL, "CThumbnailServerSession::CreateGenerateTaskFromBufferL -  -- create thumbnail generation task for;params.iTargetUri=%S", params.iTargetUri );
   
     // disk space check only for stored sizes
     if ( params.iThumbnailSize != ECustomThumbnailSize && 
@@ -1014,11 +1078,13 @@
         
         User::LeaveIfError( file.Open( Server()->Fs(), params.iTargetUri, EFileShareReadersOrWriters )); 
         TN_DEBUG2( "CThumbnailServerSession::CreateGenerateTaskFromBufferL - file handle opened for %S", &params.iFileName );
+                OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMBUFFERL, "CThumbnailServerSession::CreateGenerateTaskFromBufferL;params.iFileName=%S", params.iFileName );
                 
         mimetype = Server()->ResolveMimeTypeL(file);
                 
         file.Close();
         TN_DEBUG1("CThumbnailServerSession::CreateGenerateTaskFromBufferL - file handle closed");
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMBUFFERL, "CThumbnailServerSession::CreateGenerateTaskFromBufferL - file handle closed" );
         
         CleanupStack::Pop( &file );    
         }
@@ -1062,6 +1128,7 @@
     if( !aBuffer)
         {
         TN_DEBUG1( "CThumbnailServerSession::UpdateThumbnailsL() - KErrArgument" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSERVERSESSION_CREATEGENERATETASKFROMBUFFERL, "CThumbnailServerSession::CreateGenerateTaskFromBufferL - KErrArgument" );
         User::Leave( KErrArgument );
         }
     
@@ -1098,6 +1165,7 @@
 void CThumbnailServerSession::FetchThumbnailL()
     {
     TN_DEBUG1("CThumbnailServerSession::FetchThumbnailL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_FETCHTHUMBNAILL, "CThumbnailServerSession::FetchThumbnailL" );
     __ASSERT_DEBUG( !iBitmap, ThumbnailPanic( EThumbnailBitmapNotReleased ));
     __ASSERT_DEBUG( !iBuffer, ThumbnailPanic( EThumbnailBitmapNotReleased ));
 
@@ -1119,6 +1187,7 @@
         {
         TN_DEBUG3( "CThumbnailServerSession::FetchThumbnailL( ThumbnailSize=%d ( Path=%S ))", 
                  params.iThumbnailSize, &params.iFileName );
+        OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_FETCHTHUMBNAILL, "CThumbnailServerSession::FetchThumbnailL;params.iFileName=%S", params.iFileName );
         Server()->FetchThumbnailL( params.iFileName, iBitmap, iBuffer, params.iThumbnailSize, iOriginalSize);
         }
     else
@@ -1129,6 +1198,7 @@
     if( iBitmap)
         {
         TN_DEBUG4( "CThumbnailServerSession::FetchThumbnailL() size %d x %d displaymode %d", iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight, iBitmap->DisplayMode());
+        OstTraceExt3( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_FETCHTHUMBNAILL, "CThumbnailServerSession::FetchThumbnailL;iBitmap->SizeInPixels().iWidth=%d;iBitmap->SizeInPixels().iHeight=%d;iBitmap->DisplayMode()=%u", iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight, iBitmap->DisplayMode() );
         }
 #endif
     }
@@ -1146,6 +1216,7 @@
     if ( ClientThreadAlive() )
         {        
         TN_DEBUG2("CThumbnailServerSession::ProcessBitmapL(), iBitmap handle= 0x%08x", iBitmap->Handle());
+        OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_PROCESSBITMAPL, "CThumbnailServerSession::ProcessBitmapL;iBitmap->Handle()=%o", iBitmap->Handle() );
         
         params.iBitmapHandle = iBitmap->Handle();
         const TSize bitmapSize = iBitmap->SizeInPixels();
@@ -1163,6 +1234,7 @@
         iMessage.WriteL( 0, iRequestParams );
         
         TN_DEBUG1("CThumbnailServerSession()::ProcessBitmapL() bitmap to pool");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_PROCESSBITMAPL, "CThumbnailServerSession::ProcessBitmapL - bitmap to pool" );
         
         Server()->AddBitmapToPoolL( this, iBitmap, TThumbnailServerRequestId( this, params.iRequestId ) );
         
@@ -1186,6 +1258,7 @@
 void CThumbnailServerSession::ReleaseBitmap( const RMessage2& aMessage )
     {
     TN_DEBUG2( "CThumbnailServerSession::ReleaseBitmap(%d)", aMessage.Int0());
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_RELEASEBITMAP, "CThumbnailServerSession::ReleaseBitmap;aMessage.Int0()=%d", aMessage.Int0() );
     Server()->DeleteBitmapFromPool( aMessage.Int0());
     }
 
@@ -1198,12 +1271,16 @@
 TInt CThumbnailServerSession::CancelRequest( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::CancelRequest()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CANCELREQUEST, "CThumbnailServerSession::CancelRequest" );
     
     const TThumbnailServerRequestId requestId( this, aMessage.Int0());
     const TInt err = Server()->DequeTask( requestId );
     TN_DEBUG4( 
         "CThumbnailServerSession::CancelRequest(0x%08x/%d) - returning %d",
         requestId.iSession, requestId.iRequestId, err );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_CANCELREQUEST, "CThumbnailServerSession::CancelRequest;requestId.iSession=%o", requestId.iSession );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_CANCELREQUEST, "CThumbnailServerSession::CancelRequest;err=%d", err );
+    
     return err;
     }
 
@@ -1215,6 +1292,7 @@
 TInt CThumbnailServerSession::ChangePriority( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::ChangePriority()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CHANGEPRIORITY, "CThumbnailServerSession::ChangePriority" );
     
     const TThumbnailServerRequestId requestId( this, aMessage.Int0());
     const TInt newPriority = aMessage.Int1();
@@ -1223,6 +1301,9 @@
     TN_DEBUG5( 
         "CThumbnailServerSession::ChangePriority(0x%08x/%d, %d) - returning %d",
         requestId.iSession, requestId.iRequestId, newPriority, err );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_CHANGEPRIORITY, "CThumbnailServerSession::ChangePriority;requestId.iSession=%o", requestId.iSession );
+    OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_CHANGEPRIORITY, "CThumbnailServerSession::ChangePriority;requestId.iRequestId=%u;err=%d", requestId.iRequestId, err );
+    
     return err;
     }
 
@@ -1236,6 +1317,7 @@
     if(aMessage.Int2() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::DeleteThumbnailsL() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_DELETETHUMBNAILSL, "CThumbnailServerSession::DeleteThumbnailsL - error in aMessage - leaving" );
        User::Leave(KErrArgument);
        }
     
@@ -1259,6 +1341,7 @@
     if(aMessage.Int2() != KCheckValue)
        {
        TN_DEBUG1( "CThumbnailServerSession::DeleteThumbnailsByIdL() - error in aMessage - leaving" );
+       OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_DELETETHUMBNAILSBYIDL, "CThumbnailServerSession::DeleteThumbnailsByIdL - error in aMessage - leaving" );
        User::Leave(KErrArgument);
        }
     
@@ -1302,6 +1385,7 @@
 void CThumbnailServerSession::GetMimeTypeListL( const RMessage2& aMessage )
     {
     TN_DEBUG1( "CThumbnailServerSession::GetMimeTypeListL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_GETMIMETYPELISTL, "CThumbnailServerSession::GetMimeTypeListL" );
     
     TInt len = aMessage.GetDesMaxLengthL( 0 );
     HBufC* buf = HBufC::NewLC( len );
@@ -1417,11 +1501,13 @@
               
                 User::LeaveIfError( file.Open( Server()->Fs(), params.iFileName, EFileShareReadersOrWriters )); 
                 TN_DEBUG2( "CThumbnailServerSession::ResolveMimeType - file handle opened for %S", &params.iFileName );
+                OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_RESOLVEMIMETYPEL, "CThumbnailServerSession::ResolveMimeTypeL - file handle opened;params.iFileName=%S", params.iFileName );
               
                 params.iMimeType = Server()->ResolveMimeTypeL(file);
               
                 file.Close();
                 TN_DEBUG1("CThumbnailServerSession::ResolveMimeType - file handle closed");
+                OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_RESOLVEMIMETYPEL, "CThumbnailServerSession::ResolveMimeTypeL - file handle closed" );
               
                 CleanupStack::Pop( &file );    
                 }    
@@ -1437,6 +1523,7 @@
 TInt CThumbnailServerSession::ConvertSqlErrToE32Err( TInt aReason )
     {
     TN_DEBUG2("CThumbnailServerSession::ConvertSqlErrToE32Err(%d)", aReason);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CONVERTSQLERRTOE32ERR, "CThumbnailServerSession::ConvertSqlErrToE32Err;aReason=%d", aReason );
     TInt e32Err(aReason);
 	
     if ( aReason >=  - 144 )
@@ -1540,6 +1627,7 @@
 TBool CThumbnailServerSession::ClientThreadAlive()
     {
     TN_DEBUG1( "CThumbnailServerSession::ClientThreadAlive()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSERVERSESSION_CLIENTTHREADALIVE, "CThumbnailServerSession::ClientThreadAlive" );
     
     if ( iMessage.Handle())
         {
@@ -1549,6 +1637,7 @@
         if( exitType != EExitPending )
             {
             TN_DEBUG1( "CThumbnailServerSession::ClientThreadAlive() - client thread died");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSERVERSESSION_CLIENTTHREADALIVE, "CThumbnailServerSession::ClientThreadAlive - client thread died" );
         
             iMessage = RMessage2();
             
@@ -1563,6 +1652,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailServerSession::ClientThreadAlive() - message null");       
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSERVERSESSION_CLIENTTHREADALIVE, "CThumbnailServerSession::ClientThreadAlive - message null" );
         return EFalse;
         }
     }
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailstore.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -33,6 +33,11 @@
 #include "thumbnailpanic.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailserver.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailstoreTraces.h"
+#endif
+
 
 
 _LIT8( KThumbnailSqlConfig, "page_size=32768; cache_size=64;" );
@@ -44,8 +49,8 @@
 const TInt KStoreUnrecoverableErr = KErrCorrupt;
 
 // Database path without drive letter
-//Symbian^3 v4
-_LIT( KThumbnailDatabaseName, ":[102830AB]thumbnail_v4.db" );
+//Symbian^4 v5
+_LIT( KThumbnailDatabaseName, ":[102830AB]thumbnail_v5.db" );
 
 
 // Allow access to database only for the server process
@@ -72,6 +77,7 @@
     if (iDatabase.InTransaction())
         {
         TN_DEBUG1( "RThumbnailTransaction::BeginL() - error: old transaction open!" );
+        OstTrace0( TRACE_NORMAL, RTHUMBNAILTRANSACTION_BEGINL, "RThumbnailTransaction::BeginL - error: old transaction open!" );
         __ASSERT_DEBUG(( !iDatabase.InTransaction() ), ThumbnailPanic( EThumbnailSQLTransaction ));
         
         // old transaction already open, don't open another
@@ -91,6 +97,7 @@
 #ifdef _DEBUG
     TPtrC errorMsg = iDatabase.LastErrorMessage();
     TN_DEBUG3( "RThumbnailTransaction::BeginL() lastError %S, ret = %d" , &errorMsg, err);
+    OstTraceExt2( TRACE_NORMAL, DUP1_RTHUMBNAILTRANSACTION_BEGINL, "RThumbnailTransaction::BeginL - lastError;errorMsg=%S;err=%d", errorMsg, err );
 #endif
         User::Leave( err );
         }
@@ -121,6 +128,7 @@
 #ifdef _DEBUG
     TPtrC errorMsg = iDatabase.LastErrorMessage();
     TN_DEBUG3( "RThumbnailTransaction::CommitL() lastError %S, ret = %d" , &errorMsg, ret);
+    OstTraceExt2( TRACE_NORMAL, DUP2_RTHUMBNAILTRANSACTION_BEGINL, "RThumbnailTransaction::BeginL - lastError;errorMsg=%S;ret=%d", errorMsg, ret );
 #endif  
     User::LeaveIfError( ret );
         }
@@ -150,6 +158,7 @@
         else
             {
             TN_DEBUG1( "RThumbnailTransaction::Rollback() - automatic rollback already done!" );
+            OstTrace0( TRACE_NORMAL, RTHUMBNAILTRANSACTION_ROLLBACK, "RThumbnailTransaction::Rollback - automatic rollback already done!" );
             }
         }
     
@@ -184,6 +193,7 @@
 CThumbnailStore::~CThumbnailStore()
     {
     TN_DEBUG2( "CThumbnailStore::~CThumbnailStore() drive: %d", iDrive );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_CTHUMBNAILSTORE, "CThumbnailStore::~CThumbnailStore;iDrive=%d", iDrive );
     
     if(iActivityManager)
         {
@@ -215,6 +225,7 @@
     iDatabase.Close();
     
     TN_DEBUG1( "CThumbnailStore::~CThumbnailStore() - database closed" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CTHUMBNAILSTORE, "CThumbnailStore::~CThumbnailStore - database closed" );
     }
 
 // ---------------------------------------------------------------------------
@@ -237,6 +248,7 @@
 void CThumbnailStore::ConstructL()
     {
     TN_DEBUG1( "CThumbnailStore::ConstructL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_CONSTRUCTL, "CThumbnailStore::ConstructL" );
 
 #ifdef _DEBUG
     iThumbCounter = 0;
@@ -257,6 +269,7 @@
         CleanupStack::PopAndDestroy( databasePath );
     
         TN_DEBUG2( "CThumbnailStore::ConstructL() drive: %d", iDrive );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CONSTRUCTL, "CThumbnailStore::ConstructL;iDrive=%d", iDrive );
     
         OpenDatabaseL();
     
@@ -270,6 +283,7 @@
     else
         {
 	    TN_DEBUG1( "CThumbnailStore::ConstructL() - read only, dymmy mode..." );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_CONSTRUCTL, "CThumbnailStore::ConstructL - read only, dymmy mode..." );
         iDeleteThumbs = EFalse;
         iCheckFilesExist = EFalse;
         iLastCheckedRowID = -1;
@@ -282,6 +296,7 @@
 TInt CThumbnailStore::OpenDatabaseFileL()
     {
     TN_DEBUG1( "CThumbnailStore::OpenDatabaseFile()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_OPENDATABASEFILEL, "CThumbnailStore::OpenDatabaseFileL" );
     
     HBufC* databasePath = HBufC::NewLC( KMaxFileName );
     TPtr pathPtr = databasePath->Des();
@@ -301,6 +316,7 @@
 TInt CThumbnailStore::OpenDatabaseL( TBool aNewDatabase )
     {
     TN_DEBUG2( "CThumbnailStore::OpenDatabaseL() drive: %d", iDrive );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_OPENDATABASEL, "CThumbnailStore::OpenDatabaseL;iDrive=%d", iDrive );
         
     CloseStatements();
     iDatabase.Close();
@@ -325,6 +341,7 @@
         err = OpenDatabaseFileL();
         
         TN_DEBUG2( "CThumbnailStore::OpenDatabaseL() -- err = %d", err);
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_OPENDATABASEL, "CThumbnailStore::OpenDatabaseL;err=%d", err );
                
         if ( err == KErrNone)
             {
@@ -395,6 +412,7 @@
 void CThumbnailStore::PrepareDbL()
     {
     TN_DEBUG1( "CThumbnailStore::PrepareDbL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_PREPAREDBL, "CThumbnailStore::PrepareDbL" );
     
     // add persistent tables
     CreateTablesL();
@@ -412,18 +430,22 @@
 void CThumbnailStore::CreateTablesL()
     {
     TN_DEBUG1( "CThumbnailStore::CreateTablesL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_CREATETABLESL, "CThumbnailStore::CreateTablesL" );
     
     TInt err = KErrNone;
     err = iDatabase.Exec( KThumbnailCreateInfoTable );
     TN_DEBUG2( "CThumbnailStore::CreateTablesL() KThumbnailCreateInfoTable err=%d", err );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CREATETABLESL, "CThumbnailStore::CreateTablesL - KThumbnailCreateInfoTable;err=%d", err );
     User::LeaveIfError( err );
     
     err = iDatabase.Exec( KThumbnailCreateInfoDataTable );
     TN_DEBUG2( "CThumbnailStore::CreateTablesL() KThumbnailCreateInfoDataTable err=%d", err );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_CREATETABLESL, "CThumbnailStore::CreateTablesL - KThumbnailCreateInfoDataTable;err=%d", err );
     User::LeaveIfError( err );
     
     err = iDatabase.Exec(KThumbnailDeletedTable);
     TN_DEBUG2( "CThumbnailStore::CreateTablesL() KThumbnailDeletedTable err=%d", err );
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_CREATETABLESL, "CThumbnailStore::CreateTablesL - KThumbnailDeletedTable;err=%d", err );
     User::LeaveIfError( err );
     
     err = iDatabase.Exec( KThumbnailCreateInfoTableIndex1 );
@@ -432,6 +454,7 @@
     
     err = iDatabase.Exec(KThumbnailVersionTable);
     TN_DEBUG2( "CThumbnailStore::CreateTablesL() KThumbnailVersionTable err=%d", err );
+    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_CREATETABLESL, "CThumbnailStore::CreateTablesL;err=%d", err );
     User::LeaveIfError( err );
     }
 
@@ -442,6 +465,7 @@
 void CThumbnailStore::CreateTempTablesL()
     {
     TN_DEBUG1( "CThumbnailStore::CreateTempTablesL()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_CREATETEMPTABLESL, "CThumbnailStore::CreateTempTablesL" );
 
     TInt err = iDatabase.Exec( KThumbnailCreateTempInfoTable );
 
@@ -450,6 +474,7 @@
         {
         TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "CThumbnailStore::PrepareDbL() KThumbnailCreateTempInfoTable %S" , &errorMsg);
+        OstTraceExt1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CREATETEMPTABLESL, "CThumbnailStore::CreateTempTablesL - KThumbnailCreateTempInfoTable;errorMsg=%S", errorMsg );
         }
 #endif
     
@@ -462,6 +487,7 @@
         {
         TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "CThumbnailStore::PrepareDbL() KThumbnailCreateTempInfoDataTable %S" , &errorMsg);
+        OstTraceExt1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_CREATETEMPTABLESL, "CThumbnailStore::CreateTempTablesL - KThumbnailCreateTempInfoDataTable;errorMsg=%S", errorMsg );
         }
 #endif
     
@@ -471,6 +497,7 @@
 void CThumbnailStore::RecreateDatabaseL(const TBool aDelete)
     {
     TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() drive: %d", iDrive );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL;iDrive=%d", iDrive );
     
     TVolumeInfo volumeinfo;
     User::LeaveIfError( iFs.Volume(volumeinfo, iDrive) );
@@ -483,6 +510,7 @@
     iUnrecoverable = ETrue;
     
     TN_DEBUG1( "CThumbnailStore::RecreateDatabaseL() database closed" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - database closed" );
     
     HBufC* databasePath = HBufC::NewLC( KMaxFileName );
     TPtr pathPtr = databasePath->Des();
@@ -496,8 +524,10 @@
     if(aDelete)
         {
         TN_DEBUG1( "CThumbnailStore::RecreateDatabaseL() delete database" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - delete database" );
         TInt del = iDatabase.Delete(pathPtr);     
         TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() deleted database, err: %d", del );       
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL" );
         }
         
     const TDesC8& config = KThumbnailSqlConfig;
@@ -508,8 +538,10 @@
 
     // create new
     TN_DEBUG1( "CThumbnailStore::RecreateDatabaseL() create new" );
+    OstTrace0( TRACE_FATAL, DUP3_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - create new" );
     TRAP(err, iDatabase.CreateL( pathPtr, securityPolicy, &config ));    
     TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() -- database created, err = %d", err );
+    OstTrace1( TRACE_FATAL, DUP5_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL;err=%d", err );
     User::LeaveIfError(err);
     
     CleanupStack::PopAndDestroy( &securityPolicy );
@@ -518,6 +550,7 @@
     TRAPD(prepareErr, PrepareDbL() );
     
     TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() -- prepare tables, err = %d", prepareErr );
+    OstTrace1( TRACE_FATAL, DUP6_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - prepare tables;prepareErr=%d", prepareErr );
     
     TInt mediaidErr(KErrNone);
     
@@ -529,6 +562,7 @@
         file.Close();
         
         TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() -- mediaID file created, err = %d", mediaidErr );
+        OstTrace1( TRACE_FATAL, DUP7_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL;mediaidErr=%d", mediaidErr );
         }
     
     // delete db if not fully complete
@@ -537,8 +571,10 @@
         CloseStatements();
         iDatabase.Close();
         TN_DEBUG1( "CThumbnailStore::RecreateDatabaseL() delete database" );
+        OstTrace0( TRACE_FATAL, DUP8_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - delete database" );
         TInt del = iDatabase.Delete(pathPtr);     
         TN_DEBUG2( "CThumbnailStore::RecreateDatabaseL() deleted database, err: %d", del );
+        OstTrace1( TRACE_FATAL, DUP9_CTHUMBNAILSTORE_RECREATEDATABASEL, "CThumbnailStore::RecreateDatabaseL - delete database;del=%d", del );
         }
     
     User::LeaveIfError( prepareErr );
@@ -550,6 +586,7 @@
 TInt CThumbnailStore::CheckRowIDs()
     {
     TN_DEBUG1( "CThumbnailStore::CheckRowIDs()");
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs" );
     
     RSqlStatement stmt;
     TInt column = 0;   
@@ -562,6 +599,7 @@
         {
         stmt.Close();
         TN_DEBUG1( "CThumbnailStore::CheckRowIDs() KGetInfoRowID failed %d");
+        OstTrace1( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs KGetInfoRowID failed;ret=%d", ret );
         return KErrNotSupported;
         }
     rowStatus = stmt.Next();
@@ -578,6 +616,7 @@
 #ifdef _DEBUG
         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
+        OstTraceExt1( TRACE_FATAL, DUP2_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs - lastError;errorMsg2=%S", errorMsg2 );
 #endif
         return KErrNotSupported;
         }
@@ -587,6 +626,7 @@
         {
         stmt.Close();
         TN_DEBUG1( "CThumbnailStore::CheckRowIDs() KGetDataRowID failed");
+        OstTrace0( TRACE_FATAL, DUP3_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs - KGetDataRowID failed" );
         return KErrNotSupported;
         }
     rowStatus = stmt.Next();
@@ -603,12 +643,15 @@
 #ifdef _DEBUG
         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
         TN_DEBUG2( "RThumbnailTransaction::ResetThumbnailIDs() lastError %S, ret = %d" , &errorMsg2);
+        OstTraceExt1( TRACE_FATAL, DUP4_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs - lastError;errorMsg2=%S", errorMsg2 );
 #endif
         return KErrNotSupported;
         }
     
     TN_DEBUG2( "CThumbnailStore::CheckRowIDsL() - inforows %Ld", inforows );
+    OstTraceExt1( TRACE_FATAL, DUP5_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs;inforows=%g", inforows );
     TN_DEBUG2( "CThumbnailStore::CheckRowIDsL() - datarows %Ld", datarows );
+    OstTraceExt1( TRACE_FATAL, DUP6_CTHUMBNAILSTORE_CHECKROWIDS, "CThumbnailStore::CheckRowIDs;datarows=%Ld", datarows );
             
     if( inforows != datarows )
         {
@@ -628,6 +671,7 @@
 TInt CThumbnailStore::CheckVersion()
     {
     TN_DEBUG1( "CThumbnailStore::CheckVersion()" );
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_CHECKVERSION, "CThumbnailStore::CheckVersion" );
     RSqlStatement stmt;
          
     TInt rowStatus = 0;
@@ -640,6 +684,7 @@
        {  
        stmt.Close();
        TN_DEBUG1( "CThumbnailStore::CheckVersion() unknown version" );
+       OstTrace0( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_CHECKVERSION, "CThumbnailStore::CheckVersion - unknown version" );
        return KErrNotSupported;
        }
               
@@ -658,6 +703,7 @@
 #ifdef _DEBUG
          TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "RThumbnailTransaction::CheckVersion() lastError %S, ret = %d" , &errorMsg);
+        OstTrace0( TRACE_FATAL, DUP2_CTHUMBNAILSTORE_CHECKVERSION, "CThumbnailStore::CheckVersion" );
 #endif
         return ret;
         }
@@ -669,6 +715,7 @@
     else
       {
       TN_DEBUG1( "CThumbnailStore::CheckVersion() - wrong DB version" );
+      OstTrace0( TRACE_FATAL, DUP3_CTHUMBNAILSTORE_CHECKVERSION, "CThumbnailStore::CheckVersion" );
       return KErrNotSupported;  
       }
     }
@@ -680,6 +727,7 @@
 TInt CThumbnailStore::CheckImei()
     {
     TN_DEBUG1( "CThumbnailStore::CheckImei()" );
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_CHECKIMEI, "CThumbnailStore::CheckImei" );
     RSqlStatement stmt;
          
     TInt rowStatus = 0;
@@ -691,6 +739,7 @@
        {  
         stmt.Close();
        TN_DEBUG1( "CThumbnailStore::CheckImei() failed" );
+       OstTrace0( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_CHECKIMEI, "CThumbnailStore::CheckImei - failed" );
        return KErrNotSupported;
        }
               
@@ -709,6 +758,7 @@
 #ifdef _DEBUG
          TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "RThumbnailTransaction::CheckImei() lastError %S, ret = %d" , &errorMsg);
+        OstTraceExt1( TRACE_FATAL, DUP2_CTHUMBNAILSTORE_CHECKIMEI, "CThumbnailStore::CheckImei - lastError;errorMsg=%S", errorMsg );
 #endif
         return ret;
         }
@@ -720,6 +770,7 @@
     else
       {
       TN_DEBUG1( "CThumbnailStore::CheckImei() mismatch" );
+      OstTrace0( TRACE_FATAL, DUP3_CTHUMBNAILSTORE_CHECKIMEI, "CThumbnailStore::CheckImei - mismatch" );
       return KErrNotSupported;  
       }
     }
@@ -731,6 +782,7 @@
 TInt CThumbnailStore::CheckMediaIDL()
     {
     TN_DEBUG1( "CThumbnailStore::CheckMediaIDL()" );
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_CHECKMEDIAIDL, "CThumbnailStore::CheckMediaIDL" );
     
     TVolumeInfo volumeinfo;
     User::LeaveIfError( iFs.Volume(volumeinfo, iDrive) );
@@ -744,6 +796,7 @@
        TInt err = file.Create(iFs, mediaid, EFileShareReadersOrWriters );
        file.Close();
        TN_DEBUG2( "CThumbnailStore::CheckMediaIDL() -- mediaID file created, err = %d", err );
+       OstTrace1( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_CHECKMEDIAIDL, "CThumbnailStore::CheckMediaIDL - mediaID file created;err=%d", err );
        
        return KErrNotSupported;
        } 
@@ -758,6 +811,7 @@
 void CThumbnailStore::AddVersionAndImeiL()
     {
     TN_DEBUG1( "CThumbnailStore::AddVersionAndImei()" );
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_ADDVERSIONANDIMEIL, "CThumbnailStore::AddVersionAndImeiL" );
     RSqlStatement stmt;
     CleanupClosePushL( stmt );
             
@@ -787,6 +841,7 @@
 void CThumbnailStore::UpdateImeiL()
     {
     TN_DEBUG1( "CThumbnailStore::UpdateImeiL()" );
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_UPDATEIMEIL, "CThumbnailStore::UpdateImeiL" );
     RSqlStatement stmt;
     CleanupClosePushL( stmt );
             
@@ -803,6 +858,7 @@
 #ifdef _DEBUG
         TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "RThumbnailTransaction::UpdateImeiL() lastError %S" , &errorMsg);
+        OstTraceExt1( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_UPDATEIMEIL, "CThumbnailStore::UpdateImeiL - lastError;errorMsg=%S", errorMsg );
 #endif
         User::Leave(err);
         }
@@ -817,6 +873,7 @@
 void CThumbnailStore::PrepareStatementsL()
     {
     TN_DEBUG1("CThumbnailStore::PrepareStatementsL()");
+    OstTrace0( TRACE_FATAL, CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL" );
     
     TInt err = KErrNone;  
 #ifdef _DEBUG
@@ -827,6 +884,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP1_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -835,6 +893,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectTempInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP2_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectTempInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -843,6 +902,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailInsertTempThumbnailInfo %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP3_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailInsertTempThumbnailInfo ;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -851,6 +911,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailInsertTempThumbnailInfoData %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP4_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailInsertTempThumbnailInfoData;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -859,6 +920,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectModifiedByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP5_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -867,6 +929,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectTempModifiedByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP6_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectTempModifiedByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -875,6 +938,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailFindDuplicate %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP7_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailFindDuplicate;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -883,6 +947,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailTempFindDuplicate %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP8_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailTempFindDuplicate;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -891,6 +956,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlFindDeleted %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP9_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlFindDeleted;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -899,6 +965,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectSizeByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP10_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectSizeByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -907,6 +974,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectTempSizeByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP11_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectTempSizeByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -915,6 +983,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlSelectRowIDInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP12_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlSelectRowIDInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -923,6 +992,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlDeleteInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP13_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlDeleteInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -931,6 +1001,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlDeleteInfoDataByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP14_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlDeleteInfoDataByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -939,6 +1010,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KTempThumbnailSqlSelectRowIDInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP15_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KTempThumbnailSqlSelectRowIDInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -947,6 +1019,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KTempThumbnailSqlDeleteInfoByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP16_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KTempThumbnailSqlDeleteInfoByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -955,6 +1028,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KTempThumbnailSqlDeleteInfoDataByPath %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP17_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KTempThumbnailSqlDeleteInfoDataByPath;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -963,6 +1037,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlInsertDeleted %S" , &msg );
+    OstTraceExt1( TRACE_FATAL, DUP18_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlInsertDeleted;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -971,6 +1046,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlSelectMarked %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP19_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlSelectMarked;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -979,6 +1055,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlDeleteInfoByRowID %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP20_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlDeleteInfoByRowID;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -987,6 +1064,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSqlDeleteInfoDataByRowID %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP21_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSqlDeleteInfoDataByRowID;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -995,6 +1073,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailSelectAllPaths %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP22_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailSelectAllPaths;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -1003,6 +1082,7 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailRename %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP23_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailRename;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
@@ -1011,11 +1091,13 @@
 #ifdef _DEBUG
     msg.Append( iDatabase.LastErrorMessage() );
     TN_DEBUG2( "CThumbnailStore::PrepareStatementsL() KThumbnailTempRename %S" , &msg );
+    OstTraceExt1( TRACE_NORMAL, DUP24_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - KThumbnailTempRename;msg=%S", msg );
     msg.Zero();
 #endif
     User::LeaveIfError( err );
     
     TN_DEBUG1("CThumbnailStore::PrepareStatementsL() end");
+    OstTrace0( TRACE_NORMAL, DUP25_CTHUMBNAILSTORE_PREPARESTATEMENTSL, "CThumbnailStore::PrepareStatementsL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -1036,6 +1118,7 @@
 void CThumbnailStore::CloseStatements()
     {
     TN_DEBUG1("CThumbnailStore::CloseStatements()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_CLOSESTATEMENTS, "CThumbnailStore::CloseStatements" );
     
     iStmt_KThumbnailSelectInfoByPath.Close();
     iStmt_KThumbnailSelectTempInfoByPath.Close();   
@@ -1063,6 +1146,7 @@
     iStmt_KThumbnailTempRename.Close();
     
     TN_DEBUG1("CThumbnailStore::CloseStatements() end");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CLOSESTATEMENTS, "CThumbnailStore::CloseStatements - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -1144,6 +1228,7 @@
     TTime timeStamp;
     
     TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) timeStamp aModified %Ld", aModified );
+    OstTraceExt1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - timeStamp aModified;aModified=%Ld", aModified );
         
     if( aModified )
         {
@@ -1166,10 +1251,12 @@
             if (timeErr != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) error getting timeStamp: %d", timeErr );
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - error getting timeStamp;timeErr=%d", timeErr );
                 }
             else
                 {
                 TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) timeStamp       iFs %Ld", timeStamp.Int64() );
+                OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - timeStamp;timeStamp.Int64()=%Ld", timeStamp.Int64() );
                 }
             }
         
@@ -1178,10 +1265,12 @@
             // otherwise current time
             timeStamp.UniversalTime();
             TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) timeStamp   current %Ld", timeStamp.Int64() );
+            OstTraceExt1( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - timeStamp   current;timeStamp.Int64()=%Ld", timeStamp.Int64() );
             }
         }
         
    TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) timeStamp       set %Ld", timeStamp.Int64());
+   OstTraceExt1( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - timeStamp       set;timeStamp.Int64()=%Ld", timeStamp.Int64() );
    
     paramIndex = stmt->ParameterIndex( KThumbnailSqlParamModified );
     User::LeaveIfError( paramIndex );
@@ -1213,11 +1302,15 @@
 #ifdef _DEBUG
     iThumbCounter++;
     TN_DEBUG2( "CThumbnailStore::THUMBSTORE-COUNTER----------, Thumbs = %d", iThumbCounter );
+    OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::THUMBSTORE-COUNTER----------, Thumbs =;iThumbCounter=%d", iThumbCounter );
     
     aStop.UniversalTime();
+    TInt tookTime = aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( private ) insert to table %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - insert to table;tookTime=%d", tookTime );
 #endif 
     TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( private ) out" );
+    OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - out" );
     }
 
 
@@ -1232,7 +1325,7 @@
     {
     TSize thumbSize = aThumbnail->SizeInPixels();
     TN_DEBUG4( "CThumbnailStore::StoreThumbnailL( public ) aThumbnailSize = %d, aThumbnailSize(%d,%d) IN", aThumbnailSize, thumbSize.iWidth, thumbSize.iHeight );
-    
+    OstTraceExt3( TRACE_NORMAL, DUP9_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - IN;aThumbnailSize=%u;thumbSize.iWidth=%d;thumbSize.iHeight=%d", aThumbnailSize, thumbSize.iWidth, thumbSize.iHeight );    
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::StoreThumbnailL() read only, skip..." );
@@ -1248,6 +1341,7 @@
             || thumbSize.iWidth <= 0 || thumbSize.iHeight <= 0 )
         {
         TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) not stored");
+        OstTrace0( TRACE_NORMAL, DUP10_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - not stored" );
         return;
         }
     
@@ -1280,6 +1374,7 @@
                  aThumbnailSize == EAudioFullScreenThumbnailSize) && !aBlackListed )
                 {
                 TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - encode jpg" );
+                OstTrace0( TRACE_NORMAL, DUP11_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - encode jpg" );
             
                 HBufC8* data = NULL;
                 CleanupStack::PushL( data );
@@ -1292,32 +1387,38 @@
                 if ( decErr != KErrNone )
                     {
                     TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder failed %d", decErr);
+                    OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - HW CExtJpegEncoder failed;decErr=%d", decErr );
                 
                     TRAPD( decErr, encoder = CExtJpegEncoder::DataNewL( CExtJpegEncoder::ESwImplementation, data, options ) );
                     if ( decErr != KErrNone )
                         {
                         TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder failed %d", decErr);
+                        OstTrace1( TRACE_NORMAL, DUP13_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - SW CExtJpegEncoder failed;decErr=%d", decErr );
                     
                         TRAPD( decErr, encoder = CImageEncoder::DataNewL( data,  KJpegMime(), options ) );
                         if ( decErr != KErrNone )
                             {
                             TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder failed %d", decErr);
+                            OstTrace1( TRACE_NORMAL, DUP14_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - CImageEncoder failed;decErr=%d", decErr );
                             
                             User::Leave(decErr);
                             }
                         else
                             {
                             TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - CImageEncoder created" );
+                            OstTrace0( TRACE_NORMAL, DUP15_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - CImageEncoder created" );
                             }
                         }
                     else
                         {
                         TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - SW CExtJpegEncoder created" );
+                        OstTrace0( TRACE_NORMAL, DUP16_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - SW CExtJpegEncoder created" );
                         }
                     }
                 else
                     {
                     TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - HW CExtJpegEncoder created" );
+                    OstTrace0( TRACE_NORMAL, DUP17_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - HW CExtJpegEncoder created" );
                     }             
                 
                 CleanupStack::Pop( data );
@@ -1354,6 +1455,7 @@
                 if(request == KErrNone)
                     {           
                     TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) - encoding ok" );    
+                    OstTrace0( TRACE_NORMAL, DUP18_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - encoding ok" );
                 
                     CleanupStack::PushL( data );
                     TPtr8 ptr = data->Des(); 
@@ -1365,6 +1467,7 @@
                 else
                     {
                     TN_DEBUG2( "CThumbnailStore::StoreThumbnailL( public ) - encoding failed: %d", request.Int() );
+                    OstTrace1( TRACE_NORMAL, DUP19_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - encoding failed;request.Int()=%d", request.Int() );
                     }
                 
                 delete data;
@@ -1392,6 +1495,7 @@
     CleanupStack::PopAndDestroy( path );
     
     TN_DEBUG1( "CThumbnailStore::StoreThumbnailL( public ) out" );
+    OstTrace0( TRACE_NORMAL, DUP20_CTHUMBNAILSTORE_STORETHUMBNAILL, "CThumbnailStore::StoreThumbnailL - out" );
     }
 
 // ---------------------------------------------------------------------------
@@ -1401,7 +1505,7 @@
 TBool CThumbnailStore::FindDuplicateL( const TDesC& aPath, const TThumbnailSize& aThumbnailSize )
     {
     TN_DEBUG1( "CThumbnailStore::FindDuplicateL()" );
-	
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL" );
 	if(iReadOnly)
 		{
 		TN_DEBUG1( "CThumbnailStore::FindDuplicateL() read only, skip..." );
@@ -1448,17 +1552,20 @@
         if(rowStatus == KSqlAtRow)
             {
             TN_DEBUG1( "CThumbnailStore::FindDuplicateL() - duplicate in main table" );
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL - duplicate in main table" );
             
             found = ETrue;
             }
         else
             {
             TN_DEBUG1( "CThumbnailStore::FindDuplicateL() - no duplicate" );
+            OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL - no duplicate" );
             }
         }
     else
         {
         TN_DEBUG1( "CThumbnailStore::FindDuplicateL() - duplicate in temp table" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL - duplicate in temp table" );
         
         found = ETrue;
         }
@@ -1482,10 +1589,12 @@
         if(rowStatus == KSqlAtRow)
             {
             TN_DEBUG1( "CThumbnailStore::FindDuplicateL() - duplicate marked deleted" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL - duplicate marked deleted" );
             
             DeleteThumbnailsL(aPath, ETrue);
             
             TN_DEBUG1( "CThumbnailStore::FindDuplicateL() - duplicate force-deleted" );
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_FINDDUPLICATEL, "CThumbnailStore::FindDuplicateL - duplicate force-deleted" );
             
             found = EFalse;
             }
@@ -1502,7 +1611,7 @@
     TThumbnailPersistentSize > & aMissingSizes, TBool aCheckGridSizeOnly )
     {
     TN_DEBUG2( "CThumbnailStore::GetMissingSizesL() aSourceType == %d", aSourceType );
-    
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_GETMISSINGSIZESL, "CThumbnailStore::GetMissingSizesL;aSourceType=%d", aSourceType );
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::GetMissingSizesL() read only, skip..." );
@@ -1530,6 +1639,7 @@
                     {
                     TN_DEBUG4( "CThumbnailStore::GetMissingSizesL() skip, aCheckGridSizeOnly = %d and  iPersistentSizes[%d].iSizeType == %d", 
                             aCheckGridSizeOnly, i, iPersistentSizes[i].iSizeType );
+                    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_GETMISSINGSIZESL, "CThumbnailStore::GetMissingSizesL;aCheckGridSizeOnly=%u", aCheckGridSizeOnly );
                     }
 				else
 				    {
@@ -1546,6 +1656,7 @@
     TInt missingSizeCount = aMissingSizes.Count();
         
     TN_DEBUG2( "CThumbnailStore::GetMissingSizesL() missingSizeCount == %d", missingSizeCount );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_GETMISSINGSIZESL, "CThumbnailStore::GetMissingSizesL;missingSizeCount=%d", missingSizeCount );
     
     // check temp table first
     RSqlStatement* stmt = NULL;
@@ -1573,6 +1684,7 @@
                 if ( aMissingSizes[ i ].iType == size )
                     {
                     TN_DEBUG1( "CThumbnailStore::GetMissingSizesL() -- thumbnail found" );
+                    OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_GETMISSINGSIZESL, "CThumbnailStore::GetMissingSizesL - thumbnail found" );
                     aMissingSizes.Remove( i );
                     missingSizeCount--;
                     break;
@@ -1617,7 +1729,7 @@
     aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aThumbnailRealSize )
     {
     TN_DEBUG3( "CThumbnailStore::FetchThumbnailL(%S) aThumbnailSize==%d", &aPath, aThumbnailSize );
-    
+    OstTraceExt2( TRACE_NORMAL, CTHUMBNAILSTORE_FETCHTHUMBNAILL, "CThumbnailStore::FetchThumbnailL;aPath=%S;aThumbnailSize=%u", aPath, aThumbnailSize );
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() read only, skip..." );
@@ -1636,6 +1748,7 @@
     TInt column = 0;
     
     TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() -- TEMP TABLE lookup" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_FETCHTHUMBNAILL, "CThumbnailStore::FetchThumbnailL - TEMP TABLE lookup" );
 
     RSqlStatement* stmt = NULL;
     stmt = &iStmt_KThumbnailSelectTempInfoByPath;
@@ -1655,6 +1768,7 @@
     if(rowStatus != KSqlAtRow)
        {
        TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() -- MAIN TABLE lookup" );
+       OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_FETCHTHUMBNAILL, "CThumbnailStore::FetchThumbnailL - MAIN TABLE lookup" );
       
        CleanupStack::PopAndDestroy( stmt );
        stmt = &iStmt_KThumbnailSelectInfoByPath;
@@ -1674,6 +1788,7 @@
     if(rowStatus == KSqlAtRow)
        {
         TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() -- thumbnail found" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_FETCHTHUMBNAILL, "CThumbnailStore::FetchThumbnailL - thumbnail found" );
         
         // Check whether blacklisted thumbnail entry modified. 
         // If thumbnail is marked as blacklisted and timestamp has 
@@ -1731,6 +1846,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailStore::FetchThumbnailL() -- thumbnail NOT found" );
+        OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_FETCHTHUMBNAILL, "CThumbnailStore::FetchThumbnailL - thumbnail NOT found" );
         }
         
     CleanupStack::PopAndDestroy( stmt );
@@ -1747,6 +1863,7 @@
                                          TBool aTransaction )
     {
     TN_DEBUG2( "CThumbnailStore::DeleteThumbnailsL(%S)", &aPath );
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL;aPath=%S", aPath );
 
     if(iReadOnly)
         {
@@ -1781,6 +1898,7 @@
         }
         
     TN_DEBUG1( "CThumbnailStore::DeleteThumbnailsByPathL() -- TEMP TABLE lookup" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - TEMP TABLE lookup" );
     
     RSqlStatement* stmt = NULL;
     RSqlStatement* stmt_info = NULL;
@@ -1819,6 +1937,7 @@
         User::LeaveIfError( err );
         
         TN_DEBUG1( "CThumbnailStore::DeleteThumbnailsByPathL() -- TEMP TABLE lookup - thumbnail deleted" );
+        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - TEMP TABLE lookup - thumbnail deleted" );
        
         // fetch another row (temp table rowIDs are updated immediately)
         stmt->Reset();
@@ -1839,6 +1958,7 @@
         {
         //look from real table 
         TN_DEBUG1( "CThumbnailStore::DeleteThumbnailByPathL() -- MAIN TABLE lookup" );
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - MAIN TABLE lookup" );
         
         stmt = &iStmt_KThumbnailSqlSelectRowIDInfoByPath;
         CleanupStack::PushL(TCleanupItem(ResetStatement, stmt));
@@ -1873,6 +1993,7 @@
             User::LeaveIfError( err );
            
             TN_DEBUG1( "CThumbnailStore::DeleteThumbnailByPathL() -- MAIN TABLE lookup - thumbnail deleted" );
+            OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - MAIN TABLE lookup - thumbnail deleted" );
             
             rowStatus = stmt->Next();
             }
@@ -1887,6 +2008,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailStore::DeleteThumbnailByPathL() -- MAIN TABLE lookup" );        
+        OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - MAIN TABLE lookup" );
     
         stmt = &iStmt_KThumbnailSqlSelectRowIDInfoByPath;
         CleanupStack::PushL(TCleanupItem(ResetStatement, stmt));
@@ -1903,6 +2025,7 @@
         if (rowStatus == KSqlAtRow)
             {        
             TN_DEBUG1( "CThumbnailStore::DeleteThumbnailByPathL() -- add to Deleted" );
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - add to Deleted" );
         
             // only add path to deleted table
             stmt = &iStmt_KThumbnailSqlInsertDeleted;
@@ -1919,6 +2042,7 @@
         else
             {
             TN_DEBUG1( "CThumbnailStore::DeleteThumbnailByPathL() -- no thumbs in MAIN" );
+            OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - no thumbs in MAIN" );
             }
         }    
     
@@ -1930,13 +2054,16 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::DeleteThumbnailByPathL() took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP8_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL - took;tookTime=%d", tookTime );
 #endif
     
     // start maintenance if rows in main table were marked
     if (!aForce && count > 0)
         {
         TN_DEBUG2( "CThumbnailStore::DeleteThumbnailByPathL() -- MAIN TABLE lookup - %d rows marked deleted", count);
+        OstTrace1( TRACE_NORMAL, DUP9_CTHUMBNAILSTORE_DELETETHUMBNAILSL, "CThumbnailStore::DeleteThumbnailsL -- MAIN TABLE lookup - rows marked deleted;count=%d", count );
         
         iDeleteThumbs = ETrue;
         iActivityManager->Start();
@@ -1952,7 +2079,7 @@
 void CThumbnailStore::RenameThumbnailsL( const TDesC& aCurrentPath, const TDesC& aNewPath )
     {
     TN_DEBUG2( "CThumbnailStore::RenameThumbnailsL(%S)", &aCurrentPath );
-    
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSTORE_RENAMETHUMBNAILSL, "CThumbnailStore::RenameThumbnailsL;aCurrentPath=%S", aCurrentPath );
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::RenameThumbnailsL() read only, skip..." );
@@ -1981,6 +2108,7 @@
     transaction.BeginL();
         
     TN_DEBUG1( "CThumbnailStore::RenameThumbnailsL() -- TEMP TABLE" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_RENAMETHUMBNAILSL, "CThumbnailStore::RenameThumbnailsL - TEMP TABLE" );
     
     RSqlStatement* stmt = NULL;
     stmt = &iStmt_KThumbnailTempRename;
@@ -1997,6 +2125,7 @@
     User::LeaveIfError( stmt->Exec() );
     
     TN_DEBUG1( "CThumbnailStore::RenameThumbnailsL() -- MAIN TABLE" );
+    OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_RENAMETHUMBNAILSL, "CThumbnailStore::RenameThumbnailsL - MAIN TABLE" );
     
     CleanupStack::PopAndDestroy( stmt );
     stmt = &iStmt_KThumbnailRename;
@@ -2025,7 +2154,9 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::RenameThumbnailsL() took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_RENAMETHUMBNAILSL, "CThumbnailStore::RenameThumbnailsL;tookTime=%d", tookTime );
 #endif      
     }
 
@@ -2045,6 +2176,7 @@
 void CThumbnailStore::FlushCacheTable( TBool aForce )
     {
     TN_DEBUG1("CThumbnailStore::FlushCacheTable() in");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - in" );
     
     StopAutoFlush();
     
@@ -2058,6 +2190,7 @@
         {
         // cache empty or db unusable
         TN_DEBUG1( "CThumbnailStore::FlushCacheTable() error ");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - error" );
         return;
         }
     
@@ -2067,6 +2200,7 @@
     if(ret != KErrNone)
        {
        TN_DEBUG2( "CThumbnailStore::FlushCacheTable() error checking MTP sync: %d", ret);
+       OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - error checking MTP sync;ret=%d", ret );
        }
     
     //set init max flush delay
@@ -2078,6 +2212,7 @@
         {
         //MTP or MPX harvesting active, allow longer flush -> bigger batch size
         TN_DEBUG1("CThumbnailStore::FlushCacheTable() MTP sync, longer flush..");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - MTP sync, longer flush.." );
         aMaxFlushDelay = KMaxMTPFlushDelay;
         }
     
@@ -2085,6 +2220,7 @@
     if( iBatchItemCount == 1)
         {
         TN_DEBUG2("CThumbnailStore::FlushCacheTable() calculate new batch size iPreviousFlushDelay = %d", iPreviousFlushDelay);
+        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;iPreviousFlushDelay=%d", iPreviousFlushDelay );
         //adjust batch size dynamically between min and max based on previous flush speed
         if( iPreviousFlushDelay > 0 )
             {
@@ -2092,10 +2228,15 @@
             iBatchFlushItemCount = (TInt)aNewBatchFlushItemCount;
 
             TN_DEBUG2("CThumbnailStore::FlushCacheTable() aMaxFlushDelay %e", aMaxFlushDelay);      
+            OstTrace1( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;aMaxFlushDelay=%d", aMaxFlushDelay );
             TN_DEBUG2("CThumbnailStore::FlushCacheTable() aPreviousFlushDelay %e", aPreviousFlushDelay);      
+			OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;aPreviousFlushDelay=%d", aPreviousFlushDelay );
 			TN_DEBUG2("CThumbnailStore::FlushCacheTable() aBatchFlushItemCount %e", aBatchFlushItemCount);      
+            OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;aBatchFlushItemCount=%d", aBatchFlushItemCount );
             TN_DEBUG2("CThumbnailStore::FlushCacheTable() aNewBatchFlushItemCount %e", aNewBatchFlushItemCount);
+            OstTrace1( TRACE_NORMAL, DUP8_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;aNewBatchFlushItemCount=%d", aNewBatchFlushItemCount );
             TN_DEBUG2("CThumbnailStore::FlushCacheTable() iBatchFlushItemCount %d", iBatchFlushItemCount);
+            OstTrace1( TRACE_NORMAL, DUP9_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;iBatchFlushItemCount=%d", iBatchFlushItemCount );
             
             if( iBatchFlushItemCount < KMInBatchItems )
                 {
@@ -2114,6 +2255,7 @@
         }
     
     TN_DEBUG3("CThumbnailStore::FlushCacheTable() iBatchFlushItemCount = %d, iBatchItemCount = %d", iBatchFlushItemCount, iBatchItemCount);
+    OstTrace0( TRACE_NORMAL, DUP10_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable" );
     
     if( iBatchItemCount < iBatchFlushItemCount && !aForce)
        {
@@ -2127,15 +2269,18 @@
     // Move data from temp table to main....
     TInt err_begin = iDatabase.Exec( KThumbnailBeginTransaction );
     TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailBeginTransaction %d", err_begin);
+    OstTrace1( TRACE_NORMAL, DUP11_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - KThumbnailBeginTransaction;err_begin=%d", err_begin );
     
     TInt err_tempinfo = iDatabase.Exec( KThumbnailMoveFromTempInfoToMainTable );
     TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailMoveFromTempInfoToMainTable %d", err_tempinfo);
+    OstTrace1( TRACE_NORMAL, DUP12_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - KThumbnailMoveFromTempInfoToMainTable;err_tempinfo=%d", err_tempinfo );
     
 #ifdef _DEBUG
     if(err_tempinfo < 0)
         {
         TPtrC errorMsg = iDatabase.LastErrorMessage();
         TN_DEBUG2( "CThumbnailStore::FlushCacheTable() lastError %S", &errorMsg);
+        OstTraceExt1( TRACE_NORMAL, DUP13_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - lastError;errorMsg=%S", errorMsg );
         }
 #endif
     
@@ -2146,24 +2291,29 @@
         {
         TPtrC errorMsg2 = iDatabase.LastErrorMessage();
         TN_DEBUG2( "CThumbnailStore::FlushCacheTable() KThumbnailMoveFromTempDataToMainTable %S", &errorMsg2);
+        OstTraceExt1( TRACE_NORMAL, DUP14_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - KThumbnailMoveFromTempDataToMainTable;errorMsg2=%S", errorMsg2 );
         }
 #endif
     
     TInt err_delinfo = iDatabase.Exec( KThumbnailDeleteFromTempInfoTable );
     TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailDeleteFromTempInfoTable %d", err_delinfo);
+    OstTrace1( TRACE_NORMAL, DUP15_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - KThumbnailDeleteFromTempInfoTable;err_delinfo=%d", err_delinfo );
     
     TInt err_deldata = iDatabase.Exec( KThumbnailDeleteFromTempDataTable );
     TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailDeleteFromTempDataTable %d", err_deldata);
+    OstTrace1( TRACE_NORMAL, DUP16_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable;err_deldata=%d", err_deldata );
    
     if( err_tempinfo < 0 || err_tempdata < 0  || err_delinfo < 0  || err_deldata < 0 )
         {
         TInt err = iDatabase.Exec( KThumbnailRollbackTransaction );
         TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailRollbackTransaction %d", err);
+        OstTrace1( TRACE_NORMAL, DUP17_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - KThumbnailRollbackTransaction;err=%d", err );
         }
     else
         {
         TInt err_commit = iDatabase.Exec( KThumbnailCommitTransaction );
         TN_DEBUG2("CThumbnailStore::FlushCacheTable() KThumbnailCommitTransaction %d", err_commit);
+        OstTrace0( TRACE_NORMAL, DUP18_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable" );
         }
     
     // db got corrupted
@@ -2171,6 +2321,7 @@
        err_tempdata == KSqlErrCorrupt || err_tempdata == KErrCorrupt)
         {
         TN_DEBUG1("CThumbnailStore::FlushCacheTable() db corrupted");
+        OstTrace0( TRACE_NORMAL, DUP19_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - db corrupted" );
     
         // open new
         TRAP_IGNORE(OpenDatabaseL(ETrue));
@@ -2180,11 +2331,13 @@
     iPreviousFlushDelay = (TInt)iStopFlush.MicroSecondsFrom(iStartFlush).Int64()/1000;
     
     TN_DEBUG2( "CThumbnailStore::FlushCacheTable() took %d ms", iPreviousFlushDelay);
+    OstTrace1( TRACE_NORMAL, DUP20_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - took ms ;iPreviousFlushDelay=%d", iPreviousFlushDelay );
         
     //cache flushed
     iBatchItemCount = 0;
 
     TN_DEBUG1("CThumbnailStore::FlushCacheTable() out");
+    OstTrace0( TRACE_NORMAL, DUP21_CTHUMBNAILSTORE_FLUSHCACHETABLE, "CThumbnailStore::FlushCacheTable - out" );
     }
 
 // -----------------------------------------------------------------------------
@@ -2194,7 +2347,7 @@
 void CThumbnailStore::StartAutoFlush()
     {
     TN_DEBUG1( "CThumbnailStore::StartAutoFlush()" );
-    
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_STARTAUTOFLUSH, "CThumbnailStore::StartAutoFlush" );
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::StartAutoFlush() read only, skip..." );
@@ -2215,6 +2368,7 @@
     if (err != KErrNone)
         {
         TN_DEBUG2( "CThumbnailStore::StartAutoFlush() - Error creating timer (%d)", err );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_STARTAUTOFLUSH, "CThumbnailStore::StartAutoFlush - - Error creating timer;err=%d", err );
         }
     else
         {
@@ -2230,6 +2384,7 @@
 void CThumbnailStore::StopAutoFlush()
     {
     TN_DEBUG1( "CThumbnailStore::StopAutoFlush()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_STOPAUTOFLUSH, "CThumbnailStore::StopAutoFlush" );
     if( iAutoFlushTimer )
         {
         iAutoFlushTimer->Cancel();
@@ -2243,6 +2398,7 @@
 void CThumbnailStore::StartMaintenance()
     {
     TN_DEBUG1( "CThumbnailStore::StartMaintenance()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_STARTMAINTENANCE, "CThumbnailStore::StartMaintenance" );
     TInt err = KErrNone;
     
     if( iMaintenanceTimer && iMaintenanceTimer->IsActive() )
@@ -2257,6 +2413,7 @@
     if (err != KErrNone && !iMaintenanceTimer)
         {
         TN_DEBUG2( "CThumbnailStore::StartMaintenanceTimer() - Error creating timer (%d)", err );
+        OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_STARTMAINTENANCE, "CThumbnailStore::StartMaintenance - Error creating timer ;err=%d", err );
         }
     else
         {
@@ -2272,6 +2429,7 @@
 TInt CThumbnailStore::AutoFlushTimerCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbnailStore::AutoFlushTimerCallBack()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_AUTOFLUSHTIMERCALLBACK, "CThumbnailStore::AutoFlushTimerCallBack" );
     CThumbnailStore* self = static_cast<CThumbnailStore*>( aAny );
     
     self->FlushCacheTable(ETrue);
@@ -2295,26 +2453,32 @@
     if(ret != KErrNone || MPXHarvesting)
         {
         TN_DEBUG3( "CThumbnailStore::MaintenanceTimerCallBack() KMPXHarvesting err == %d, MPXHarvesting == %d", ret, MPXHarvesting);
+        OstTraceExt2( TRACE_NORMAL, CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack;ret=%d;MPXHarvesting=%d", ret, MPXHarvesting );
         self->iIdle = EFalse;
         }
     TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() KMPXHarvesting == %d", MPXHarvesting);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack;MPXHarvesting=%d", MPXHarvesting );
 
     ret = RProperty::Get(KTAGDPSNotification, KDaemonProcessing, DaemonProcessing);
     if(ret != KErrNone || DaemonProcessing)
         {
         TN_DEBUG3( "CThumbnailStore::MaintenanceTimerCallBack() KDaemonProcessing err == %d, DaemonProcessing == %d", ret, DaemonProcessing);
+        OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack;ret=%d;DaemonProcessing=%d", ret, DaemonProcessing );
         self->iIdle = EFalse;
         }
     TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() DaemonProcessing == %d", DaemonProcessing);
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack;DaemonProcessing=%d", DaemonProcessing );
     
     if (self->iIdle)
         {
         TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() - maintenance, store %d", self->iDrive);
+        OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - maintenance, store;self->iDrive=%d", self->iDrive );
     
         // thumbmnail deletion
         if (self->iDeleteThumbs)
             {
             TN_DEBUG1( "CThumbnailStore::MaintenanceTimerCallBack() - cleanup");
+            OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - cleanup" );
         
             TInt deleteCount = 0;
             
@@ -2323,6 +2487,7 @@
             if (err != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() - cleanup failed, err %d", err);
+                OstTrace1( TRACE_NORMAL, DUP6_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - cleanup failed;err=%d", err );
                 return err;
                 }
             
@@ -2330,6 +2495,7 @@
             if (deleteCount < KStoreMaintenanceDeleteLimit || deleteCount == 0)
                 {
                 TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() - cleanup finished, store %d", self->iDrive);
+                OstTrace1( TRACE_NORMAL, DUP7_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - cleanup finished, store;self->iDrive=%d", self->iDrive );
                 self->iDeleteThumbs = EFalse;
                 }     
             }
@@ -2338,6 +2504,7 @@
         else if (self->iCheckFilesExist)
             {
             TN_DEBUG1( "CThumbnailStore::MaintenanceTimerCallBack() - file existence check");
+            OstTrace0( TRACE_NORMAL, DUP8_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - file existence check" );
         
             TBool finished = EFalse;
         
@@ -2345,6 +2512,7 @@
             if (err != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() - file existence check failed, err %d", err);
+                OstTrace1( TRACE_NORMAL, DUP9_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - file existence check failed;err=%d", err );
                 return err;
                 }
         
@@ -2352,6 +2520,7 @@
             if (finished)
                 {
                 TN_DEBUG2( "CThumbnailStore::MaintenanceTimerCallBack() - file existence check finished, store %d", self->iDrive);
+                OstTrace1( TRACE_NORMAL, DUP10_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - file existence check finished, store;self->iDrive=%d", self->iDrive );
                 self->iCheckFilesExist = EFalse;
                 }
             }
@@ -2360,11 +2529,13 @@
         if (self->iIdle && ( self->iDeleteThumbs || self->iCheckFilesExist) )
             {
             TN_DEBUG1( "CThumbnailStore::MaintenanceTimerCallBack() - continue maintenance");
+            OstTrace0( TRACE_NORMAL, DUP11_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - continue maintenance" );
             self->StartMaintenance();
             }  
         else if (!self->iDeleteThumbs && !self->iCheckFilesExist)
             {
             TN_DEBUG1( "CThumbnailStore::MaintenanceTimerCallBack() - no more maintenance");
+            OstTrace0( TRACE_NORMAL, DUP12_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - no more maintenance" );
         
             // no need to monitor activity anymore
             self->iActivityManager->Cancel();
@@ -2373,6 +2544,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailStore::MaintenanceTimerCallBack() - device not idle");
+        OstTrace0( TRACE_NORMAL, DUP13_CTHUMBNAILSTORE_MAINTENANCETIMERCALLBACK, "CThumbnailStore::MaintenanceTimerCallBack - device not idle" );
         }
 
     return KErrNone; // Return value ignored by CPeriodic
@@ -2381,6 +2553,7 @@
 TBool CThumbnailStore::CheckModifiedByPathL( const TDesC& aPath, const TInt64 aModified, TBool& modifiedChanged )
     {
     TN_DEBUG2( "CThumbnailStore::CheckModifiedByPathL() %S", &aPath);
+    OstTraceExt1( TRACE_NORMAL, CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL;aPath=%S", aPath );
     
     if(iReadOnly)
     	{
@@ -2414,6 +2587,7 @@
     TBool checkMain = EFalse;
    
     TN_DEBUG1( "CThumbnailStore::CheckModifiedL() -- temp" );
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- temp" );
    
     while(rowStatus == KSqlAtRow || !checkMain)
         {
@@ -2423,21 +2597,26 @@
             TInt64 oldModified = stmt->ColumnInt64( column );
            
             TN_DEBUG2( "CThumbnailStore::CheckModifiedL() -- timestamp old %Ld", oldModified);
+            OstTraceExt1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- timestamp old;oldModified=%Ld", oldModified );
             TN_DEBUG2( "CThumbnailStore::CheckModifiedL() -- timestamp mds %Ld", aModified);
+            OstTraceExt1( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- timestamp mds;aModified=%Ld", aModified );
           
             if (oldModified < aModified)
                 {
                 TN_DEBUG1( "CThumbnailStore::CheckModifiedL() -- timestamp is newer than original" );
+                OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- timestamp is newer than original" );
                 modifiedChanged = ETrue;
                 break;
                 }
             else if (oldModified > aModified)
                 {
                 TN_DEBUG1( "CThumbnailStore::CheckModifiedL() -- timestamp is older than original" );
+                OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- timestamp is older than original" );
                 }
             else if (oldModified == aModified)
                 {
                 TN_DEBUG1( "CThumbnailStore::CheckModifiedL() -- timestamp is the same as original" );
+                OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- timestamp is the same as original" );
                 }
             
             rowStatus = stmt->Next();
@@ -2447,6 +2626,7 @@
         if(rowStatus != KSqlAtRow && !checkMain && !modifiedChanged)
             {
             TN_DEBUG1( "CThumbnailStore::CheckModifiedL() -- main" );
+            OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSTORE_CHECKMODIFIEDBYPATHL, "CThumbnailStore::CheckModifiedByPathL -- main" );
             //come here only once
             checkMain = ETrue;
            
@@ -2485,6 +2665,7 @@
 void CThumbnailStore::PrepareBlacklistedItemsForRetryL()
     {
     TN_DEBUG1( "CThumbnailStore::PrepareBlacklistedItemsForRetry()" );
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_PREPAREBLACKLISTEDITEMSFORRETRYL, "CThumbnailStore::PrepareBlacklistedItemsForRetryL" );
     
     RSqlStatement stmt;
     CleanupClosePushL( stmt );
@@ -2497,6 +2678,7 @@
     TInt err = stmt.Exec();
    
     TN_DEBUG2( "CThumbnailStore::PrepareBlacklistedItemsForRetryL() - main table, err=%d", err );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_PREPAREBLACKLISTEDITEMSFORRETRYL, "CThumbnailStore::PrepareBlacklistedItemsForRetryL - main table;err=%d", err );
     
     CleanupStack::PopAndDestroy( &stmt );
     }
@@ -2508,7 +2690,7 @@
 TInt CThumbnailStore::DeleteMarkedL()
     {
     TN_DEBUG1( "CThumbnailStore::DeleteMarkedL()" );
-    
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_DELETEMARKEDL, "CThumbnailStore::DeleteMarkedL" );
     if(iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::DeleteMarkedL() read only, skip..." );
@@ -2573,6 +2755,7 @@
        deleteCount++;
        
        TN_DEBUG1( "CThumbnailStore::DeleteMarkedL() - thumbnail deleted" );
+       OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_DELETEMARKEDL, "CThumbnailStore::DeleteMarkedL - thumbnail deleted" );
        
        rowStatus = stmt->Next();
        }
@@ -2592,7 +2775,9 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::DeleteMarkedL() took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_DELETEMARKEDL, "CThumbnailStore::DeleteMarkedL - took ms;tookTime=%d", tookTime );
 #endif
     
     return deleteCount;
@@ -2605,7 +2790,7 @@
 TInt CThumbnailStore::FileExistenceCheckL()
     {
     TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL()" );
-	
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_FILEEXISTENCECHECKL, "CThumbnailStore::FileExistenceCheckL" );
     if(iReadOnly)
 		{
 		TN_DEBUG1( "CThumbnailStore::FileExistenceCheckL() read only, skip..." );
@@ -2696,7 +2881,9 @@
     
 #ifdef _DEBUG
     aStop.UniversalTime();
+    TInt tookTime = (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000;
     TN_DEBUG2( "CThumbnailStore::FileExistenceCheckL() took %d ms", (TInt)aStop.MicroSecondsFrom(aStart).Int64()/1000);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_FILEEXISTENCECHECKL, "CThumbnailStore::FileExistenceCheckL - took ms;tookTime=%d", tookTime );
 #endif
     
     return finished;
@@ -2736,6 +2923,7 @@
     if (iUnrecoverable && !iReadOnly)
         {
         TN_DEBUG1( "CThumbnailStore::CheckDbState() - database in unrecoverable state" );
+        OstTrace0( TRACE_NORMAL, CTHUMBNAILSTORE_CHECKDBSTATE, "CThumbnailStore::CheckDbState" );
         __ASSERT_DEBUG( !iUnrecoverable, ThumbnailPanic( EThumbnailDatabaseUnrecoverable ));
         
         return KStoreUnrecoverableErr;
@@ -2749,6 +2937,7 @@
 void CThumbnailStore::HandleDiskSpaceNotificationL( TBool aDiskFull )
     {
     TN_DEBUG2( "CThumbnailStore::HandleDiskSpaceNotificationL() aDiskFull = %d", aDiskFull );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_HANDLEDISKSPACENOTIFICATIONL, "CThumbnailStore::HandleDiskSpaceNotificationL;aDiskFull=%u", aDiskFull );
     iDiskFull = aDiskFull;
     }
 
@@ -2759,6 +2948,9 @@
 #endif
     {
     TN_DEBUG2( "CThumbnailStore::HandleDiskSpaceError() aError = %d", aError );
+#ifdef _DEBUG
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_HANDLEDISKSPACEERROR, "CThumbnailStore::HandleDiskSpaceError;aError=%d", aError );
+#endif
     }
 
 TBool CThumbnailStore::IsDiskFull()
@@ -2778,7 +2970,7 @@
 void CThumbnailStore::ActivityChanged(const TBool aActive)
     {
     TN_DEBUG2( "CThumbnailStore::ActivityChanged() aActive == %d", aActive);
-    
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTORE_ACTIVITYCHANGED, "CThumbnailStore::ActivityChanged;aActive=%u", aActive );
     if( iReadOnly )
         {
         TN_DEBUG1( "CThumbnailStore::ActivityChanged() read only, skip..." );
@@ -2798,6 +2990,7 @@
         if(ret != KErrNone || MPXHarvesting)
             {
             TN_DEBUG3( "CThumbnailStore::ActivityChanged() KMPXHarvesting err == %d, MPXHarvesting == %d", ret, MPXHarvesting);
+            OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILSTORE_ACTIVITYCHANGED, "CThumbnailStore::ActivityChanged;ret=%d;MPXHarvesting=%d", ret, MPXHarvesting );
             iIdle = EFalse;
             return;
             }
@@ -2806,11 +2999,13 @@
         if(ret != KErrNone || DaemonProcessing)
             {
             TN_DEBUG3( "CThumbnailStore::ActivityChanged() KDaemonProcessing err == %d DaemonProcessing == %d", ret, DaemonProcessing );
+            OstTraceExt2( TRACE_NORMAL, DUP2_CTHUMBNAILSTORE_ACTIVITYCHANGED, "CThumbnailStore::ActivityChanged - KDaemonProcessing;ret=%d;DaemonProcessing=%d", ret, DaemonProcessing );
             iIdle = EFalse;
             return;
             }
         
         TN_DEBUG1( "CThumbnailStore::ActivityChanged() - starting maintenance");
+        OstTrace0( TRACE_NORMAL, DUP3_CTHUMBNAILSTORE_ACTIVITYCHANGED, "CThumbnailStore::ActivityChanged - starting maintenance" );
         iIdle = ETrue;
         StartMaintenance();
         }
@@ -2845,6 +3040,7 @@
 TDriveNumber CThumbnailStoreDiskSpaceNotifierAO::GetDriveNumberL( const TDesC& aFilename )
     {
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::GetDriveNumberL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_GETDRIVENUMBERL, "CThumbnailStoreDiskSpaceNotifierAO::GetDriveNumberL" );
     TLex driveParser( aFilename );
     
     TChar driveChar = driveParser.Get();
@@ -2852,6 +3048,7 @@
     if( 0 == driveChar || TChar( ':' ) != driveParser.Peek() )
         {
         TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::GetDriveNumberL() KErrArgument");
+        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_GETDRIVENUMBERL, "CThumbnailStoreDiskSpaceNotifierAO::GetDriveNumberL - KErrArgument" );
         User::Leave( KErrArgument );
         }
         
@@ -2865,6 +3062,7 @@
 CThumbnailStoreDiskSpaceNotifierAO::~CThumbnailStoreDiskSpaceNotifierAO()
     {
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::~CThumbnailStoreDiskSpaceNotifierAO()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_CTHUMBNAILSTOREDISKSPACENOTIFIERAO, "CThumbnailStoreDiskSpaceNotifierAO::~CThumbnailStoreDiskSpaceNotifierAO" );
     Cancel();
 
     iFileServerSession.Close();
@@ -2873,6 +3071,7 @@
 void CThumbnailStoreDiskSpaceNotifierAO::RunL()
     {   
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL" );
     TVolumeInfo volumeInfo;
 
     if ( iState == CThumbnailStoreDiskSpaceNotifierAO::ENormal )
@@ -2892,6 +3091,7 @@
                     if( volumeInfo.iFree < iThreshold )
                         {
                         TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() FULL");
+                        OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - FULL" );
                         iDiskFull = ETrue;
                         iObserver.HandleDiskSpaceNotificationL( iDiskFull );
                         iState = EIterate;
@@ -2904,6 +3104,7 @@
                     else
                         {
                         TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() NOT FULL");
+                        OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - NOT FULL" );
                         iDiskFull = EFalse;
                         iObserver.HandleDiskSpaceNotificationL( iDiskFull );
                         }
@@ -2911,6 +3112,7 @@
                 else
                     {
                     TN_DEBUG2( "CThumbnailStoreDiskSpaceNotifierAO::RunL() error %d NOT FULL", ret);
+                    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - NOT FULL;ret=%d", ret );
                     iDiskFull = EFalse;
                     iObserver.HandleDiskSpaceNotificationL( iDiskFull );
                     User::Leave( ret );
@@ -2921,6 +3123,7 @@
 
             case KErrArgument:
                 TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() KErrArgument");
+                OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - KErrArgument" );
                 User::Leave( status );
                 break;
             default:
@@ -2949,6 +3152,7 @@
                 if ( volumeInfo.iFree >= iThreshold )
                     {
                     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() NOT FULL");
+                    OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - NOT FULL" );
                     iDiskFull = EFalse;
                     }
                 }
@@ -2956,6 +3160,7 @@
         else
             {
             TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() NOT FULL");
+            OstTrace0( TRACE_NORMAL, DUP6_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - NOT FULL" );
             iDiskFull = EFalse;
             }
         iState = ENormal;
@@ -2965,6 +3170,7 @@
     else
         {
         TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::RunL() KErrGeneral");
+        OstTrace0( TRACE_NORMAL, DUP7_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNL, "CThumbnailStoreDiskSpaceNotifierAO::RunL - KErrGeneral" );
         User::Leave( KErrGeneral );
         }
     }
@@ -2972,6 +3178,7 @@
 TInt CThumbnailStoreDiskSpaceNotifierAO::RunError(TInt aError)
     {
     TN_DEBUG2( "CThumbnailStoreDiskSpaceNotifierAO::RunError() %d", aError);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_RUNERROR, "CThumbnailStoreDiskSpaceNotifierAO::RunError;aError=%d", aError );
     
     iObserver.HandleDiskSpaceError( aError );
     
@@ -2981,6 +3188,7 @@
 void CThumbnailStoreDiskSpaceNotifierAO::DoCancel()
     {
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::DoCancel()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_DOCANCEL, "CThumbnailStoreDiskSpaceNotifierAO::DoCancel" );
     
     if( IsActive() )
         {   
@@ -2994,12 +3202,14 @@
     iObserver( aObserver ), iThreshold( aThreshold ), iDrive( aDrive ), iState( CThumbnailStoreDiskSpaceNotifierAO::ENormal ), iDiskFull( EFalse )
     {
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::CThumbnailStoreDiskSpaceNotifierAO()");
+    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_CTHUMBNAILSTOREDISKSPACENOTIFIERAO, "CThumbnailStoreDiskSpaceNotifierAO::CThumbnailStoreDiskSpaceNotifierAO" );
     CActiveScheduler::Add( this );
     }
 
 void CThumbnailStoreDiskSpaceNotifierAO::ConstructL()
     {   
     TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::ConstructL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_CONSTRUCTL, "CThumbnailStoreDiskSpaceNotifierAO::ConstructL" );
     TInt KMessageSlotCount = 2; // slots for NotifyDiskSpace and NotifyDiskSpaceCancel
 
     User::LeaveIfError( iFileServerSession.Connect( KMessageSlotCount ) );
@@ -3012,12 +3222,14 @@
         if ( volumeInfo.iFree < iThreshold )
             {
             TN_DEBUG1( "CThumbnailStoreDiskSpaceNotifierAO::ConstructL() FULL");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_CONSTRUCTL, "CThumbnailStoreDiskSpaceNotifierAO::ConstructL - FULL" );
             iDiskFull = ETrue;
             }
         }
     else
         {
         TN_DEBUG2( "CThumbnailStoreDiskSpaceNotifierAO::ConstructL() error %d NOT FULL", ret);
+        OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILSTOREDISKSPACENOTIFIERAO_CONSTRUCTL, "CThumbnailStoreDiskSpaceNotifierAO::ConstructL - NOT FULL;ret=%d", ret );
         iDiskFull = EFalse;
         User::Leave( ret );
         }
@@ -3030,6 +3242,7 @@
 void CThumbnailStoreDiskSpaceNotifierAO::StartNotifier()
     {   
     TN_DEBUG2( "CThumbnailStoreDiskSpaceNotifierAO::StartNotifier() iDrive == %d", iDrive);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILSTOREDISKSPACENOTIFIERAO_STARTNOTIFIER, "CThumbnailStoreDiskSpaceNotifierAO::StartNotifier;iDrive=%d", iDrive );
     iFileServerSession.NotifyDiskSpace( iThreshold, iDrive, iStatus );
     
     SetActive();
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtask.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,11 @@
 #include "thumbnailpanic.h"
 #include "thumbnailserversession.h"  // ConvertSqlErrToE32Err()
 #include "thumbnailmanagerconstants.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailtaskTraces.h"
+#endif
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -85,6 +90,9 @@
 void CThumbnailTask::StartL()
     {
     TN_DEBUG3( "CThumbnailTask(0x%08x)::StartL() iState == %d ", this, iState );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASK_STARTL, "CThumbnailTask::StartL;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASK_STARTL, "CThumbnailTask::StartL;iState=%u", iState );
+    
     __ASSERT_DEBUG(( iState != ERunning ), ThumbnailPanic( EThumbnailAlreadyRunning ));
     iState = ERunning;
     }
@@ -108,6 +116,8 @@
     {
     TN_DEBUG4( "CThumbnailTask(0x%08x)::Complete(aReason=%d) iState was %d",
         this, aReason, iState );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASK_COMPLETE, "CThumbnailTask::Complete;this=%o", this );
+    OstTraceExt2( TRACE_NORMAL, DUP1_CTHUMBNAILTASK_COMPLETE, "CThumbnailTask::Complete;aReason=%d;iState=%u", aReason, iState );
     
     if ( iState != EComplete )
         {
@@ -156,6 +166,9 @@
     // This is called if StartL() left. Complete this task with an error and
     // continue processing.
     TN_DEBUG3( "CThumbnailTask(0x%08x)::StartError(aError=%d)", this, aError );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASK_STARTERROR, "CThumbnailTask::StartError;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASK_STARTERROR, "CThumbnailTask::StartError;aError=%d", aError );
+    
     Complete( aError );
     }
 
@@ -189,6 +202,7 @@
     else
         {
         TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - message null", this);
+        OstTrace1( TRACE_NORMAL, CTHUMBNAILTASK_SETMESSAGEDATA, "CThumbnailTask::SetMessageData - message null;this=%o", this );
         }
     }
 
@@ -247,6 +261,7 @@
 TBool CThumbnailTask::ClientThreadAlive(const TBool aGetThread)
     {
     TN_DEBUG1( "CThumbnailTask::ClientThreadAlive()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASK_CLIENTTHREADALIVE, "CThumbnailTask::ClientThreadAlive" );
     
     if ( iMessage.Handle())
         {
@@ -257,6 +272,7 @@
             if (err != KErrNone)
                 {
                 TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - client thread not found", this);
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASK_CLIENTTHREADALIVE, "CThumbnailTask::ClientThreadAlive - client thread not found;this=%o", this );
             
                 ResetMessageData();
                 
@@ -269,6 +285,7 @@
         if( exitType != EExitPending )
             {
             TN_DEBUG2( "CThumbnailTask(0x%08x)::ClientThreadAlive() - client thread died", this);
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILTASK_CLIENTTHREADALIVE, "CThumbnailTask::ClientThreadAlive -  client thread died;this=%o", this );
         
             ResetMessageData();
             
--- a/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtaskprocessor.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/thumbnailserver/src/thumbnailtaskprocessor.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -25,6 +25,11 @@
 #include "thumbnailmanagerconstants.h"
 #include "thumbnailgeneratetask.h"
 #include "thumbnailpanic.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "thumbnailtaskprocessorTraces.h"
+#endif
+
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -66,17 +71,21 @@
     // define PS property
     TInt ret = RProperty::Delete(KServerIdle, KIdle);
     TN_DEBUG2( "CThumbnailTaskProcessor::CThumbnailTaskProcessor() Delete KServerIdle %d", ret);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_CONSTRUCTL, "CThumbnailTaskProcessor::ConstructL - Delete KServerIdle;ret=%d", ret );
     
     ret=RProperty::Define(KServerIdle, KIdle, RProperty::EInt);
     TN_DEBUG2( "CThumbnailTaskProcessor::ConstructL() Define KServerIdle %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_CONSTRUCTL, "CThumbnailTaskProcessor::ConstructL - Define KServerIdle;ret=%d", ret );
     
     // attach to the property    
 	ret = iProperty.Attach(KServerIdle, KIdle, EOwnerThread);
     TN_DEBUG2( "CThumbnailTaskProcessor::ConstructL()Attach %d", ret);
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_CONSTRUCTL, "CThumbnailTaskProcessor::ConstructL - Attach;ret=%d", ret );
     
 	// set initial PS value
     ret = iProperty.Set( ETrue );
     TN_DEBUG2( "CThumbnailTaskProcessor::ConstructL() Set IDLE ETrue %d", ret );
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILTASKPROCESSOR_CONSTRUCTL, "CThumbnailTaskProcessor::ConstructL - Set IDLE ETrue;ret=%d", ret );
     iIdle = ETrue;
     
     iPeriodicTimer = CPeriodic::NewL(CActive::EPriorityIdle);
@@ -99,6 +108,7 @@
     iProperty.Close();
     TInt ret = RProperty::Delete(KServerIdle, KIdle);
     TN_DEBUG2( "CThumbnailTaskProcessor::CThumbnailTaskProcessor() Delete KServerIdle %d", ret);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_CTHUMBNAILTASKPROCESSOR, "CThumbnailTaskProcessor::~CThumbnailTaskProcessor - Delete KServerIdle;ret=%d", ret );
     
     if(iPeriodicTimer)
        {
@@ -117,6 +127,7 @@
 void CThumbnailTaskProcessor::AddTaskL( CThumbnailTask* aTask )
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::AddTaskL()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_ADDTASKL, "CThumbnailTaskProcessor::AddTaskL" );
     __ASSERT_DEBUG(( aTask ), ThumbnailPanic( EThumbnailNullPointer ));
     const TInt taskCount = iTasks.Count();
     iTasks.AppendL( aTask );
@@ -142,6 +153,7 @@
     aRequestId )
     {
     TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - request ID: %d", aRequestId.iRequestId);
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_REMOVETASK, "CThumbnailTaskProcessor::RemoveTask;aRequestId.iRequestId=%u", aRequestId.iRequestId );
     
     TBool cancel = EFalse;
     TInt res = KErrNotFound;
@@ -159,6 +171,7 @@
                 iTasks.Remove( i );
                 
                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - removed request ID: %d", aRequestId.iRequestId);
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_REMOVETASK, "CThumbnailTaskProcessor::RemoveTask - removed request ID:;aRequestId.iRequestId=%u", aRequestId.iRequestId );
                 }
             else
                 {
@@ -170,6 +183,7 @@
                 cancel = ETrue;
                 
                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - canceled & removed request ID: %d", aRequestId.iRequestId);
+                OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_REMOVETASK, "CThumbnailTaskProcessor::RemoveTask - canceled & removed request ID:;aRequestId.iRequestId=%u", aRequestId.iRequestId );
                 }
             
             res = KErrNone;
@@ -191,7 +205,7 @@
         }
     
     TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTask() - remaining task count: %d", iTasks.Count());
-    
+    OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILTASKPROCESSOR_REMOVETASK, "CThumbnailTaskProcessor::RemoveTask -  - remaining task count;iTasks.Count()=%d", iTasks.Count() );
     return res;
     }
 
@@ -203,6 +217,7 @@
 void CThumbnailTaskProcessor::RemoveTasks( CThumbnailServerSession* aSession )
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::RemoveTasks()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_REMOVETASKS, "CThumbnailTaskProcessor::RemoveTasks" );
     
     TBool cancel = EFalse;
     
@@ -222,10 +237,12 @@
                 iTasks.Remove( i );
                 
                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
+                OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_REMOVETASKS, "CThumbnailTaskProcessor::RemoveTasks - removed request ID;id=%d", id );
                 }
             else
                 {
                 TN_DEBUG1( "CThumbnailTaskProcessor::RemoveTasks() - task still running");
+                OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_REMOVETASKS, "CThumbnailTaskProcessor::RemoveTasks - task still running" );
                 
                 TThumbnailRequestId id = task->RequestId().iRequestId;
                 
@@ -237,6 +254,7 @@
                 cancel = ETrue;
                 
                 TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
+                OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILTASKPROCESSOR_REMOVETASKS, "CThumbnailTaskProcessor::RemoveTasks - canceled & removed request ID;id=%d", id );
                 }
             }
         }
@@ -249,6 +267,7 @@
         }
     
     TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - remaining task count: %d", iTasks.Count());
+    OstTrace1( TRACE_NORMAL, DUP4_CTHUMBNAILTASKPROCESSOR_REMOVETASKS, "CThumbnailTaskProcessor::RemoveTasks - remaining task count;iTasks.Count()=%d", iTasks.Count() );
     }
 
 // ---------------------------------------------------------------------------
@@ -259,6 +278,7 @@
 void CThumbnailTaskProcessor::RemoveAllTasks()
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::RemoveAllTasks()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_REMOVEALLTASKS, "CThumbnailTaskProcessor::RemoveAllTasks" );
     
     TBool cancel = EFalse;
     
@@ -275,10 +295,12 @@
             iTasks.Remove( i );
             
             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - removed request ID: %d", id);
+            OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_REMOVEALLTASKS, "CThumbnailTaskProcessor::RemoveAllTasks -  removed request ID;id=%d", id );
             }
         else
             {
             TN_DEBUG1( "CThumbnailTaskProcessor::RemoveTasks() - task still running");
+            OstTrace0( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_REMOVEALLTASKS, "CThumbnailTaskProcessor::RemoveAllTasks - task still running" );
             
             TThumbnailRequestId id = task->RequestId().iRequestId;
             
@@ -290,6 +312,7 @@
             cancel = ETrue;
             
             TN_DEBUG2( "CThumbnailTaskProcessor::RemoveTasks() - canceled & removed request ID: %d", id);
+            OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILTASKPROCESSOR_REMOVEALLTASKS, "CThumbnailTaskProcessor::RemoveAllTasks - canceled & removed request ID;id=%d", id );
             }
         }
     
@@ -301,6 +324,7 @@
         }
     
     TN_DEBUG1( "CThumbnailTaskProcessor::RemoveAllTasks() - Task removed because of starting format" );
+    OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILTASKPROCESSOR_REMOVEALLTASKS, "CThumbnailTaskProcessor::RemoveAllTasks - Task removed because of starting format" );
     }
 
 // ---------------------------------------------------------------------------
@@ -339,6 +363,7 @@
     
 #ifdef _DEBUG
     TN_DEBUG2( "CThumbnailTaskProcessor::TASKPROCESSOR-COUNTER---------- in, Tasks = %d", iTasks.Count() );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::TASKPROCESSOR-COUNTER---------- in, Tasks;iTasks.Count()=%d", iTasks.Count() );
 #endif
     
     // remove completed tasks and run priorised task
@@ -369,6 +394,7 @@
                 if(task->GetMessageData().Identity() != KDaemonUid )
                     {
                     TN_DEBUG1( "CThumbnailTaskProcessor::RunL() processingDaemonTasksOnly = EFalse" );
+                    OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::RunL processingDaemonTasksOnly = EFalse" );
                     processingDaemonTasksOnly = EFalse; 
                     }
                 }
@@ -382,6 +408,7 @@
     
 #ifdef _DEBUG
     TN_DEBUG2( "CThumbnailTaskProcessor::TASKPROCESSOR-COUNTER---------- out, Tasks = %d", iTasks.Count() );
+    OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::TASKPROCESSOR-COUNTER---------- out, Tasks;iTasks.Count()=%d", iTasks.Count() );
 #endif
 
 	//update PS value for Daemon
@@ -395,6 +422,7 @@
            }
         TInt ret = iProperty.Set( EFalse );
         TN_DEBUG2( "CThumbnailTaskProcessor::RunL() iProperty Set EFalse %d", ret );
+        OstTrace1( TRACE_NORMAL, DUP3_CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::RunL - iProperty Set EFalse;ret=%d", ret );
         iIdle = EFalse;
         }
     else
@@ -410,6 +438,7 @@
                  iTimerActive = EFalse;
                  } 
                TN_DEBUG1( "CThumbnailTaskProcessor::RunL() - daemon is the process");
+               OstTrace0( TRACE_NORMAL, DUP4_CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::RunL - daemon is the process" );
                TInt ret = iProperty.Set( ETrue );
                TN_DEBUG2( "CThumbnailTaskProcessor::RunL() iProperty Set ETrue %d", ret );
                iIdle = ETrue;
@@ -417,6 +446,7 @@
             else
                {
                TN_DEBUG1( "CThumbnailTaskProcessor::RunL() - daemon is not the process - start timer");
+               OstTrace0( TRACE_NORMAL, DUP5_CTHUMBNAILTASKPROCESSOR_RUNL, "CThumbnailTaskProcessor::RunL - daemon is not the process - start timer" );
                if(iTimerActive)
                   {
                   iPeriodicTimer->Cancel();
@@ -437,6 +467,7 @@
 TInt CThumbnailTaskProcessor::RunError( TInt aError )
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::RunError()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_RUNERROR, "CThumbnailTaskProcessor::RunError" );
     if ( iActiveTask )
         {
         // This will complete the task and continue processing from the
@@ -464,6 +495,7 @@
 void CThumbnailTaskProcessor::TaskComplete( CThumbnailTask*  /*aTask*/ )
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::TaskComplete()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_TASKCOMPLETE, "CThumbnailTaskProcessor::TaskComplete" );
  
     if ( iTasks.Count() && !IsActive())
         {
@@ -482,8 +514,10 @@
               iTimerActive = EFalse;
               } 
             TN_DEBUG1( "CThumbnailTaskProcessor::TaskComplete() - daemon is the process");
+            OstTrace0( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_TASKCOMPLETE, "CThumbnailTaskProcessor::TaskComplete - daemon is the process" );
             TInt ret = iProperty.Set( ETrue );
             TN_DEBUG2( "CThumbnailTaskProcessor::TaskComplete() iProperty Set ETrue %d", ret );
+            OstTrace1( TRACE_NORMAL, DUP2_CTHUMBNAILTASKPROCESSOR_TASKCOMPLETE, "CThumbnailTaskProcessor::TaskComplete - iProperty Set ETrue;ret=%d", ret );
             iIdle = ETrue;
             }
         else
@@ -507,6 +541,7 @@
 TInt CThumbnailTaskProcessor::PeriodicTimerCallBack(TAny* aAny)
     {
     TN_DEBUG1( "CThumbnailTaskProcessor::PeriodicTimerCallBack()");
+    OstTrace0( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_PERIODICTIMERCALLBACK, "CThumbnailTaskProcessor::PeriodicTimerCallBack" );
     
     CThumbnailTaskProcessor* self = static_cast<CThumbnailTaskProcessor*>( aAny );
     
@@ -514,6 +549,7 @@
     self->iPeriodicTimer->Cancel();
     TInt ret = self->iProperty.Set( ETrue );
     TN_DEBUG2( "CThumbnailTaskProcessor::PeriodicTimerCallBack() iProperty Set ETrue %d", ret );
+    OstTrace1( TRACE_NORMAL, DUP1_CTHUMBNAILTASKPROCESSOR_PERIODICTIMERCALLBACK, "CThumbnailTaskProcessor::PeriodicTimerCallBack - iProperty Set ETrue;ret=%d", ret );
     self->iIdle = ETrue;
 
     return KErrNone; // Return value ignored by CPeriodic
@@ -522,6 +558,7 @@
 void CThumbnailTaskProcessor::SetDaemonAsProcess(TBool aValue)
     {
     TN_DEBUG2( "CThumbnailTaskProcessor::SetDaemonAsProcess() Daemon set %d", aValue );
+    OstTrace1( TRACE_NORMAL, CTHUMBNAILTASKPROCESSOR_SETDAEMONASPROCESS, "CThumbnailTaskProcessor::SetDaemonAsProcess - Daemon set;aValue=%d", aValue );
     iIsDaemonAsProcess = aValue;
     }
 
--- a/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmactivitymanager.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmactivitymanager.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -17,6 +17,10 @@
 
 #include "tmactivitymanager.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tmactivitymanagerTraces.h"
+#endif
 
 // ---------------------------------------------------------------------------
 // CTMActivityManager::NewL()
@@ -25,6 +29,7 @@
 CTMActivityManager* CTMActivityManager::NewL(MTMActivityManagerObserver* aObserver, TInt aTimeout)
     {
     TN_DEBUG1( "CTMActivityManager::NewL()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_NEWL, "CTMActivityManager::NewL" );
     
     CTMActivityManager* self = new (ELeave) CTMActivityManager(aObserver, aTimeout);
     CleanupStack::PushL(self);
@@ -41,6 +46,7 @@
 : CActive(CActive::EPriorityHigh), iObserver(aObserver), iTimeout(aTimeout), iPreviousStatus(KErrNotFound)
     {
     TN_DEBUG1( "CTMActivityManager::CTMActivityManager()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_CTMACTIVITYMANAGER, "CTMActivityManager::CTMActivityManager" );
     
     CActiveScheduler::Add(this);
     }
@@ -52,6 +58,7 @@
 CTMActivityManager::~CTMActivityManager()
     {
     TN_DEBUG1( "CTMActivityManager::~CTMActivityManager()");
+    OstTrace0( TRACE_NORMAL, DUP1_CTMACTIVITYMANAGER_CTMACTIVITYMANAGER, "CTMActivityManager::~CTMActivityManager" );
     
     iObserver = NULL;
     Cancel();
@@ -72,6 +79,7 @@
 void CTMActivityManager::ConstructL()
     {
     TN_DEBUG1( "CTMActivityManager::ConstructL()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_CONSTRUCTL, "CTMActivityManager::ConstructL" );
     
     iTimer.CreateLocal();
     iWatch = ENone;
@@ -84,6 +92,7 @@
 void CTMActivityManager::SetTimeout(TInt aTimeout)
     {
     TN_DEBUG1( "CTMActivityManager::SetTimeout()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_SETTIMEOUT, "CTMActivityManager::SetTimeout" );
     
     iTimeout = aTimeout;
     Reset();
@@ -96,6 +105,7 @@
 void CTMActivityManager::Reset()
     {
     TN_DEBUG1( "CTMActivityManager::Reset()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_RESET, "CTMActivityManager::Reset" );
 
 #ifdef MONITOR_LIGHTS
     delete iLight;
@@ -112,6 +122,7 @@
 void CTMActivityManager::DoCancel()
     {
     TN_DEBUG1( "CTMActivityManager::DoCancel()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_DOCANCEL, "CTMActivityManager::DoCancel" );
     
 #ifdef MONITOR_LIGHTS
     delete iLight;
@@ -129,6 +140,7 @@
 void CTMActivityManager::Start()
     {
     TN_DEBUG1( "CTMActivityManager::Start()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_START, "CTMActivityManager::Start" );
     
 #ifdef MONITOR_LIGHTS
     if(!iLight)
@@ -157,10 +169,13 @@
 void CTMActivityManager::RunL()
     {
     TN_DEBUG4( "CTMActivityManager::RunL(0x%08x) %d, observer = 0x%08x", this, iStatus.Int(), iObserver);
+    OstTrace1( TRACE_NORMAL, CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL;this=%o", this );
+    OstTrace1( TRACE_NORMAL, DUP5_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL;iStatus.Int()=%d", iStatus.Int() );
     
     if(iFirstRound)
         {
         TN_DEBUG1( "CTMActivityManager::RunL() iFirstRound");
+        OstTrace0( TRACE_NORMAL, DUP1_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL - iFirstRound" );
         iFirstRound = EFalse;
         if (!IsActive())
              {
@@ -180,6 +195,7 @@
             if (inactivity >= iTimeout)
                 {
                 TN_DEBUG1( "CTMActivityManager::RunL() inactive");
+                OstTrace0( TRACE_NORMAL, DUP2_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL - inactive" );
                 NotifyObserver();
 
                 if (!IsActive()) //observer might have called a Reset()
@@ -196,6 +212,7 @@
         else if (iWatch == EWaitingForActivity)
             {
             TN_DEBUG1( "CTMActivityManager::RunL() active");
+            OstTrace0( TRACE_NORMAL, DUP3_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL - active" );
             NotifyObserver();
              
             if (!IsActive()) //observer might have called a Reset()
@@ -215,6 +232,7 @@
         iWatch = ENone;
         }
         TN_DEBUG1( "CTMActivityManager::RunL() end");
+        OstTrace0( TRACE_NORMAL, DUP4_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL - end" );
     }
 
 // ---------------------------------------------------------------------------
@@ -224,6 +242,7 @@
 TInt CTMActivityManager::RunError(TInt aError)
     {
     TN_DEBUG2( "CTMActivityManager::RunError() %d", aError);
+    OstTrace1( TRACE_NORMAL, CTMACTIVITYMANAGER_RUNERROR, "CTMActivityManager::RunError;aError=%d", aError );
     
     if (aError != KErrNone)
         {
@@ -242,10 +261,14 @@
     {
 #ifdef MONITOR_LIGHTS
 #ifdef _DEBUG
+TInt inactivityTime = User::InactivityTime().Int();
 TN_DEBUG3( "CTMActivityManager::IsInactive()= %d, iLights = %d", User::InactivityTime().Int(), iLights);
+OstTrace1( TRACE_NORMAL, DUP6_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL;inactivityTime=%d", inactivityTime );
 #endif
 #else
+TInt inactivityTime = User::InactivityTime().Int();
 TN_DEBUG2( "CTMActivityManager::IsInactive()= %d", User::InactivityTime().Int());
+OstTrace1( TRACE_NORMAL, DUP7_CTMACTIVITYMANAGER_RUNL, "CTMActivityManager::RunL;inactivityTime=%d", inactivityTime );
 #endif
 
     //if lights are off or inactivity timer is less that target the device is not idle
@@ -256,9 +279,11 @@
             )
       {
       TN_DEBUG1( "CTMActivityManager::IsInactive() ETrue");
+      OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_ISINACTIVE, "CTMActivityManager::IsInactive - ETrue" );
       return ETrue;
       }
     TN_DEBUG1( "CTMActivityManager::IsInactive() EFalse");
+    OstTrace0( TRACE_NORMAL, DUP1_CTMACTIVITYMANAGER_ISINACTIVE, "CTMActivityManager::IsInactive - EFalse" );
     return EFalse;
     }
 
@@ -270,17 +295,20 @@
 void CTMActivityManager::LightStatusChanged(TInt aTarget, CHWRMLight::TLightStatus aStatus)
     {
     TN_DEBUG3( "CTMActivityManager::LightStatusChanged() aTarget = %d, aStatus == %d", aTarget, aStatus);
+    OstTraceExt2( TRACE_NORMAL, CTMACTIVITYMANAGER_LIGHTSTATUSCHANGED, "CTMActivityManager::LightStatusChanged;aTarget=%d;aStatus=%u", aTarget, aStatus );    
     
     if(aTarget & CHWRMLight::EPrimaryDisplay)
         {
          if( aStatus == CHWRMLight::ELightOff )
             {
             TN_DEBUG1( "CTMActivityManager::LightStatusChanged() -- OFF");
+            OstTrace0( TRACE_NORMAL, DUP1_CTMACTIVITYMANAGER_LIGHTSTATUSCHANGED, "CTMActivityManager::LightStatusChanged - OFF" );
             iLights = EFalse;
             }
         else
             {
             TN_DEBUG1( "CTMActivityManager::LightStatusChanged() -- ON");
+            OstTrace0( TRACE_NORMAL, DUP2_CTMACTIVITYMANAGER_LIGHTSTATUSCHANGED, "CTMActivityManager::LightStatusChanged - ON" );
             iLights = ETrue;
             }
      
@@ -296,6 +324,7 @@
 void CTMActivityManager::NotifyObserver()
     {
     TN_DEBUG1( "void CTMAActivityManager::NotifyObserver()");
+    OstTrace0( TRACE_NORMAL, CTMACTIVITYMANAGER_NOTIFYOBSERVER, "CTMActivityManager::NotifyObserver" );
     
     TBool status = IsInactive();
     
--- a/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmformatobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmformatobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -20,6 +20,10 @@
  
 #include <e32base.h>
 #include <f32file.h>
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tmformatobserverTraces.h"
+#endif
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -28,6 +32,7 @@
     iObserver( aObserver )
     {
     TN_DEBUG1( "CTMFormatObserver::CTMFormatObserver()");
+    OstTrace0( TRACE_NORMAL, CTMFORMATOBSERVER_CTMFORMATOBSERVER, "CTMFormatObserver::CTMFormatObserver" );
     }
     
     
@@ -38,6 +43,7 @@
 void CTMFormatObserver::ConstructL()
     {
     TN_DEBUG1("CTMFormatObserver::ConstructL");
+    OstTrace0( TRACE_NORMAL, CTMFORMATOBSERVER_CONSTRUCTL, "CTMFormatObserver::ConstructL" );
 
     iBackupSession = CBaBackupSessionWrapper::NewL();
     iBackupSession->RegisterBackupOperationObserverL( *this );
@@ -91,6 +97,7 @@
 void CTMFormatObserver::PollStatus()
     { 
     TN_DEBUG1("CTMFormatObserver::PollStatus()");
+    OstTrace0( TRACE_NORMAL, CTMFORMATOBSERVER_POLLSTATUS, "CTMFormatObserver::PollStatus" );
     
     TBool formatting = iBackupSession->IsBackupOperationRunning();
     
@@ -109,6 +116,7 @@
                   const TBackupOperationAttributes& aBackupOperationAttributes)
     {
     TN_DEBUG1("CTMFormatObserver::HandleBackupOperationEventL");
+    OstTrace0( TRACE_NORMAL, CTMFORMATOBSERVER_HANDLEBACKUPOPERATIONEVENTL, "CTMFormatObserver::HandleBackupOperationEventL" );
 
     if( aBackupOperationAttributes.iOperation == EStart )
         {
--- a/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmshutdownobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmshutdownobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -21,6 +21,11 @@
 #include "tmshutdownobserver.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tmshutdownobserverTraces.h"
+#endif
+
 
 // ---------------------------------------------------------------------------
 // CTMShutdownObserver::NewL()
@@ -62,10 +67,12 @@
 void CTMShutdownObserver::ConstructL()
     { 
     TN_DEBUG1( "CTMShutdownObserver::ConstructL()" );
+    OstTrace0( TRACE_NORMAL, CTMSHUTDOWNOBSERVER_CONSTRUCTL, "CTMShutdownObserver::ConstructL" );
     // define P&S property types
     if (iDefineKey)
         {
         TN_DEBUG1( "CTMShutdownObserver::ConstructL() define" );
+        OstTrace0( TRACE_NORMAL, DUP1_CTMSHUTDOWNOBSERVER_CONSTRUCTL, "CTMShutdownObserver::ConstructL - define" );
         RProperty::Define(iKeyCategory,iPropertyKey,
                           RProperty::EInt,KAllowAllPolicy,KPowerMgmtPolicy);
         }
@@ -73,11 +80,13 @@
     // attach to the property
     TInt err = iProperty.Attach(iKeyCategory,iPropertyKey,EOwnerThread);
     TN_DEBUG2( "CTMShutdownObserver::ConstructL() attach err = %d", err );
+    OstTrace1( TRACE_NORMAL, DUP2_CTMSHUTDOWNOBSERVER_CONSTRUCTL, "CTMShutdownObserver::ConstructL - attach;err=%d", err );
     User::LeaveIfError(err);
     
     // wait for the previously attached property to be updated
     iProperty.Subscribe(iStatus);
     TN_DEBUG1( "CTMShutdownObserver::ConstructL() subscribe" );
+    OstTrace0( TRACE_NORMAL, DUP3_CTMSHUTDOWNOBSERVER_CONSTRUCTL, "CTMShutdownObserver::ConstructL - subscribe" );
     SetActive();
     }
 
@@ -88,6 +97,7 @@
 CTMShutdownObserver::~CTMShutdownObserver()
     {
     TN_DEBUG1( "CTMShutdownObserver::~CTMShutdownObserver()" );
+    OstTrace0( TRACE_NORMAL, CTMSHUTDOWNOBSERVER_CTMSHUTDOWNOBSERVER, "CTMShutdownObserver::~CTMShutdownObserver" );
     Cancel();
     iProperty.Close();
     }
@@ -99,6 +109,7 @@
 void CTMShutdownObserver::RunL()
     {
     TN_DEBUG2( "CTMShutdownObserver::RunL(%d)", iStatus.Int() );
+    OstTrace1( TRACE_NORMAL, CTMSHUTDOWNOBSERVER_RUNL, "CTMShutdownObserver::RunL;iStatus.Int()=%d", iStatus.Int() );
     // resubscribe before processing new value to prevent missing updates
     iProperty.Subscribe(iStatus);
     SetActive();
@@ -108,6 +119,7 @@
     TInt err = iProperty.Get(value);
     
     TN_DEBUG2( "CTMShutdownObserver::RunL() Get err = %d", err );
+    OstTrace1( TRACE_NORMAL, DUP1_CTMSHUTDOWNOBSERVER_RUNL, "CTMShutdownObserver::RunL - get err;err=%d", err );
 
     // observer callback
     if (value)
@@ -123,6 +135,7 @@
 void CTMShutdownObserver::DoCancel()
     {
     TN_DEBUG1( "CTMShutdownObserver::DoCancel()" );
+    OstTrace0( TRACE_NORMAL, CTMSHUTDOWNOBSERVER_DOCANCEL, "CTMShutdownObserver::DoCancel" );
     iProperty.Cancel();
     }
 
--- a/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmsrproptertyobserver.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmcommon/src/tmsrproptertyobserver.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -21,6 +21,11 @@
 #include "tmrpropertyobserver.h"
 #include "thumbnailmanagerconstants.h"
 #include "thumbnaillog.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tmsrproptertyobserverTraces.h"
+#endif
+
 
 // ---------------------------------------------------------------------------
 // CTMRPropertyObserver::NewL()
@@ -62,6 +67,7 @@
 void CTMRPropertyObserver::ConstructL()
     { 
     TN_DEBUG1( "CTMRPropertyObserver::ConstructL()");
+    OstTrace0( TRACE_NORMAL, CTMRPROPERTYOBSERVER_CONSTRUCTL, "CTMRPropertyObserver::ConstructL" );
     // define P&S property types
     if (iDefineKey)
         {
@@ -85,6 +91,7 @@
 CTMRPropertyObserver::~CTMRPropertyObserver()
     {
     TN_DEBUG1( "CTMRPropertyObserver::~CTMRPropertyObserver()");
+    OstTrace0( TRACE_NORMAL, CTMRPROPERTYOBSERVER_CTMRPROPERTYOBSERVER, "CTMRPropertyObserver::~CTMRPropertyObserver" );
     Cancel();
     iProperty.Close();
     }
@@ -96,6 +103,7 @@
 void CTMRPropertyObserver::RunL()
     {
     TN_DEBUG1( "CTMRPropertyObserver::RunL()");
+    OstTrace0( TRACE_NORMAL, CTMRPROPERTYOBSERVER_RUNL, "CTMRPropertyObserver::RunL" );
     // resubscribe before processing new value to prevent missing updates
     iProperty.Subscribe(iStatus);
     SetActive();
@@ -115,6 +123,7 @@
 void CTMRPropertyObserver::DoCancel()
     {
     TN_DEBUG1( "CTMRPropertyObserver::DoCancel()");
+    OstTrace0( TRACE_NORMAL, CTMRPROPERTYOBSERVER_DOCANCEL, "CTMRPropertyObserver::DoCancel" );
     iProperty.Cancel();
     }
 
--- a/imagehandlingutilities/thumbnailmanager/tmiadrestart/group/tmiadrestart.mmp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmiadrestart/group/tmiadrestart.mmp	Tue Aug 31 15:30:59 2010 +0300
@@ -35,7 +35,7 @@
 
 USERINCLUDE             ../inc
 USERINCLUDE             ../../inc
-USERINCLUDE             ../../thumbagdaemon/inc
+USERINCLUDE             ../../thumbagdaemon/inc ../traces
 
 LIBRARY                 euser.lib
 
--- a/imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp	Thu Aug 19 10:13:51 2010 +0300
+++ b/imagehandlingutilities/thumbnailmanager/tmiadrestart/src/tmiadrestart.cpp	Tue Aug 31 15:30:59 2010 +0300
@@ -22,11 +22,17 @@
 #include "thumbnaillog.h"
 
 #include "thumbnailmanagerconstants.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "tmiadrestartTraces.h"
+#endif
 
 LOCAL_C void MainL()
     {
     // delay so that cenrep has time to read new config
     TN_DEBUG1( "MainL() after" );
+    OstTrace0( TRACE_NORMAL, _MAINL, "::MainL - after" );
+    
     User::After(5000000);
     
     TInt res( KErrNone );
@@ -35,60 +41,74 @@
     
     // find and terminate Thumb AG Daemon
     TN_DEBUG1( "MainL() KTAGDaemonProcess find" );
+    OstTrace0( TRACE_NORMAL, DUP1__MAINL, "::MainL - find" );
     TFindProcess findProcess( KTAGDaemonProcess );   
 
     if ( findProcess.Next(name) == KErrNone )
         {
         res = process.Open(name);
         TN_DEBUG2( "MainL() KTAGDaemonProcess open res = %d", res );    
+        OstTrace1( TRACE_NORMAL, DUP2__MAINL, "::MainL;res=%d - open res", res );
         
         // logon to get termination signal
         TRequestStatus status;
         TN_DEBUG1( "MainL() KTAGDaemonProcess logon" );
+        OstTrace0( TRACE_NORMAL, DUP3__MAINL, "::MainL - logon" );
         process.Logon(status);
 
         // shutdown using P&S key
         TN_DEBUG2( "MainL() KTAGDaemonProcess Set = %d", res );
+        OstTrace1( TRACE_NORMAL, DUP4__MAINL, "::MainL - Set = res;res=%d", res );
         res = RProperty::Set(KTAGDPSNotification,KShutdown,1);
        
         // blocks here until thread is terminated
         TN_DEBUG1( "MainL() KTAGDaemonProcess wait" );
+        OstTrace0( TRACE_NORMAL, DUP5__MAINL, "::MainL - KTAGDaemonProcess wait" );
         User::WaitForRequest(status);
         
         // reset key
         TN_DEBUG1( "MainL() KTAGDaemonProcess reset" );
+        OstTrace0( TRACE_NORMAL, DUP6__MAINL, "::MainL - KTAGDaemonProcess reset" );
         res = RProperty::Set(KTAGDPSNotification, KShutdown, 0);
         
         TN_DEBUG1( "MainL() KTAGDaemonProcess close" );
+        OstTrace0( TRACE_NORMAL, DUP7__MAINL, "::MainL - close" );
         process.Close();
         }
     
     // find and terminate Thumbnail Server
     TFindProcess findProcess2( KThumbnailServerProcess );
     TN_DEBUG1( "MainL() KThumbnailServerProcess find" );
+    OstTrace0( TRACE_NORMAL, DUP8__MAINL, "::MainL - find" );
     if ( findProcess2.Next(name) == KErrNone )
         {
         res = process.Open(name);
         TN_DEBUG2( "MainL() KThumbnailServerProcess open res = %d", res );
+        OstTrace1( TRACE_NORMAL, DUP9__MAINL, "::MainL - KThumbnailServerProcess open;res=%d", res );
         
         // logon to get termination signal
         TRequestStatus status;
         TN_DEBUG1( "MainL() KThumbnailServerProcess logon" );
+        OstTrace0( TRACE_NORMAL, DUP10__MAINL, "::MainL - KThumbnailServerProcess logon" );
         process.Logon(status);
           
         // shutdown using P&S key
         TN_DEBUG2( "MainL() KThumbnailServerProcess Set res = %d", res );
+        OstTrace1( TRACE_NORMAL, DUP11__MAINL, "::MainL - KThumbnailServerProcess Set;res=%d", res );
         res = RProperty::Set(KTMPSNotification,KShutdown,1);
          
         // blocks here until thread is terminated
         TN_DEBUG1( "MainL() KThumbnailServerProcess wait" );
+        OstTrace0( TRACE_NORMAL, DUP12__MAINL, "::MainL - KThumbnailServerProcess wait" );
         User::WaitForRequest(status);
          
         // reset key
         TN_DEBUG2( "MainL() KThumbnailServerProcess reset res = %d", res );
+        OstTrace1( TRACE_NORMAL, DUP13__MAINL, "::MainL;res=%d - KThumbnailServerProcess reset", res );
         res = RProperty::Set(KTMPSNotification, KShutdown, 0);
 
         TN_DEBUG1( "MainL() KThumbnailServerProcess close" );
+        OstTrace0( TRACE_NORMAL, DUP14__MAINL, "::MainL - close" );
         process.Close();
         }    
     
@@ -103,21 +123,26 @@
     // Create the server process
     // KNullDesC param causes server's E32Main() to be run
     TN_DEBUG2( "MainL() KTAGDaemonExe create res = %d", res );
+    OstTrace1( TRACE_NORMAL, DUP15__MAINL, "::MainL - KTAGDaemonExe create res;res=%d", res );
     res = server.Create( KTAGDaemonExe, KNullDesC );
     
     // try again 3 times if fails
     while ( res != KErrNone)
         {
         TN_DEBUG1( "MainL() KTAGDaemonExe retry" );
+        OstTrace0( TRACE_NORMAL, DUP16__MAINL, "::MainL- KTAGDaemonExe retry" );
         if (retryCount > 2)
             {
             TN_DEBUG1( "MainL() KTAGDaemonExe retry > 2" );
+            OstTrace0( TRACE_NORMAL, DUP17__MAINL, "::MainL - KTAGDaemonExe retry > 2" );
             return;
             }
         
         TN_DEBUG1( "MainL() after" );
+        OstTrace0( TRACE_NORMAL, DUP18__MAINL, "::MainL - after" );
         User::After(2500000);
         TN_DEBUG2( "MainL() KTAGDaemonExe create res = %d", res );
+        OstTrace1( TRACE_NORMAL, DUP19__MAINL, "::MainL - KTAGDaemonExe create;res=%d", res );
         res = server.Create( KTAGDaemonExe, KNullDesC );
         retryCount++;
         }
@@ -125,15 +150,19 @@
     // Process created successfully
     TRequestStatus status;
     TN_DEBUG1( "MainL() Rendezvous" );
+    OstTrace0( TRACE_NORMAL, DUP20__MAINL, "::MainL - Rendezvous" );
     server.Rendezvous( status );
     TN_DEBUG1( "MainL() Resume" );
+    OstTrace0( TRACE_NORMAL, DUP21__MAINL, "::MainL - resume" );
     server.Resume(); // start it going
     
     
     // Wait until the completion of the server creation
     TN_DEBUG1( "MainL() wait" );
+    OstTrace0( TRACE_NORMAL, DUP22__MAINL, "::MainL - wait" );
     User::WaitForRequest( status );
     TN_DEBUG1( "MainL() wait done" );
+    OstTrace0( TRACE_NORMAL, DUP23__MAINL, "::MainL - wait done"  );
     
     // Server created successfully
     server.Close(); // we're no longer interested in the other process
--- a/layers.sysdef.xml	Thu Aug 19 10:13:51 2010 +0300
+++ b/layers.sysdef.xml	Tue Aug 31 15:30:59 2010 +0300
@@ -1,13 +1,14 @@
 <?xml version="1.0"?>
-<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_4_0.dtd" [
+<!DOCTYPE SystemDefinition SYSTEM "sysdef_1_5_1.dtd" [
   <!ENTITY layer_real_source_path "sf/mw/imghandling" >
 ]>
 
-<SystemDefinition name="imghandling" schema="1.4.0">
+<SystemDefinition name="imghandling" schema="1.5.1">
   <systemModel>
     <layer name="mw_layer">
       <module name="imghandling">
         <unit unitID="imm.imghandling" mrp="" bldFile="&layer_real_source_path;/group" name="imghandling" />
+        <unit unitID="imm.thumbnailmanagerqt" name="thumbnailmanagerqt" bldFile="&layer_real_source_path;/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt" proFile="thumbnailmanagerqt.pro" qmakeArgs="-r" mrp=""/>
       </module>
     </layer>
 
@@ -20,6 +21,7 @@
     
   <layer name="unit_test_layer">
     <module name="imagehandling_unit_tests">
+        <unit unitID="imm.thumbnailmanagerqt_unit_test" name="thumbnailmanagerqt_unit_test" bldFile="&layer_real_source_path;/imagehandlingutilities/thumbnailmanager/thumbnailmanagerqt/tsrc" proFile="test_qtnmwrapper.pro" mrp="" />
     </module>
   </layer>
     
--- a/sysdef_1_4_0.dtd	Thu Aug 19 10:13:51 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
- <!ELEMENT SystemDefinition (systemModel?, build?)>
- <!ATTLIST SystemDefinition
-  name CDATA #REQUIRED
-  schema CDATA #REQUIRED>
- <!ELEMENT systemModel (layer+)>
- <!ELEMENT layer (logicalset* | module*)*>
- <!ATTLIST layer
-  name CDATA #REQUIRED
-  levels CDATA #IMPLIED
-  span CDATA #IMPLIED>
- <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalset name CDATA #REQUIRED>
- <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
- <!ATTLIST logicalsubset name CDATA #REQUIRED>
- <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
- <!ATTLIST module
-  name CDATA #REQUIRED
-  level CDATA #IMPLIED>
- <!ELEMENT component (unit* | package* | prebuilt*)*>
- <!ATTLIST component name CDATA #REQUIRED>
- <!ELEMENT unit EMPTY>
- <!ATTLIST unit
-  unitID ID #REQUIRED
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  bldFile CDATA #REQUIRED
-  priority CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT package EMPTY>
- <!ATTLIST package
-  name CDATA #REQUIRED
-  mrp CDATA #REQUIRED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT prebuilt EMPTY>
- <!ATTLIST prebuilt
-  name CDATA #REQUIRED
-  version CDATA #REQUIRED
-  late (Y|N) #IMPLIED
-  filter CDATA #IMPLIED
-  contract CDATA #IMPLIED>
- <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
- <!ELEMENT unitList (unitRef+)>
- <!ATTLIST unitList
-  name ID #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT unitRef EMPTY>
- <!ATTLIST unitRef unit IDREF #REQUIRED>
- <!ELEMENT targetList EMPTY>
- <!ATTLIST targetList
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  target IDREFS #REQUIRED>
- <!ELEMENT target EMPTY>
- <!ATTLIST target
-  name ID #REQUIRED
-  abldTarget CDATA #REQUIRED
-  description CDATA #REQUIRED>
- <!ELEMENT option EMPTY>
- <!ATTLIST option
-  name ID #REQUIRED
-  abldOption CDATA #REQUIRED
-  description CDATA #REQUIRED
-  enable (Y | N | y | n) #REQUIRED>
- <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
- <!ATTLIST configuration
-  name ID #REQUIRED
-  description CDATA #REQUIRED
-  filter CDATA #REQUIRED>
- <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
- <!ELEMENT unitListRef EMPTY>
- <!ATTLIST unitListRef unitList IDREF #REQUIRED>
- <!ELEMENT layerRef EMPTY>
- <!ATTLIST layerRef layerName CDATA #REQUIRED>
- <!ELEMENT buildLayer EMPTY>
- <!ATTLIST buildLayer
-  command CDATA #REQUIRED
-  targetList IDREFS #IMPLIED
-  unitParallel (Y | N | y | n) #REQUIRED
-  targetParallel (Y | N | y | n) #IMPLIED>
- <!ELEMENT specialInstructions EMPTY>
- <!ATTLIST specialInstructions
-  name CDATA #REQUIRED
-  cwd CDATA #REQUIRED
-  command CDATA #REQUIRED>  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysdef_1_5_1.dtd	Tue Aug 31 15:30:59 2010 +0300
@@ -0,0 +1,88 @@
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset name CDATA #REQUIRED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED
+  proFile CDATA #IMPLIED
+  qmakeArgs CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>