mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp
changeset 47 63cf70d3ecd8
parent 33 883e91c086aa
child 60 841f70763fbe
--- a/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp	Thu Sep 02 21:21:26 2010 +0300
+++ b/mtpfws/mtpfw/dataproviders/dputility/src/cmtpcopyobject.cpp	Fri Sep 17 08:34:51 2010 +0300
@@ -27,8 +27,12 @@
 #include "cmtpstoragemgr.h"
 #include "cmtpcopyobject.h"
 #include "mtpdppanic.h"
+#include "mtpdebug.h"
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "cmtpcopyobjectTraces.h"
+#endif
 
-__FLOG_STMT(_LIT8(KComponent,"CopyObject");)
 
 /**
 Verification data for the CopyObject request
@@ -62,7 +66,7 @@
 */	
 EXPORT_C CMTPCopyObject::~CMTPCopyObject()
 	{	
-	__FLOG(_L8("~CMTPCopyObject - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_CMTPCOPYOBJECT_DES_ENTRY );
 	Cancel();
 	iDpSingletons.Close();
 	iSingletons.Close();
@@ -71,9 +75,8 @@
 	delete iDest;
 	delete iNewFileName;
 	delete iFileMan;
-	
-	__FLOG(_L8("~CMTPCopyObject - Exit"));
-	__FLOG_CLOSE;
+
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_CMTPCOPYOBJECT_DES_EXIT );
 	}
 
 /**
@@ -83,14 +86,13 @@
 	CMTPRequestProcessor(aFramework, aConnection, sizeof(KMTPCopyObjectPolicy)/sizeof(TMTPRequestElementInfo), KMTPCopyObjectPolicy),
 	iTimer(NULL)
 	{
-	__FLOG_OPEN(KMTPSubsystem, KComponent);
 	}
 
 
 
 TMTPResponseCode CMTPCopyObject::CheckRequestL()
 	{
-	__FLOG(_L8("CheckRequestL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_CHECKREQUESTL_ENTRY );
 	TMTPResponseCode result = CMTPRequestProcessor::CheckRequestL();
 	if ( (EMTPRespCodeOK == result) && (!iSingletons.StorageMgr().IsReadWriteStorage(Request().Uint32(TMTPTypeRequest::ERequestParameter2))) )
 		{
@@ -104,19 +106,21 @@
 			{
 			const TDesC& suid(object->DesC(CMTPObjectMetaData::ESuid));
 			iIsFolder = EFalse;
-			User::LeaveIfError(BaflUtils::IsFolder(iFramework.Fs(), suid, iIsFolder));
+			LEAVEIFERROR(BaflUtils::IsFolder(iFramework.Fs(), suid, iIsFolder),
+			        OstTraceExt1( TRACE_ERROR, DUP1_CMTPCOPYOBJECT_CHECKREQUESTL, "can't judge whether %S is a folder", suid ));
 			if(!iIsFolder)
 				{
 				if(iDpSingletons.CopyingBigFileCache().IsOnGoing())
 					{
-					__FLOG(_L8("CheckRequestL - A big file copying is ongoing, respond with access denied"));
+					OstTrace0( TRACE_NORMAL, CMTPCOPYOBJECT_CHECKREQUESTL, 
+					        "CheckRequestL - A big file copying is ongoing, respond with access denied" );				
 					result = EMTPRespCodeAccessDenied;
 					}
 				}
 			}
 		CleanupStack::PopAndDestroy(object); 
 		}
-	__FLOG(_L8("CheckRequestL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_CHECKREQUESTL_EXIT );
 	return result;	
 	} 
 
@@ -125,7 +129,7 @@
 */		
 void CMTPCopyObject::ServiceL()
 	{	
-	__FLOG(_L8("ServiceL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_SERVICEL_ENTRY );
 	TUint32 handle = KMTPHandleNone;
 	TMTPResponseCode responseCode = EMTPRespCodeOK;
 	TRAPD(err, responseCode = CopyObjectL(handle));
@@ -135,15 +139,15 @@
 		}
 	else if(responseCode != EMTPRespCodeOK)
 		{
-		__FLOG_VA((_L8("ServiceL, sending response with respond code %d"), responseCode));
+		OstTrace1( TRACE_NORMAL, CMTPCOPYOBJECT_SERVICEL, "ServiceL, sending response with respond code %d", responseCode );
 		SendResponseL(responseCode);
 		}
 	else if (iIsFolder)
 		{
-		__FLOG_VA((_L8("ServiceL, sending response with handle=%d, respond code OK"), handle));
+		OstTrace1( TRACE_NORMAL, DUP1_CMTPCOPYOBJECT_SERVICEL, "ServiceL, sending response with handle=%d, respond code OK", handle );
 		SendResponseL(EMTPRespCodeOK, 1, &handle);
 		}
-	__FLOG(_L8("ServiceL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_SERVICEL_EXIT );
 	}
 
 
@@ -152,8 +156,10 @@
 */
 void CMTPCopyObject::ConstructL()
 	{
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_CONSTRUCTL_ENTRY );
 	iSingletons.OpenL();
 	iDpSingletons.OpenL(iFramework);
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_CONSTRUCTL_EXIT );
 	}
 
 	
@@ -164,14 +170,15 @@
 */
 void CMTPCopyObject::CopyFileL(const TDesC& aNewFileName)
 	{
-	__FLOG(_L8("CopyFileL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_COPYFILEL_ENTRY );
 	delete iNewFileName;
 	iNewFileName = NULL;
 	iNewFileName = aNewFileName.AllocL(); // Store the new file name	
 	const TDesC& suid(iObjectInfo->DesC(CMTPObjectMetaData::ESuid));
 	GetPreviousPropertiesL(suid);
 	
-	User::LeaveIfError(iFileMan->Copy(suid, *iDest, CFileMan::EOverWrite, iStatus));
+	LEAVEIFERROR(iFileMan->Copy(suid, *iDest, CFileMan::EOverWrite, iStatus),
+	        OstTraceExt2( TRACE_ERROR, CMTPCOPYOBJECT_COPYFILEL, "copy %S to %S failed!", suid, *iDest));
 	if ( !IsActive() )
 	{  
 	SetActive();
@@ -182,8 +189,8 @@
 	iTimer = CPeriodic::NewL(EPriorityStandard);
 	TTimeIntervalMicroSeconds32 KCopyObjectIntervalNone = 0;	
 	iTimer->Start(TTimeIntervalMicroSeconds32(KCopyObjectTimeOut), KCopyObjectIntervalNone, TCallBack(CMTPCopyObject::OnTimeoutL, this));
-	
-	__FLOG(_L8("CopyFileL - Exit"));
+
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_COPYFILEL_EXIT );
 	}
 
 /**
@@ -193,13 +200,14 @@
 */
 TUint32 CMTPCopyObject::CopyFolderL(const TDesC& aNewFolderName)
 	{
-	__FLOG(_L8("CopyFolderL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_COPYFOLDERL_ENTRY );
 	const TDesC& suid(iObjectInfo->DesC(CMTPObjectMetaData::ESuid));
 	TUint32 handle;
 	if (iObjectInfo->Uint(CMTPObjectMetaData::EDataProviderId) == iFramework.DataProviderId())
 		{
 		GetPreviousPropertiesL(suid);
-		User::LeaveIfError(iFramework.Fs().MkDir(aNewFolderName));
+		LEAVEIFERROR(iFramework.Fs().MkDir(aNewFolderName),
+		        OstTraceExt1( TRACE_ERROR, CMTPCOPYOBJECT_COPYFOLDERL, "create directory %S failed!", aNewFolderName));
 		SetPreviousPropertiesL(aNewFolderName);	
 		handle = UpdateObjectInfoL(aNewFolderName);
 		}
@@ -207,7 +215,7 @@
 		{
 		handle = iFramework.ObjectMgr().HandleL(aNewFolderName);
 		}
-	__FLOG(_L8("CopyFolderL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_COPYFOLDERL_EXIT );
 	return handle;
 	}
 		
@@ -217,7 +225,7 @@
 */
 TMTPResponseCode CMTPCopyObject::CopyObjectL(TUint32& aNewHandle)
 	{
-	__FLOG(_L8("CopyObjectL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_COPYOBJECTL_ENTRY );
 	TMTPResponseCode responseCode = EMTPRespCodeOK;
 	aNewHandle = KMTPHandleNone;
 	
@@ -241,7 +249,8 @@
 	else // It is a folder.
 		{
 		TFileName rightMostFolderName;
-		User::LeaveIfError(BaflUtils::MostSignificantPartOfFullName(suid, rightMostFolderName));
+		LEAVEIFERROR(BaflUtils::MostSignificantPartOfFullName(suid, rightMostFolderName),
+		        OstTraceExt1( TRACE_ERROR, CMTPCOPYOBJECT_COPYOBJECTL, "can't extract most significant part from %S", suid));    
 		if((newObjectName.Length() + rightMostFolderName.Length() + 1) <= newObjectName.MaxLength())
 			{
 			newObjectName.Append(rightMostFolderName);
@@ -268,7 +277,7 @@
 		}
 	
 	CleanupStack::PopAndDestroy(); // newObjectName.
-	__FLOG(_L8("CopyObjectL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_COPYOBJECTL_EXIT );
 	return responseCode;
 	}
 
@@ -277,7 +286,7 @@
 */	
 void CMTPCopyObject::GetParametersL()
 	{
-	__FLOG(_L8("GetParametersL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_GETPARAMETERSL_ENTRY );
 	__ASSERT_DEBUG(iRequestChecker, Panic(EMTPDpRequestCheckNull));
 	
 	TUint32 objectHandle  = Request().Uint32(TMTPTypeRequest::ERequestParameter1);
@@ -301,7 +310,7 @@
 		iDest = parentObjectInfo->DesC(CMTPObjectMetaData::ESuid).AllocL();
 		iNewParentHandle = parentObjectHandle;
 		}
-	__FLOG(_L8("GetParametersL - Exit"));	
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_GETPARAMETERSL_EXIT );
 	}
 	
 /**
@@ -309,7 +318,7 @@
 */
 void CMTPCopyObject::SetDefaultParentObjectL()
 	{
-	__FLOG(_L8("SetDefaultParentObjectL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_SETDEFAULTPARENTOBJECTL_ENTRY );
 
 	const CMTPStorageMetaData& storageMetaData( iFramework.StorageMgr().StorageL(iStorageId) );
 	const TDesC& driveBuf( storageMetaData.DesC(CMTPStorageMetaData::EStorageSuid) );
@@ -318,7 +327,7 @@
 	iDest = driveBuf.AllocL();
 	iNewParentHandle = KMTPHandleNoParent;
 	    
-	__FLOG(_L8("SetDefaultParentObjectL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_SETDEFAULTPARENTOBJECTL_EXIT );
 	}
 
 /**
@@ -326,16 +335,21 @@
 */
 TMTPResponseCode CMTPCopyObject::CanCopyObjectL(const TDesC& aOldName, const TDesC& aNewName) const
 	{
-	__FLOG(_L8("CanCopyObjectL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_CANCOPYOBJECTL_ENTRY );
 	TMTPResponseCode result = EMTPRespCodeOK;
 
 	TEntry fileEntry;
-	User::LeaveIfError(iFramework.Fs().Entry(aOldName, fileEntry));
+	LEAVEIFERROR(iFramework.Fs().Entry(aOldName, fileEntry),
+	        OstTraceExt1( TRACE_ERROR, DUP1_CMTPCOPYOBJECT_CANCOPYOBJECTL, "Can't get entry details for %S", aOldName ));     
 	TInt drive(iFramework.StorageMgr().DriveNumber(iStorageId));
-	User::LeaveIfError(drive);
+	LEAVEIFERROR(drive,
+	        OstTraceExt2( TRACE_ERROR, DUP2_CMTPCOPYOBJECT_CANCOPYOBJECTL, 
+	                "Get driver number for storage %d failed! error code %d", iStorageId, drive));
+	        
 	TVolumeInfo volumeInfo;
-	User::LeaveIfError(iFramework.Fs().Volume(volumeInfo, drive));
-	
+	LEAVEIFERROR(iFramework.Fs().Volume(volumeInfo, drive),
+	        OstTrace1( TRACE_ERROR, DUP3_CMTPCOPYOBJECT_CANCOPYOBJECTL, "can't get volume information for driver %d", drive));
+
 #ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
     if(volumeInfo.iFree < fileEntry.FileSize())
 #else
@@ -348,7 +362,8 @@
 		{
 		result = EMTPRespCodeInvalidParentObject;
 		}
-	__FLOG_VA((_L8("CanCopyObjectL - Exit with response code 0x%04X"), result));
+	OstTrace1( TRACE_NORMAL, CMTPCOPYOBJECT_CANCOPYOBJECTL, "response code 0x%04X", result );	
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_CANCOPYOBJECTL_EXIT );
 	return result;	
 	}
 
@@ -357,9 +372,17 @@
 */
 void CMTPCopyObject::GetPreviousPropertiesL(const TDesC& aFileName)
 	{
-	__FLOG(_L8("GetPreviousPropertiesL - Entry"));
-	User::LeaveIfError(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime));
-	__FLOG(_L8("GetPreviousPropertiesL - Exit"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_GETPREVIOUSPROPERTIESL_ENTRY );
+	LEAVEIFERROR(iFramework.Fs().Modified(aFileName, iPreviousModifiedTime),
+	        OstTraceExt1( TRACE_ERROR, CMTPCOPYOBJECT_GETPREVIOUSPROPERTIESL, "Can't get the last modification date and time for %S", aFileName));
+	if ( iIsFolder )
+	    {
+        TEntry fileEntry;
+        User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+        iIsHidden = fileEntry.IsHidden();
+	    }
+	        
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_GETPREVIOUSPROPERTIESL_EXIT );
 	}
 
 /**
@@ -367,9 +390,18 @@
 */
 void CMTPCopyObject::SetPreviousPropertiesL(const TDesC& aFileName)
 	{
-	__FLOG(_L8("SetPreviousPropertiesL - Entry"));
-	User::LeaveIfError(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime));
-	__FLOG(_L8("SetPreviousPropertiesL - Exit"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_SETPREVIOUSPROPERTIESL_ENTRY );
+	LEAVEIFERROR(iFramework.Fs().SetModified(aFileName, iPreviousModifiedTime),
+	        OstTraceExt1( TRACE_ERROR, CMTPCOPYOBJECT_SETPREVIOUSPROPERTIESL, "Sets the date and time for %S failed", aFileName));
+	if ( iIsFolder && iIsHidden )
+	    {
+        TEntry fileEntry;
+        User::LeaveIfError(iFramework.Fs().Entry( aFileName, fileEntry ));
+        fileEntry.iAtt &= ~KEntryAttHidden;
+        fileEntry.iAtt |= KEntryAttHidden;
+        User::LeaveIfError(iFramework.Fs().SetAtt( aFileName, fileEntry.iAtt, ~fileEntry.iAtt));
+	    }
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_SETPREVIOUSPROPERTIESL_EXIT );
 	}
 
 /**
@@ -377,7 +409,7 @@
 */
 TUint32 CMTPCopyObject::UpdateObjectInfoL(const TDesC& aNewObjectName)
 	{
-	__FLOG(_L8("UpdateObjectInfoL - Entry"));	
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_UPDATEOBJECTINFOL_ENTRY );
 	
 	// We should not modify this object's handle, so just get a "copy".
 	CMTPObjectMetaData* objectInfo(CMTPObjectMetaData::NewLC());
@@ -392,13 +424,13 @@
 		}
 	else
 		{
+        OstTrace0( TRACE_ERROR, CMTPCOPYOBJECT_UPDATEOBJECTINFOL, "the specified object handle doesn't exist");
 		User::Leave(KErrCorrupt);
 		}
 	TUint32 handle = objectInfo->Uint(CMTPObjectMetaData::EHandle);	
 	CleanupStack::PopAndDestroy(objectInfo);
 	
-	__FLOG(_L8("UpdateObjectInfoL - Exit"));
-	
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_UPDATEOBJECTINFOL_EXIT );
 	return handle;	
 	}
 
@@ -416,7 +448,7 @@
 
 void CMTPCopyObject::DoOnTimeoutL()
 	{
-	__FLOG(_L8("DoOnTimeoutL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_DOONTIMEOUTL_ENTRY );
 	
 	if (iTimer)
 		{
@@ -430,7 +462,9 @@
 	
 	const TDesC& suid(iObjectInfo->DesC(CMTPObjectMetaData::ESuid));
 	TEntry fileEntry;
-	User::LeaveIfError(iFramework.Fs().Entry(suid, fileEntry));
+	LEAVEIFERROR(iFramework.Fs().Entry(suid, fileEntry),
+	        OstTraceExt1( TRACE_ERROR, DUP1_CMTPCOPYOBJECT_DOONTIMEOUTL, "Gets the entry details for %S failed!", suid));
+
 	TUint32 handle = KMTPHandleNone;
 	handle = UpdateObjectInfoL(*iNewFileName);
 	CMTPFSEntryCache& aCache = iDpSingletons.CopyingBigFileCache();
@@ -439,11 +473,12 @@
 	aCache.SetOnGoing(ETrue);
 	aCache.SetTargetHandle(handle);
 	aCache.SetFileEntry(fileEntry);
-	
-	__FLOG_VA((_L8("UpdateFSEntryCache, sending response with handle=%d, respond code OK for a big file copy"), handle));
+
+	OstTrace1( TRACE_NORMAL, CMTPCOPYOBJECT_DOONTIMEOUTL, 
+	        "UpdateFSEntryCache, sending response with handle=%d, respond code OK for a big file copy", handle );	
 	SendResponseL(EMTPRespCodeOK, 1, &handle);
 	
-	__FLOG(_L8("DoOnTimeoutL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_DOONTIMEOUTL_EXIT );
 	}
 
 /**
@@ -451,15 +486,16 @@
 */
 void CMTPCopyObject::RunL()
 	{
-	__FLOG(_L8("RunL - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_RUNL_ENTRY );
 	
-	User::LeaveIfError(iStatus.Int());
+	LEAVEIFERROR(iStatus.Int(),
+	        OstTrace1( TRACE_ERROR, DUP2_CMTPCOPYOBJECT_RUNL, "wrong istatus %d", iStatus.Int()));
 	SetPreviousPropertiesL(*iNewFileName);
 	CMTPFSEntryCache& aCache = iDpSingletons.CopyingBigFileCache();
 	// Check to see if we are copying a big file
 	if(aCache.IsOnGoing())
 		{
-		__FLOG(_L8("RunL - Big file copy complete"));
+		OstTrace0( TRACE_NORMAL, CMTPCOPYOBJECT_RUNL, "RunL - Big file copy complete" );
 		aCache.SetOnGoing(EFalse);
 		aCache.SetTargetHandle(KMTPHandleNone);
 		}	
@@ -477,10 +513,11 @@
 			}
 		
 		TUint32 handle = UpdateObjectInfoL(*iNewFileName);
-		__FLOG_VA((_L8("RunL, sending response with handle=%d, respond code OK for a normal file copy"), handle));
+		OstTrace1( TRACE_NORMAL, DUP1_CMTPCOPYOBJECT_RUNL, 
+		        "RunL, sending response with handle=%d, respond code OK for a normal file copy", handle );		
 		SendResponseL(EMTPRespCodeOK, 1, &handle);
 		}
-	__FLOG(_L8("RunL - Exit"));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_RUNL_EXIT );
 	}
 
 /**
@@ -489,15 +526,18 @@
 */
 TBool CMTPCopyObject::DoHandleCompletingPhaseL()
 	{
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_DOHANDLECOMPLETINGPHASEL_ENTRY );
 	CMTPRequestProcessor::DoHandleCompletingPhaseL();
 	
 	CMTPFSEntryCache& aCache = iDpSingletons.CopyingBigFileCache();
 	if(aCache.IsOnGoing())
 		{
+		OstTraceFunctionExit0( CMTPCOPYOBJECT_DOHANDLECOMPLETINGPHASEL_EXIT );
 		return EFalse;
 		}
 	else
 		{
+		OstTraceFunctionExit0( DUP1_CMTPCOPYOBJECT_DOHANDLECOMPLETINGPHASEL_EXIT );
 		return ETrue;
 		}
 	}
@@ -510,13 +550,13 @@
 */        
 TBool CMTPCopyObject::Match(const TMTPTypeRequest& aRequest, MMTPConnection& aConnection) const
 	{
-	__FLOG(_L8("Match - Entry"));
+	OstTraceFunctionEntry0( CMTPCOPYOBJECT_MATCH_ENTRY );
 	TBool result = EFalse;
 	TUint16 operationCode = aRequest.Uint16(TMTPTypeRequest::ERequestOperationCode);
 	if ((operationCode == EMTPOpCodeCopyObject) && &iConnection == &aConnection)
 	{
 	result = ETrue;
 	}    
-	__FLOG_VA((_L8("Match -- Exit with result = %d"), result));
+	OstTraceFunctionExit0( CMTPCOPYOBJECT_MATCH_EXIT );
 	return result;    
 	}