mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp
branchGCC_SURGE
changeset 47 f3d2589f22d6
parent 35 2ee890d2f7e7
child 50 762d760dcfdf
equal deleted inserted replaced
36:3b7506f63335 47:f3d2589f22d6
    62     }
    62     }
    63 
    63 
    64 void CDeleteObject::ConstructL()
    64 void CDeleteObject::ConstructL()
    65     {
    65     {
    66     CActiveScheduler::Add( this );
    66     CActiveScheduler::Add( this );
    67     SetPSStatus();
       
    68     }
    67     }
    69 
    68 
    70 // -----------------------------------------------------------------------------
    69 // -----------------------------------------------------------------------------
    71 // CDeleteObject::~CDeleteObject
    70 // CDeleteObject::~CDeleteObject
    72 // Destructor
    71 // Destructor
   102 // DeleteObject request handler
   101 // DeleteObject request handler
   103 // -----------------------------------------------------------------------------
   102 // -----------------------------------------------------------------------------
   104 //
   103 //
   105 EXPORT_C void CDeleteObject::ServiceL()
   104 EXPORT_C void CDeleteObject::ServiceL()
   106     {
   105     {
       
   106     MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive );
       
   107     
   107     iObjectsToDelete.Reset();
   108     iObjectsToDelete.Reset();
   108     iDeleteError = KErrNone;
   109     iDeleteError = KErrNone;
   109     TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
   110     TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
   110 
   111 
   111     PRINT3( _L( "MM MTP <> CDeleteObject::ServiceL, objectHandle = 0x%x, numObject = %d, iDeleteError = %d" ),
   112     PRINT3( _L( "MM MTP <> CDeleteObject::ServiceL, objectHandle = 0x%x, numObject = %d, iDeleteError = %d" ),
   123         }
   124         }
   124     else
   125     else
   125         {
   126         {
   126         iIsMultiDelete = EFalse;
   127         iIsMultiDelete = EFalse;
   127         // Not Owned the object
   128         // Not Owned the object
   128         // TODO: need to check if this is best way and if it is applicable to other processors
       
   129         CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle );
   129         CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle );
   130 
   130 
   131         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
   131         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
   132             {
   132             {
   133             TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle );
   133             TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle );
   189         // Get the next object
   189         // Get the next object
   190         CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo
   190         CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo
   191 
   191 
   192         TUint32 handle = iObjectsToDelete[0];
   192         TUint32 handle = iObjectsToDelete[0];
   193         iFramework.ObjectMgr().ObjectL( handle, *objectInfo );
   193         iFramework.ObjectMgr().ObjectL( handle, *objectInfo );
   194         TFileName fileName( objectInfo->DesC( CMTPObjectMetaData::ESuid ) );
   194         PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ),
   195         PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), handle, &fileName );
   195             handle,
       
   196             &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ) );
   196 
   197 
   197         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
   198         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
   198             {
   199             {
   199             TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle );
   200             TUint parentHandle = objectInfo->Uint( CMTPObjectMetaData::EHandle );
   200             GetObjectHandlesL( KMTPStorageAll, parentHandle );
   201             GetObjectHandlesL( KMTPStorageAll, parentHandle );
   219 // Deletes the object from the file system and the object from the store
   220 // Deletes the object from the file system and the object from the store
   220 // -----------------------------------------------------------------------------
   221 // -----------------------------------------------------------------------------
   221 //
   222 //
   222 void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo )
   223 void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo )
   223     {
   224     {
   224     TFileName fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) );
   225     TPtrC fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) );
   225     PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName );
   226     PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName );
   226 
       
   227     iDpConfig.GetWrapperL().SetStorageRootL( fileName );
       
   228 
   227 
   229     // To capture special situation: After copy, move, rename playlist folder name,
   228     // To capture special situation: After copy, move, rename playlist folder name,
   230     // record in MPX is not inlined with framework db, playlist should not be deleted
   229     // record in MPX is not inlined with framework db, playlist should not be deleted
   231     // until next session.
   230     // until next session.
   232     // This is used to keep the same behavior in mass storage and device file manager.
   231     // This is used to keep the same behavior in mass storage and device file manager.