mtpdataproviders/mtpimagedp/src/cmtpimagedpgetthumb.cpp
changeset 49 c20dd21d1eb4
parent 41 2c19c7cf5550
equal deleted inserted replaced
41:2c19c7cf5550 49:c20dd21d1eb4
    29 #include "mtpimagedppanic.h"
    29 #include "mtpimagedppanic.h"
    30 #include "mtpimagedputilits.h"
    30 #include "mtpimagedputilits.h"
    31 #include "cmtpimagedpthumbnailcreator.h"
    31 #include "cmtpimagedpthumbnailcreator.h"
    32 #include "cmtpimagedpobjectpropertymgr.h"
    32 #include "cmtpimagedpobjectpropertymgr.h"
    33 #include "cmtpimagedp.h"
    33 #include "cmtpimagedp.h"
       
    34 #include "OstTraceDefinitions.h"
       
    35 #ifdef OST_TRACE_COMPILER_IN_USE
       
    36 #include "cmtpimagedpgetthumbTraces.h"
       
    37 #endif
    34 
    38 
    35 // Class constants.
       
    36 __FLOG_STMT(_LIT8(KComponent,"ImageDpGetThumb");)
       
    37 
    39 
    38 
    40 
    39 /**
    41 /**
    40 Two-phase construction method
    42 Two-phase construction method
    41 @param aPlugin	The data provider plugin
    43 @param aPlugin	The data provider plugin
    55 /**
    57 /**
    56 Destructor
    58 Destructor
    57 */	
    59 */	
    58 CMTPImageDpGetThumb::~CMTPImageDpGetThumb()
    60 CMTPImageDpGetThumb::~CMTPImageDpGetThumb()
    59     {
    61     {
    60     __FLOG(_L8(">> CMTPImageDpGetThumb::~CMTPImageDpGetThumb"));
    62     OstTraceFunctionEntry0( CMTPIMAGEDPGETTHUMB_CMTPIMAGEDPGETTHUMB_ENTRY );
    61     delete iThumb;    
    63     delete iThumb;    
    62     delete iObjectMeta;
    64     delete iObjectMeta;
    63     __FLOG(_L8("<< CMTPImageDpGetThumb::~CMTPImageDpGetThumb"));
    65     OstTraceFunctionExit0( CMTPIMAGEDPGETTHUMB_CMTPIMAGEDPGETTHUMB_EXIT );
    64     __FLOG_CLOSE;
       
    65     }
    66     }
    66     
    67     
    67 /**
    68 /**
    68 Standard c++ constructor
    69 Standard c++ constructor
    69 */	
    70 */	
    76 /**
    77 /**
    77 Second-phase constructor.
    78 Second-phase constructor.
    78 */        
    79 */        
    79 void CMTPImageDpGetThumb::ConstructL()
    80 void CMTPImageDpGetThumb::ConstructL()
    80     {
    81     {
    81     __FLOG_OPEN(KMTPSubsystem, KComponent);
    82     OstTraceFunctionEntry0( CMTPIMAGEDPGETTHUMB_CONSTRUCTL_ENTRY );
    82     __FLOG(_L8("CMTPImageDpGetThumb::ConstructL"));
       
    83     iThumb = CMTPTypeOpaqueData::NewL();    
    83     iThumb = CMTPTypeOpaqueData::NewL();    
    84     iObjectMeta = CMTPObjectMetaData::NewL();
    84     iObjectMeta = CMTPObjectMetaData::NewL();
    85     __FLOG(_L8("CMTPImageDpGetThumb::ConstructL"));
    85     OstTraceFunctionExit0( CMTPIMAGEDPGETTHUMB_CONSTRUCTL_EXIT );
    86     }
    86     }
    87 
    87 
    88 
    88 
    89 TMTPResponseCode CMTPImageDpGetThumb::CheckRequestL()
    89 TMTPResponseCode CMTPImageDpGetThumb::CheckRequestL()
    90     {
    90     {
    91     __FLOG(_L8(">> CMTPImageDpGetThumb::CheckRequestL"));
    91     OstTraceFunctionEntry0( CMTPIMAGEDPGETTHUMB_CHECKREQUESTL_ENTRY );
    92     TMTPResponseCode result = MTPImageDpUtilits::VerifyObjectHandleL(iFramework, Request().Uint32(TMTPTypeRequest::ERequestParameter1), *iObjectMeta);
    92     TMTPResponseCode result = MTPImageDpUtilits::VerifyObjectHandleL(iFramework, Request().Uint32(TMTPTypeRequest::ERequestParameter1), *iObjectMeta);
    93     __FLOG(_L8("<< CMTPImageDpGetThumb::CheckRequestL"));
    93     OstTraceFunctionExit0( CMTPIMAGEDPGETTHUMB_CHECKREQUESTL_EXIT );
    94     return result;	
    94     return result;	
    95     }
    95     }
    96     
    96     
    97 
    97 
    98 /**
    98 /**
    99 GetObject request handler
    99 GetObject request handler
   100 */
   100 */
   101 void CMTPImageDpGetThumb::ServiceL()
   101 void CMTPImageDpGetThumb::ServiceL()
   102     {
   102     {
   103     __FLOG(_L8(">> CMTPImageDpGetThumb::ServiceL"));
   103     OstTraceFunctionEntry0( CMTPIMAGEDPGETTHUMB_SERVICEL_ENTRY );
   104     TInt err = KErrNone;
   104     TInt err = KErrNone;
   105     
   105     
   106     //at first, try to query thumbnail from property manager
   106     //at first, try to query thumbnail from property manager
   107     HBufC8* thumbnailData = imgDp.PropertyMgr().Thumbnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle));
   107     HBufC8* thumbnailData = imgDp.PropertyMgr().Thumbnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle));
   108     if (thumbnailData == NULL)
   108     if (thumbnailData == NULL)
   109         {
   109         {
   110         __FLOG(_L8("CMTPImageDpGetThumb::ServiceL-  fail to query thumbnail from cache"));
   110         OstTrace0( TRACE_NORMAL, CMTPIMAGEDPGETTHUMB_SERVICEL, "CMTPImageDpGetThumb::ServiceL-  fail to query thumbnail from cache" );
   111         TEntry fileEntry;
   111         TEntry fileEntry;
   112         
   112         
   113         User::LeaveIfError(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), fileEntry));
   113         LEAVEIFERROR(iFramework.Fs().Entry(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), fileEntry),
       
   114                 OstTraceExt2( TRACE_ERROR, DUP1_CMTPIMAGEDPGETTHUMB_SERVICEL, 
       
   115                         "Gets the entry details for %S failed! error code %d", iObjectMeta->DesC(CMTPObjectMetaData::ESuid), munged_err));
   114         
   116         
   115         CMTPImageDpThumbnailCreator* tnc = imgDp.ThumbnailManager();
   117         CMTPImageDpThumbnailCreator* tnc = imgDp.ThumbnailManager();
   116         if(tnc != NULL)
   118         if(tnc != NULL)
   117             {
   119             {
   118             tnc->GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
   120             tnc->GetThumbMgr()->SetFlagsL(CThumbnailManager::EDefaultFlags);
   119             if(fileEntry.FileSize() > KFileSizeMax)
   121             if(fileEntry.FileSize() > KFileSizeMax)
   120                 {
   122                 {
   121                 __FLOG(_L8(">> CMTPImageDpGetThumb::ServiceL, fileEntry.FileSize() > KFileSizeMax"));
   123             	OstTrace0( TRACE_NORMAL, DUP2_CMTPIMAGEDPGETTHUMB_SERVICEL, "fileEntry.FileSize() > KFileSizeMax" );
   122                 tnc->GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
   124                 tnc->GetThumbMgr()->SetFlagsL(CThumbnailManager::EDoNotCreate);
   123                 }
   125                 }
   124             
   126             
   125             tnc->GetThumbnailL(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), thumbnailData, err);
   127             tnc->GetThumbnailL(iObjectMeta->DesC(CMTPObjectMetaData::ESuid), thumbnailData, err);
   126             imgDp.PropertyMgr().StoreThunmnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle), thumbnailData);
   128             imgDp.PropertyMgr().StoreThunmnail(iObjectMeta->Uint(CMTPObjectMetaData::EHandle), thumbnailData);
   130     if(thumbnailData != NULL)
   132     if(thumbnailData != NULL)
   131         {
   133         {
   132         iThumb->Write(*thumbnailData);
   134         iThumb->Write(*thumbnailData);
   133         }
   135         }
   134     SendDataL(*iThumb);
   136     SendDataL(*iThumb);
   135     __FLOG(_L8("<< CMTPImageDpGetThumb::ServiceL"));
   137     OstTraceFunctionExit0( CMTPIMAGEDPGETTHUMB_SERVICEL_EXIT );
   136     }
   138     }
   137 
   139 
   138 TBool CMTPImageDpGetThumb::DoHandleCompletingPhaseL()
   140 TBool CMTPImageDpGetThumb::DoHandleCompletingPhaseL()
   139     {
   141     {
   140     return CMTPRequestProcessor::DoHandleCompletingPhaseL();
   142     return CMTPRequestProcessor::DoHandleCompletingPhaseL();