mtpfws/mtpfw/dataproviders/proxydp/src/cmtpdeleteobject.cpp
branchRCL_3
changeset 6 ef55b168cedb
parent 3 8b094906a049
equal deleted inserted replaced
5:3673b591050c 6:ef55b168cedb
    17 #include <mtp/cmtpstoragemetadata.h>
    17 #include <mtp/cmtpstoragemetadata.h>
    18 #include <mtp/mmtpdataproviderframework.h>
    18 #include <mtp/mmtpdataproviderframework.h>
    19 #include <mtp/mtpprotocolconstants.h>
    19 #include <mtp/mtpprotocolconstants.h>
    20 #include <mtp/tmtptyperequest.h>
    20 #include <mtp/tmtptyperequest.h>
    21 #include <mtp/cmtptypearray.h>
    21 #include <mtp/cmtptypearray.h>
       
    22 #include <mtp/mtpdataproviderapitypes.h>
    22 
    23 
    23 #include "cmtpdataprovider.h"
    24 #include "cmtpdataprovider.h"
    24 #include "cmtpdataprovidercontroller.h"
    25 #include "cmtpdataprovidercontroller.h"
    25 #include "cmtpdeleteobject.h"
    26 #include "cmtpdeleteobject.h"
    26 #include "cmtpobjectmgr.h"
    27 #include "cmtpobjectmgr.h"
    96     
    97     
    97 TMTPResponseCode CMTPDeleteObject::CheckRequestL()
    98 TMTPResponseCode CMTPDeleteObject::CheckRequestL()
    98 	{
    99 	{
    99     __FLOG(_L8("CheckRequestL - Entry"));
   100     __FLOG(_L8("CheckRequestL - Entry"));
   100     TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();   
   101     TMTPResponseCode responseCode = CMTPRequestProcessor::CheckRequestL();   
   101     if ((EMTPRespCodeOK == responseCode) && (iSingletons.DpController().EnumerateState() == CMTPDataProviderController::EEnumeratingSubDirFiles))
       
   102         {
       
   103 		responseCode = EMTPRespCodeDeviceBusy;
       
   104         }
       
   105     
   102     
   106 	__FLOG_VA((_L8("CheckRequestL - Exit with responseCode = 0x%04X"), responseCode));
   103 	__FLOG_VA((_L8("CheckRequestL - Exit with responseCode = 0x%04X"), responseCode));
   107     return responseCode;
   104     return responseCode;
   108 	}
   105 	}
   109 
   106 
   116     iTargetDps.Reset();
   113     iTargetDps.Reset();
   117     CMTPParserRouter& router(iSingletons.Router());
   114     CMTPParserRouter& router(iSingletons.Router());
   118     CMTPParserRouter::TRoutingParameters params(Request(), iConnection);
   115     CMTPParserRouter::TRoutingParameters params(Request(), iConnection);
   119     router.ParseOperationRequestL(params);
   116     router.ParseOperationRequestL(params);
   120     router.RouteOperationRequestL(params, iTargetDps);
   117     router.RouteOperationRequestL(params, iTargetDps);
       
   118     
       
   119     if (iSingletons.DpController().EnumerateState() == CMTPDataProviderController::EEnumeratingSubDirFiles)
       
   120         {
       
   121 		TBool hasBaseFileSystemDp = EFalse;
       
   122 		for(TInt i=0; i<iTargetDps.Count(); i++)
       
   123 			{
       
   124 			CMTPDataProvider& dp = iSingletons.DpController().DataProviderL( iTargetDps[i] );
       
   125 			if(dp.SupportedCodes(EStorageSystemTypes).Find(CMTPStorageMetaData::ESystemTypeDefaultFileSystem) != KErrNotFound)
       
   126 				{
       
   127 				hasBaseFileSystemDp = ETrue;
       
   128 				break;
       
   129 				}
       
   130 			}
       
   131 		
       
   132 		if(hasBaseFileSystemDp)
       
   133 			{
       
   134 			SendResponseL(EMTPRespCodeDeviceBusy);
       
   135 			__FLOG( _L8("-ServiceL with Device_Busy") );
       
   136 			return;
       
   137 			}
       
   138         }
   121     
   139     
   122     BrowseHandlesL();
   140     BrowseHandlesL();
   123     
   141     
   124     __FLOG( _L8("-ServiceL") );
   142     __FLOG( _L8("-ServiceL") );
   125     }
   143     }