Revision: 201020 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 09 Jun 2010 10:13:45 +0300
branchRCL_3
changeset 34 e257e2b6459d
parent 30 6f9f6e99a23e
child 42 4aca42fa4eb1
Revision: 201020 Kit: 2010123
mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp
mmappcomponents/harvester/server/src/mpxharvesterserver.cpp
mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h
mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp
mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp
mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp
--- a/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -166,11 +166,7 @@
     MPX_DEBUG3("CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d", usbStatus, mtpStatus);
     MPX_DEBUG2("CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d", iState);
     MPX_DEBUG4("CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)", iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured);
-    
-    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d"), usbStatus, mtpStatus);
-    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d"), iState);
-    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)"), iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured);
-    
+        
     // events from lower level is not causing multiple callback on the same type
     // usb is really only connected if went through Address or Configured state
     if( (usbStatus == KUsbPersonalityIdMS) && (iDeviceState == EUsbDeviceStateAddress || iDeviceState == EUsbDeviceStateConfigured))
@@ -178,7 +174,6 @@
         if ((iState == EMPXConnectionMTPIdle) || (iState == EMPXConnectionMTPActive))
             {
             MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
-            RDebug::Print(_L("tpoon: MTP End"));
             iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 );
             iState = EMPXConnectionNone;
             }
@@ -193,7 +188,6 @@
         if (usbStatus != KUsbPersonalityIdMS)
             {
             MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - USB MassStorage End");
-            RDebug::Print(_L("tpoon: MS End"));
             iObserver.HandleSystemEventL( EUSBMassStorageEndEvent, -1 );
             iState = EMPXConnectionNone;
             }
@@ -205,7 +199,6 @@
         if ((mtpStatus == EMtpPSStatusUninitialized) && (iState != EMPXConnectionNone))
             {
             MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
-            RDebug::Print(_L("tpoon: MTP End"));
             iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 );
             iState = EMPXConnectionNone;
             }
@@ -224,7 +217,6 @@
 void CMPXConnectionEventHandler::DoMSStartEventL()
     {
     MPX_DEBUG1("CMPXConnectionEventHandler::DoMSStartEventL - USB MassStorage Start");
-    RDebug::Print(_L("tpoon: MS Start"));
     iObserver.HandleSystemEventL( EUSBMassStorageStartEvent, -1 );
     iState = EMPXConnectionMassStorage;
     }
@@ -232,7 +224,6 @@
 void CMPXConnectionEventHandler::DoMTPStartEventL()
     {
     MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPStartEventL - MTP Start");
-    RDebug::Print(_L("tpoon: MTP Start"));
     iObserver.HandleSystemEventL( EUSBMTPStartEvent, -1 );
     iState = EMPXConnectionMTPActive;
     }
@@ -240,7 +231,6 @@
 void CMPXConnectionEventHandler::DoMTPNotActiveEventL()
     {
     MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPNotActiveEventL - MTP Not Active");
-    RDebug::Print(_L("tpoon: MTP Not Active"));
     iObserver.HandleSystemEventL( EUSBMTPNotActiveEvent, -1 );
     iState = EMPXConnectionMTPIdle;
     }
--- a/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -71,9 +71,9 @@
     CMPXHarvesterServer* server = CMPXHarvesterServer::NewL();
     CleanupStack::PushL(server);    
     RProcess::Rendezvous(KErrNone);
-    CActiveScheduler::Start();
+    CActiveScheduler::Start();    
+    CleanupStack::PopAndDestroy(server);
     CActiveScheduler::Install(NULL);
-    CleanupStack::PopAndDestroy(server);
     CleanupStack::PopAndDestroy(scheduler);
     }
 
--- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h	Wed Jun 09 10:13:45 2010 +0300
@@ -51,7 +51,7 @@
     * @param aCategory, indicate the category of abstract medias
     */
     IMPORT_C void GetAllAbstractMediaL( const TDesC& aStoreRoot,
-        CMPXMediaArray** aAbstractMedias,
+        CDesCArray& aAbstractMedias,
         TMPXGeneralCategory aCategory );
 
     /**
@@ -59,18 +59,10 @@
     * @param aAbstractMedia, specify of which reference should be get
     * @param aReferences, return result array which stored handles of all references
     */
-    IMPORT_C void GetAllReferenceL( CMPXMedia* aAbstractMedia,
+    IMPORT_C void GetAllReferenceL( const CMTPObjectMetaData& aRefOwner,
         CDesCArray& aReferences );
 
     /**
-    * Get an abstract media name from CMPXMedia object
-    * @param aAbstractMedia, specify the source
-    * @param aCategory, specify the category
-    * @return, name of the source, ownership transferred
-    */
-    IMPORT_C HBufC* GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
-        TMPXGeneralCategory aCategory );
-    /**
     * Add object (music, video, playlist and abstract album) info to DB
     * @param aFullFileName, full file name of file
     * @return void
--- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h	Wed Jun 09 10:13:45 2010 +0300
@@ -72,7 +72,7 @@
      * @param aCategory, indicate the category of abstract medias
      */
     void GetAllAbstractMediaL( const TDesC& aStoreRoot,
-        CMPXMediaArray** aAbstractMedias,
+        CDesCArray& aAbstractMedias,
         TMPXGeneralCategory aCategory );
 
     /**
@@ -80,19 +80,11 @@
      * @param aAbstractMedia, specify of which reference should be get
      * @param aReferences, return result array which stored handles of all references
      */
-    void GetAllReferenceL( CMPXMedia* aAbstractMedia,
+    void GetAllReferenceL( const TDesC& aRefOwnerSuid,
+        TMPXGeneralCategory aCategory,
         CDesCArray& aReferences );
 
     /**
-     * Get an abstract media name from CMPXMedia object
-     * @param aAbstractMedia, specify the source
-     * @param aCategory, specify the category
-     * @return, name of the source, ownership transferred
-     */
-    HBufC* GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
-        TMPXGeneralCategory aCategory );
-
-    /**
      * Adds Songs info to Mpx DB
      * @param aFullFileName, full file name of Media file
      */
@@ -215,6 +207,8 @@
     MMPXCollectionHelper* iCollectionHelper;
     HBufC8* iSampleData;
 
+    TBool iHasCleanUp;
+
 #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
     CMmMtpDpPerfLog* iPerfLog;
 #endif
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h	Wed Jun 09 10:13:45 2010 +0300
@@ -104,13 +104,12 @@
     * @param aPath current scanned file path
     */
     void AddEntryL( const TDesC& aSuid );
-
+    
     /**
-    * Add references of specified abstract media into reference db
-    * @param aAbstractMediaName, specify the abstract media of which references should be added into db
-    * @param aReferences, suid array which stored references
+    * reset Object's format sub code in object manager
     */
-    void AddReferencesL( const TDesC& aAbstractMediaName, CDesCArray& aReferences );
+    void ResetObjectFormatSubCodeL( TUint32 aStorageId );
+
 
 private:
     // Owned
@@ -129,11 +128,13 @@
     RArray<TUint> iStorages;
     TUint32 iStorageId;
 
-    CMPXMediaArray* iAbstractMedias;
+    CDesCArray* iAbstractMedias;
     TInt iCount;
     TInt iCurrentIndex;
     TInt iEnumState;
-
+    
+    TInt iResetCount;
+    
 #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
     CMmMtpDpPerfLog* iPerfLog;
 #endif
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -22,6 +22,7 @@
 #include <mtp/mmtpobjectmgr.h>
 #include <mtp/mmtpstoragemgr.h>
 #include <mtp/mmtpreferencemgr.h>
+#include <mtp/tmtptypeuint32.h>
 #include <mpxmediaarray.h>
 #include <mpxmedia.h>
 
@@ -39,11 +40,9 @@
 
 #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
 _LIT( KMpxGetAllAbstractMedia, "MpxGetAllAbstractMedia" );
-_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" );
 _LIT( KObjectManagerObjectUid, "ObjectManagerObjectUid" );
 _LIT( KObjectManagerInsert, "ObjectManagerInsert" );
-_LIT( KObjectManagerHandle, "ObjectManagerHandle" );
-_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" );
+_LIT( KResetObjectFormatSubCode, "ResetObjectFormatSubCode" );
 #endif
 
 // -----------------------------------------------------------------------------
@@ -80,7 +79,8 @@
     iAbstractMedias( NULL ),
     iCount( 0 ),
     iCurrentIndex( 0 ),
-    iEnumState ( EEnumNone )
+    iEnumState ( EEnumNone ),
+    iResetCount( 0 )
     {
     PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::CAbstractMediaMtpDataProviderEnumerator, iDataProviderId = %d" ), iDataProviderId );
     }
@@ -200,7 +200,7 @@
     __ASSERT_DEBUG( ( storage.Uint( CMTPStorageMetaData::EStorageSystemType ) ==
         CMTPStorageMetaData::ESystemTypeDefaultFileSystem ), User::Invariant() );
 
-    TFileName root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) );
+    TPtrC root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) );
     PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::InitStorageL StorageSuid = %S" ), &root );
 
     if ( iEnumState == EEnumPlaylist )
@@ -238,9 +238,10 @@
     // find all abstract medias stored in MPX
     delete iAbstractMedias;
     iAbstractMedias = NULL;
+    iAbstractMedias = new( ELeave ) CDesCArrayFlat( KMTPDriveGranularity );
     TMPXGeneralCategory category = ( iEnumState == EEnumPlaylist ) ? EMPXPlaylist : EMPXAbstractAlbum;
     PERFLOGSTART( KMpxGetAllAbstractMedia );
-    TRAPD( err, iDataProvider.GetWrapperL().GetAllAbstractMediaL( root, &iAbstractMedias, category  ) );
+    TRAPD( err, iDataProvider.GetWrapperL().GetAllAbstractMediaL( root, *iAbstractMedias, category  ) );
     PERFLOGSTOP( KMpxGetAllAbstractMedia );
 
     if ( iAbstractMedias != NULL && err == KErrNone )
@@ -273,6 +274,13 @@
     if ( iEnumState >= EEnumCount )
         {
         iEnumState = EEnumPlaylist;
+        iResetCount = 0;
+        
+        PERFLOGSTART( KResetObjectFormatSubCode );
+        ResetObjectFormatSubCodeL( iStorages[0] );
+        PERFLOGSTOP( KResetObjectFormatSubCode );
+        
+        PRINT2( _L( "MM MTP <> ResetObjectFormatSubCodeL, storage = 0x%x, iResetCount = %d" ), iStorages[0], iResetCount );
         iStorages.Remove( 0 );
         }
 
@@ -313,49 +321,28 @@
         PRINT2( _L( "MM MTP <> Current storage is still being scanned, current index = %d, total AbstractMedia count = %d" ),
             iCurrentIndex,
             iCount );
-        // insert all abstract medias into handle db of framework
-        CMPXMedia* media = ( *iAbstractMedias )[iCurrentIndex];
 
-        // Increase the index first in case of leave
-        iCurrentIndex++;
-        TMPXGeneralCategory category = ( iEnumState == EEnumPlaylist ) ? EMPXPlaylist : EMPXAbstractAlbum;
-        HBufC* abstractMedia = iDataProvider.GetWrapperL().GetAbstractMediaNameL( media, category );
-        CleanupStack::PushL( abstractMedia ); // + abstractMedia
+        // Insert all abstract medias into handle db of framework
+        iCurrentIndex++;    // Increase the index first in case of leave
+        TPtrC entrySuid( ( *iAbstractMedias )[iCurrentIndex-1] );
 
-        TBool ret = ETrue;
         if ( iEnumState == EEnumAbstractAlbum )
             {
             // The abstract album may be removed, check it first
-            ret = BaflUtils::FileExists( iFramework.Fs(), *abstractMedia );
-            PRINT2( _L( "MM MTP <> BaflUtils::FileExists( RFs,%S ) ret = %d" ), abstractMedia, ret );
+            TBool ret = BaflUtils::FileExists( iFramework.Fs(), entrySuid );
+            PRINT2( _L( "MM MTP <> BaflUtils::FileExists( RFs,%S ) ret = %d" ), &entrySuid, ret );
             }
         else // EEnumPlaylist
             {
             // Add an object to the object store for DB based playlist
-            AddEntryL( *abstractMedia );
+            AddEntryL( entrySuid );
             }
 
-        if ( ret )
-            {
-            PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunL abstractMedia=%S" ), abstractMedia );
-
-            // find all reference of each abstract media
-            CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity );
-            CleanupStack::PushL( references ); // + references
-
-            PERFLOGSTART( KMpxQueryAbstractMediaReference );
-            iDataProvider.GetWrapperL().GetAllReferenceL( media, *references );
-            PERFLOGSTOP( KMpxQueryAbstractMediaReference );
-
-            // insert references into reference db
-            AddReferencesL( *abstractMedia, *references );
-
-            CleanupStack::PopAndDestroy( references ); // - references
-            }
-        CleanupStack::PopAndDestroy( abstractMedia ); // - abstractMedia
+        // Getting all reference during internal enumeration takes too long, query later on demand
         }
 
     ScanNextL();
+
     PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::RunL" ) );
     }
 
@@ -465,48 +452,40 @@
     PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddEntryL" ) );
     }
 
-// -----------------------------------------------------------------------------
-// CAbstractMediaMtpDataProviderEnumerator::AddReferencesL
-// Add references into reference db according to abstract media name
-// -----------------------------------------------------------------------------
-//
-void CAbstractMediaMtpDataProviderEnumerator::AddReferencesL( const TDesC& aAbstractMediaName,
-    CDesCArray& aReferences )
+void CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL( TUint32 aStorageId )
     {
-    TInt count = aReferences.Count();
-    PRINT2( _L("MM MTP => CAbstractMediaMtpDataProviderEnumerator::AddReferencesL AbstractMedia name = %S, ref count = %d"), &aAbstractMediaName, count );
-
-    // check if references are valid
-    CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC();   // + object
-    MMTPObjectMgr& objectMgr = iFramework.ObjectMgr();
+    PRINT1( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL, StorageId = 0x%x" ),
+        aStorageId );
+    RMTPObjectMgrQueryContext context;
+    RArray<TUint> handles;
+    CleanupClosePushL( context ); // + context
+    CleanupClosePushL( handles ); // + handles
+    
+    // search all handles in desired storage with desired DP id
+    TMTPObjectMgrQueryParams params( aStorageId, KMTPFormatsAll, KMTPHandleNone, iFramework.DataProviderId() );
 
-    TInt removeCount = 0;
-    for ( TInt i = 0; i < count; i++ )
+    do
         {
-        TInt index = i - removeCount;
-        TPtrC temp( aReferences[index] );
-        PRINT2( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL ref[%d]'s name = %S" ), index, &temp );
-        PERFLOGSTART( KObjectManagerHandle );
-        TUint32 handle = iFramework.ObjectMgr().HandleL( temp );
-        PERFLOGSTOP( KObjectManagerHandle );
-        if ( handle == KMTPHandleNone ) // object doesn't exist
+        iObjectMgr.GetObjectHandlesL( params, context, handles );
+
+        for ( TInt i = 0; i < handles.Count(); i++ )
             {
-            PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp );
-
-            // if handle is invalid, remove from reference array
-            aReferences.Delete( index, 1 );
-            removeCount++;
+            CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo
+            
+            iResetCount++;
+            iObjectMgr.ObjectL( handles[i], *objectInfo );
+            // EMTPSubFormatCodeUnknown means references of the object haven't been insert into reference db of fw.
+            objectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUnknown );
+            iObjectMgr.ModifyObjectL( *objectInfo );
+            CleanupStack::PopAndDestroy( objectInfo ); // - objectInfo
             }
         }
-    CleanupStack::PopAndDestroy( object );  // - object
+    while ( !context.QueryComplete() );
 
-    // add all references into references db
-    MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
-    PERFLOGSTART( KReferenceManagerSetReference );
-    referenceMgr.SetReferencesL( aAbstractMediaName, aReferences );
-    PERFLOGSTOP( KReferenceManagerSetReference );
+    CleanupStack::PopAndDestroy( &handles ); // - handles
+    CleanupStack::PopAndDestroy( &context ); // - context
 
-    PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddReferencesL" ) );
+    PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL" ) );
     }
 
 //end of file
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -163,7 +163,7 @@
     if ( iStorages.Count() > 0 )
         {
         const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( iStorages[0] ) );
-        const TDesC& root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) );
+        TPtrC root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) );
         GetModifiedContentL( root );
         TRAPD( err, iDataProvider.GetWrapperL().UpdateMusicCollectionL( root ) );
         if ( err != KErrNone )
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def	Wed Jun 09 10:13:45 2010 +0300
@@ -11,153 +11,140 @@
 	??1CGetInterdependentPropDesc@@UAE@XZ @ 10 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void)
 	?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 11 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void)
 	?ServiceL@CGetPartialObject@@MAEXXZ @ 12 NONAME ; void CGetPartialObject::ServiceL(void)
-	??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 13 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 14 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
-	?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 16 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 17 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
-	?RunL@CRequestProcessor@@MAEXXZ @ 18 NONAME ; void CRequestProcessor::RunL(void)
-	?ServiceL@CDeleteObject@@MAEXXZ @ 19 NONAME ; void CDeleteObject::ServiceL(void)
-	?DoCancel@CSetObjectPropList@@MAEXXZ @ 20 NONAME ; void CSetObjectPropList::DoCancel(void)
-	?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 21 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
-	?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 22 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
-	?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 23 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 24 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
-	?UsbDisconnect@CSendObject@@MAEXXZ @ 25 NONAME ; void CSendObject::UsbDisconnect(void)
-	?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 26 NONAME ; void CGetFormatCapabilities::ServiceL(void)
-	?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 27 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &)
-	??1CSetObjectPropList@@UAE@XZ @ 28 NONAME ; CSetObjectPropList::~CSetObjectPropList(void)
-	?ServiceL@CSetObjectPropList@@MAEXXZ @ 29 NONAME ; void CSetObjectPropList::ServiceL(void)
-	??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 30 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 31 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &)
-	?ConstructL@CGetObjectPropList@@IAEXXZ @ 32 NONAME ; void CGetObjectPropList::ConstructL(void)
-	??1CSendObject@@UAE@XZ @ 33 NONAME ; CSendObject::~CSendObject(void)
-	?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 34 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 35 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectPropValue@@UAE@XZ @ 36 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
-	?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 37 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &)
-	??1CGetFormatCapabilities@@UAE@XZ @ 38 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void)
-	?ServiceL@CSetObjectReferences@@EAEXXZ @ 39 NONAME ; void CSetObjectReferences::ServiceL(void)
-	?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 40 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void)
-	??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 41 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ConstructL@CCopyObject@@IAEXXZ @ 42 NONAME ; void CCopyObject::ConstructL(void)
-	?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 43 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?ServiceL@CGetObjectPropValue@@MAEXXZ @ 44 NONAME ; void CGetObjectPropValue::ServiceL(void)
-	??1CRenameObject@@UAE@XZ @ 45 NONAME ; CRenameObject::~CRenameObject(void)
-	?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 46 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const
-	?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 47 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void)
-	?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 48 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &)
-	?RunL@CRenameObject@@MAEXXZ @ 49 NONAME ; void CRenameObject::RunL(void)
-	??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 50 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 51 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *)
-	?ServiceL@CSendObject@@MAEXXZ @ 52 NONAME ; void CSendObject::ServiceL(void)
-	?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 53 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const
-	?DoCancel@CRequestProcessor@@MAEXXZ @ 54 NONAME ; void CRequestProcessor::DoCancel(void)
-	?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 55 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
-	?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 56 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
-	??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 57 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ConstructL@CGetObjectInfo@@AAEXXZ @ 58 NONAME ; void CGetObjectInfo::ConstructL(void)
-	?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 59 NONAME ; void CRequestProcessor::UsbDisconnect(void)
-	??1CMoveObject@@UAE@XZ @ 60 NONAME ; CMoveObject::~CMoveObject(void)
-	?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 61 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
-	??1CRequestProcessor@@MAE@XZ @ 62 NONAME ; CRequestProcessor::~CRequestProcessor(void)
-	?DoCancel@CDeleteObject@@MAEXXZ @ 63 NONAME ; void CDeleteObject::DoCancel(void)
-	??1CGetObject@@UAE@XZ @ 64 NONAME ; CGetObject::~CGetObject(void)
-	?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 65 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 66 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &)
-	?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 67 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void)
-	?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 68 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void)
-	??1CGetObjectPropsSupported@@UAE@XZ @ 69 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void)
-	?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 70 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void)
-	?HasDataphase@CRequestProcessor@@MBEHXZ @ 71 NONAME ; int CRequestProcessor::HasDataphase(void) const
-	?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 72 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 73 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const
-	?ConstructL@CGetFormatCapabilities@@AAEXXZ @ 74 NONAME ; void CGetFormatCapabilities::ConstructL(void)
-	??1CPropertySettingUtility@@UAE@XZ @ 75 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
-	??1CGetPartialObject@@UAE@XZ @ 76 NONAME ; CGetPartialObject::~CGetPartialObject(void)
-	?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 77 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?RunError@CSetObjectPropList@@MAEHH@Z @ 78 NONAME ; int CSetObjectPropList::RunError(int)
-	?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
-	?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 80 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	?ServiceL@CMoveObject@@MAEXXZ @ 81 NONAME ; void CMoveObject::ServiceL(void)
-	?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 82 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
-	?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 83 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
-	?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 84 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
-	?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 85 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 86 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
-	?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 87 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
-	??0CPropertySettingUtility@@IAE@XZ @ 88 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
-	?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 89 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 90 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 91 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
-	?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 92 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
-	??0CGetPartialObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 93 NONAME ; CGetPartialObject::CGetPartialObject(class MMTPDataProviderFramework &, class MMTPConnection &)
-	?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 94 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
-	?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 95 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
-	?DoSetObjectReferencesL@CSetObjectReferences@@IAEXABVCMTPObjectMetaData@@@Z @ 96 NONAME ; void CSetObjectReferences::DoSetObjectReferencesL(class CMTPObjectMetaData const &)
-	??1CGetObjectInfo@@UAE@XZ @ 97 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
-	?ServiceL@CRequestUnknown@@MAEXXZ @ 98 NONAME ; void CRequestUnknown::ServiceL(void)
-	?HasDataphase@CSetObjectPropList@@MBEHXZ @ 99 NONAME ; int CSetObjectPropList::HasDataphase(void) const
-	?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?DoCancel@CRenameObject@@MAEXXZ @ 101 NONAME ; void CRenameObject::DoCancel(void)
-	??1CSetObjectReferences@@UAE@XZ @ 102 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
-	?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 103 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 104 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@PAPAVCMPXMediaArray@@W4TMPXGeneralCategory@@@Z @ 105 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CMPXMediaArray * *, enum TMPXGeneralCategory)
-	??1CCopyObject@@UAE@XZ @ 106 NONAME ; CCopyObject::~CCopyObject(void)
-	?RunL@CGetObjectPropList@@MAEXXZ @ 107 NONAME ; void CGetObjectPropList::RunL(void)
-	?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 108 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
-	?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 109 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
-	?RunError@CRequestProcessor@@MAEHH@Z @ 110 NONAME ; int CRequestProcessor::RunError(int)
-	?SessionId@CRequestProcessor@@MAEKXZ @ 111 NONAME ; unsigned long CRequestProcessor::SessionId(void)
-	??0CDescriptionUtility@@IAE@XZ @ 112 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
-	?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 113 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
-	?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 114 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?HasDataphase@CSetObjectReferences@@EBEHXZ @ 115 NONAME ; int CSetObjectReferences::HasDataphase(void) const
-	?ConstructL@CGetInterdependentPropDesc@@IAEXXZ @ 116 NONAME ; void CGetInterdependentPropDesc::ConstructL(void)
-	?RunError@CGetObjectPropList@@MAEHH@Z @ 117 NONAME ; int CGetObjectPropList::RunError(int)
-	?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 118 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
-	??0CDeleteObject@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 119 NONAME ; CDeleteObject::CDeleteObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 120 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
-	?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 121 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
-	?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 122 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 123 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
-	??0CGetObjectPropDesc@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; CGetObjectPropDesc::CGetObjectPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ConstructL@CGetObjectPropDesc@@AAEXXZ @ 125 NONAME ; void CGetObjectPropDesc::ConstructL(void)
-	??0CGetInterdependentPropDesc@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 126 NONAME ; CGetInterdependentPropDesc::CGetInterdependentPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectPropDesc@@UAE@XZ @ 127 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
-	?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 128 NONAME ; void CGetObjectPropDesc::ServiceL(void)
-	?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 129 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
-	?ServiceL@CCopyObject@@MAEXXZ @ 130 NONAME ; void CCopyObject::ServiceL(void)
-	?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 131 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
-	?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 132 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
-	?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 133 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 134 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
-	??1CDescriptionUtility@@UAE@XZ @ 135 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
-	?RunL@CSetObjectPropList@@MAEXXZ @ 136 NONAME ; void CSetObjectPropList::RunL(void)
-	?ConstructL@CMoveObject@@IAEXXZ @ 137 NONAME ; void CMoveObject::ConstructL(void)
-	?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 138 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectReferences@@UAE@XZ @ 139 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
-	?HasDataphase@CSendObject@@MBEHXZ @ 140 NONAME ; int CSendObject::HasDataphase(void) const
-	??1CSetObjectPropValue@@UAE@XZ @ 141 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
-	?ConstructL@CRenameObject@@IAEXXZ @ 142 NONAME ; void CRenameObject::ConstructL(void)
-	?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 143 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
-	?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 144 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
-	?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 145 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
-	?DoCancel@CGetObjectPropList@@MAEXXZ @ 146 NONAME ; void CGetObjectPropList::DoCancel(void)
-	?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 147 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
-	?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 148 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
-	?GetAbstractMediaNameL@CMmMtpDpMetadataAccessWrapper@@QAEPAVHBufC16@@PAVCMPXMedia@@W4TMPXGeneralCategory@@@Z @ 149 NONAME ; class HBufC16 * CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL(class CMPXMedia *, enum TMPXGeneralCategory)
-	?ServiceL@CSetObjectPropValue@@MAEXXZ @ 150 NONAME ; void CSetObjectPropValue::ServiceL(void)
-	?RunError@CRenameObject@@MAEHH@Z @ 151 NONAME ; int CRenameObject::RunError(int)
-	??1CDeleteObject@@UAE@XZ @ 152 NONAME ; CDeleteObject::~CDeleteObject(void)
-	?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 153 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
-	?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 154 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
-	??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 155 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectPropList@@UAE@XZ @ 156 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
-	?ServiceL@CGetObjectPropList@@MAEXXZ @ 157 NONAME ; void CGetObjectPropList::ServiceL(void)
-	??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 158 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
-	?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 159 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void)
-	?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 160 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
-	?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 161 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
+	?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 13 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
+	?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 16 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
+	?RunL@CRequestProcessor@@MAEXXZ @ 17 NONAME ; void CRequestProcessor::RunL(void)
+	?ServiceL@CDeleteObject@@MAEXXZ @ 18 NONAME ; void CDeleteObject::ServiceL(void)
+	?DoCancel@CSetObjectPropList@@MAEXXZ @ 19 NONAME ; void CSetObjectPropList::DoCancel(void)
+	?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 20 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
+	?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 21 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
+	?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 22 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 23 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
+	?UsbDisconnect@CSendObject@@MAEXXZ @ 24 NONAME ; void CSendObject::UsbDisconnect(void)
+	?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 25 NONAME ; void CGetFormatCapabilities::ServiceL(void)
+	??1CSetObjectPropList@@UAE@XZ @ 26 NONAME ; CSetObjectPropList::~CSetObjectPropList(void)
+	?ServiceL@CSetObjectPropList@@MAEXXZ @ 27 NONAME ; void CSetObjectPropList::ServiceL(void)
+	??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 28 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ConstructL@CGetObjectPropList@@IAEXXZ @ 29 NONAME ; void CGetObjectPropList::ConstructL(void)
+	??1CSendObject@@UAE@XZ @ 30 NONAME ; CSendObject::~CSendObject(void)
+	?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 31 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 32 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CGetObjectPropValue@@UAE@XZ @ 33 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
+	?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 34 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void)
+	?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 35 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &)
+	??1CGetFormatCapabilities@@UAE@XZ @ 36 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void)
+	?ServiceL@CSetObjectReferences@@EAEXXZ @ 37 NONAME ; void CSetObjectReferences::ServiceL(void)
+	?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 38 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void)
+	??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 39 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ConstructL@CCopyObject@@IAEXXZ @ 40 NONAME ; void CCopyObject::ConstructL(void)
+	?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 41 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?ServiceL@CGetObjectPropValue@@MAEXXZ @ 42 NONAME ; void CGetObjectPropValue::ServiceL(void)
+	??1CRenameObject@@UAE@XZ @ 43 NONAME ; CRenameObject::~CRenameObject(void)
+	?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 44 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const
+	?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 45 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void)
+	?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 46 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &)
+	?RunL@CRenameObject@@MAEXXZ @ 47 NONAME ; void CRenameObject::RunL(void)
+	?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 48 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
+	??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 49 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *)
+	?ServiceL@CSendObject@@MAEXXZ @ 50 NONAME ; void CSendObject::ServiceL(void)
+	?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 51 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const
+	?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 52 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
+	?DoCancel@CRequestProcessor@@MAEXXZ @ 53 NONAME ; void CRequestProcessor::DoCancel(void)
+	?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 54 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
+	?ConstructL@CGetObjectInfo@@AAEXXZ @ 55 NONAME ; void CGetObjectInfo::ConstructL(void)
+	?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 56 NONAME ; void CRequestProcessor::UsbDisconnect(void)
+	??1CMoveObject@@UAE@XZ @ 57 NONAME ; CMoveObject::~CMoveObject(void)
+	?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 58 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
+	??1CRequestProcessor@@MAE@XZ @ 59 NONAME ; CRequestProcessor::~CRequestProcessor(void)
+	?DoCancel@CDeleteObject@@MAEXXZ @ 60 NONAME ; void CDeleteObject::DoCancel(void)
+	??1CGetObject@@UAE@XZ @ 61 NONAME ; CGetObject::~CGetObject(void)
+	?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 62 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 63 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &)
+	?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 64 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void)
+	?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 65 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void)
+	??1CGetObjectPropsSupported@@UAE@XZ @ 66 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void)
+	?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 67 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void)
+	?HasDataphase@CRequestProcessor@@MBEHXZ @ 68 NONAME ; int CRequestProcessor::HasDataphase(void) const
+	?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 69 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 70 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const
+	??1CPropertySettingUtility@@UAE@XZ @ 71 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
+	??1CGetPartialObject@@UAE@XZ @ 72 NONAME ; CGetPartialObject::~CGetPartialObject(void)
+	?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 73 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?RunError@CSetObjectPropList@@MAEHH@Z @ 74 NONAME ; int CSetObjectPropList::RunError(int)
+	?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 75 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
+	?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 76 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	?ServiceL@CMoveObject@@MAEXXZ @ 77 NONAME ; void CMoveObject::ServiceL(void)
+	?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 78 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
+	?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
+	?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 80 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
+	?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 81 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 82 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
+	?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 83 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
+	?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 84 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
+	??0CPropertySettingUtility@@IAE@XZ @ 85 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
+	?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 86 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 87 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 88 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
+	?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 89 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
+	?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 90 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
+	?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 91 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
+	?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 92 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
+	??1CGetObjectInfo@@UAE@XZ @ 93 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
+	?ServiceL@CRequestUnknown@@MAEXXZ @ 94 NONAME ; void CRequestUnknown::ServiceL(void)
+	?HasDataphase@CSetObjectPropList@@MBEHXZ @ 95 NONAME ; int CSetObjectPropList::HasDataphase(void) const
+	?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 96 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?DoCancel@CRenameObject@@MAEXXZ @ 97 NONAME ; void CRenameObject::DoCancel(void)
+	??1CSetObjectReferences@@UAE@XZ @ 98 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
+	?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 99 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CCopyObject@@UAE@XZ @ 101 NONAME ; CCopyObject::~CCopyObject(void)
+	?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 102 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
+	?RunL@CGetObjectPropList@@MAEXXZ @ 103 NONAME ; void CGetObjectPropList::RunL(void)
+	?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 104 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
+	?RunError@CRequestProcessor@@MAEHH@Z @ 105 NONAME ; int CRequestProcessor::RunError(int)
+	?SessionId@CRequestProcessor@@MAEKXZ @ 106 NONAME ; unsigned long CRequestProcessor::SessionId(void)
+	??0CDescriptionUtility@@IAE@XZ @ 107 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
+	?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 108 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
+	?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 109 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?HasDataphase@CSetObjectReferences@@EBEHXZ @ 110 NONAME ; int CSetObjectReferences::HasDataphase(void) const
+	?RunError@CGetObjectPropList@@MAEHH@Z @ 111 NONAME ; int CGetObjectPropList::RunError(int)
+	?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 112 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
+	?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 113 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+	?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 114 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
+	?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 115 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAVCDesC16Array@@W4TMPXGeneralCategory@@@Z @ 116 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CDesC16Array &, enum TMPXGeneralCategory)
+	?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 117 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
+	??1CGetObjectPropDesc@@UAE@XZ @ 118 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
+	?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 119 NONAME ; void CGetObjectPropDesc::ServiceL(void)
+	?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 120 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
+	?ServiceL@CCopyObject@@MAEXXZ @ 121 NONAME ; void CCopyObject::ServiceL(void)
+	?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 122 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
+	?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 123 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
+	?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 125 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
+	??1CDescriptionUtility@@UAE@XZ @ 126 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
+	?ConstructL@CMoveObject@@IAEXXZ @ 127 NONAME ; void CMoveObject::ConstructL(void)
+	?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 128 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?RunL@CSetObjectPropList@@MAEXXZ @ 129 NONAME ; void CSetObjectPropList::RunL(void)
+	??1CGetObjectReferences@@UAE@XZ @ 130 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
+	?HasDataphase@CSendObject@@MBEHXZ @ 131 NONAME ; int CSendObject::HasDataphase(void) const
+	??1CSetObjectPropValue@@UAE@XZ @ 132 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
+	?ConstructL@CRenameObject@@IAEXXZ @ 133 NONAME ; void CRenameObject::ConstructL(void)
+	?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 134 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
+	?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 135 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
+	?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 136 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
+	?DoCancel@CGetObjectPropList@@MAEXXZ @ 137 NONAME ; void CGetObjectPropList::DoCancel(void)
+	?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 138 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
+	?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 139 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
+	?ServiceL@CSetObjectPropValue@@MAEXXZ @ 140 NONAME ; void CSetObjectPropValue::ServiceL(void)
+	?RunError@CRenameObject@@MAEHH@Z @ 141 NONAME ; int CRenameObject::RunError(int)
+	??1CDeleteObject@@UAE@XZ @ 142 NONAME ; CDeleteObject::~CDeleteObject(void)
+	?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 143 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
+	??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 144 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CGetObjectPropList@@UAE@XZ @ 145 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
+	?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 146 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
+	??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 147 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+	?ServiceL@CGetObjectPropList@@MAEXXZ @ 148 NONAME ; void CGetObjectPropList::ServiceL(void)
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Wed Jun 09 10:13:45 2010 +0300
@@ -52,231 +52,214 @@
 	_ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 51 NONAME
 	_ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 52 NONAME
 	_ZN15CRequestUnknown8ServiceLEv @ 53 NONAME
-	_ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME
-	_ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 55 NONAME
-	_ZN15CRequestUnknownD0Ev @ 56 NONAME
-	_ZN15CRequestUnknownD1Ev @ 57 NONAME
-	_ZN15CRequestUnknownD2Ev @ 58 NONAME
-	_ZN17CGetPartialObject13CheckRequestLEv @ 59 NONAME
-	_ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 60 NONAME
-	_ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 61 NONAME
-	_ZN17CGetPartialObject8ServiceLEv @ 62 NONAME
-	_ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME
-	_ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 64 NONAME
-	_ZN17CGetPartialObjectD0Ev @ 65 NONAME
-	_ZN17CGetPartialObjectD1Ev @ 66 NONAME
-	_ZN17CGetPartialObjectD2Ev @ 67 NONAME
-	_ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 68 NONAME
-	_ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 69 NONAME
-	_ZN17CRequestProcessor13CheckRequestLEv @ 70 NONAME
-	_ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 71 NONAME
-	_ZN17CRequestProcessor13UsbDisconnectEv @ 72 NONAME
-	_ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 73 NONAME
-	_ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 74 NONAME
-	_ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 75 NONAME
-	_ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 76 NONAME
-	_ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 77 NONAME
-	_ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 78 NONAME
-	_ZN17CRequestProcessor4RunLEv @ 79 NONAME
-	_ZN17CRequestProcessor7ReleaseEv @ 80 NONAME
-	_ZN17CRequestProcessor8DoCancelEv @ 81 NONAME
-	_ZN17CRequestProcessor8RunErrorEi @ 82 NONAME
-	_ZN17CRequestProcessor9SendDataLERK8MMTPType @ 83 NONAME
-	_ZN17CRequestProcessor9SessionIdEv @ 84 NONAME
-	_ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 85 NONAME
-	_ZN17CRequestProcessorD0Ev @ 86 NONAME
-	_ZN17CRequestProcessorD1Ev @ 87 NONAME
-	_ZN17CRequestProcessorD2Ev @ 88 NONAME
-	_ZN18CGetObjectPropDesc10ConstructLEv @ 89 NONAME
-	_ZN18CGetObjectPropDesc13CheckRequestLEv @ 90 NONAME
-	_ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 91 NONAME
-	_ZN18CGetObjectPropDesc8ServiceLEv @ 92 NONAME
-	_ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME
-	_ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 94 NONAME
-	_ZN18CGetObjectPropDescD0Ev @ 95 NONAME
-	_ZN18CGetObjectPropDescD1Ev @ 96 NONAME
-	_ZN18CGetObjectPropDescD2Ev @ 97 NONAME
-	_ZN18CGetObjectPropList10ConstructLEv @ 98 NONAME
-	_ZN18CGetObjectPropList13CheckRequestLEv @ 99 NONAME
-	_ZN18CGetObjectPropList4RunLEv @ 100 NONAME
-	_ZN18CGetObjectPropList8DoCancelEv @ 101 NONAME
-	_ZN18CGetObjectPropList8RunErrorEi @ 102 NONAME
-	_ZN18CGetObjectPropList8ServiceLEv @ 103 NONAME
-	_ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 104 NONAME
-	_ZN18CGetObjectPropListD0Ev @ 105 NONAME
-	_ZN18CGetObjectPropListD1Ev @ 106 NONAME
-	_ZN18CGetObjectPropListD2Ev @ 107 NONAME
-	_ZN18CSetObjectPropList13CheckRequestLEv @ 108 NONAME
-	_ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 109 NONAME
-	_ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 110 NONAME
-	_ZN18CSetObjectPropList4RunLEv @ 111 NONAME
-	_ZN18CSetObjectPropList8DoCancelEv @ 112 NONAME
-	_ZN18CSetObjectPropList8RunErrorEi @ 113 NONAME
-	_ZN18CSetObjectPropList8ServiceLEv @ 114 NONAME
-	_ZN18CSetObjectPropListD0Ev @ 115 NONAME
-	_ZN18CSetObjectPropListD1Ev @ 116 NONAME
-	_ZN18CSetObjectPropListD2Ev @ 117 NONAME
-	_ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 118 NONAME
-	_ZN19CDescriptionUtilityC2Ev @ 119 NONAME
-	_ZN19CDescriptionUtilityD0Ev @ 120 NONAME
-	_ZN19CDescriptionUtilityD1Ev @ 121 NONAME
-	_ZN19CDescriptionUtilityD2Ev @ 122 NONAME
-	_ZN19CGetObjectPropValue13CheckRequestLEv @ 123 NONAME
-	_ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 124 NONAME
-	_ZN19CGetObjectPropValue8ServiceLEv @ 125 NONAME
-	_ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 126 NONAME
-	_ZN19CGetObjectPropValueD0Ev @ 127 NONAME
-	_ZN19CGetObjectPropValueD1Ev @ 128 NONAME
-	_ZN19CGetObjectPropValueD2Ev @ 129 NONAME
-	_ZN19CSetObjectPropValue13CheckRequestLEv @ 130 NONAME
-	_ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 131 NONAME
-	_ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 132 NONAME
-	_ZN19CSetObjectPropValue8ServiceLEv @ 133 NONAME
-	_ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 134 NONAME
-	_ZN19CSetObjectPropValueD0Ev @ 135 NONAME
-	_ZN19CSetObjectPropValueD1Ev @ 136 NONAME
-	_ZN19CSetObjectPropValueD2Ev @ 137 NONAME
-	_ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 138 NONAME
-	_ZN20CGetObjectReferencesD0Ev @ 139 NONAME
-	_ZN20CGetObjectReferencesD1Ev @ 140 NONAME
-	_ZN20CGetObjectReferencesD2Ev @ 141 NONAME
-	_ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 142 NONAME
-	_ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 143 NONAME
-	_ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 144 NONAME
-	_ZN20CSetObjectReferences8ServiceLEv @ 145 NONAME
-	_ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME
-	_ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 147 NONAME
-	_ZN20CSetObjectReferencesD0Ev @ 148 NONAME
-	_ZN20CSetObjectReferencesD1Ev @ 149 NONAME
-	_ZN20CSetObjectReferencesD2Ev @ 150 NONAME
-	_ZN22CGetFormatCapabilities10ConstructLEv @ 151 NONAME
-	_ZN22CGetFormatCapabilities13CheckRequestLEv @ 152 NONAME
-	_ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 153 NONAME
-	_ZN22CGetFormatCapabilities8ServiceLEv @ 154 NONAME
-	_ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME
-	_ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 156 NONAME
-	_ZN22CGetFormatCapabilitiesD0Ev @ 157 NONAME
-	_ZN22CGetFormatCapabilitiesD1Ev @ 158 NONAME
-	_ZN22CGetFormatCapabilitiesD2Ev @ 159 NONAME
-	_ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 160 NONAME
-	_ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 161 NONAME
-	_ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 162 NONAME
-	_ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 163 NONAME
-	_ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 164 NONAME
-	_ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 165 NONAME
-	_ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 166 NONAME
-	_ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 167 NONAME
-	_ZN23CPropertySettingUtilityC2Ev @ 168 NONAME
-	_ZN23CPropertySettingUtilityD0Ev @ 169 NONAME
-	_ZN23CPropertySettingUtilityD1Ev @ 170 NONAME
-	_ZN23CPropertySettingUtilityD2Ev @ 171 NONAME
-	_ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 172 NONAME
-	_ZN24CGetObjectPropsSupported8ServiceLEv @ 173 NONAME
-	_ZN24CGetObjectPropsSupportedD0Ev @ 174 NONAME
-	_ZN24CGetObjectPropsSupportedD1Ev @ 175 NONAME
-	_ZN24CGetObjectPropsSupportedD2Ev @ 176 NONAME
-	_ZN26CGetInterdependentPropDesc10ConstructLEv @ 177 NONAME
-	_ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 178 NONAME
-	_ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME
-	_ZN26CGetInterdependentPropDesc8ServiceLEv @ 180 NONAME
-	_ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 181 NONAME
-	_ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 182 NONAME
-	_ZN26CGetInterdependentPropDescD0Ev @ 183 NONAME
-	_ZN26CGetInterdependentPropDescD1Ev @ 184 NONAME
-	_ZN26CGetInterdependentPropDescD2Ev @ 185 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 186 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 187 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 188 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 189 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 190 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 191 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 192 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 193 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 194 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 195 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 196 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 197 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 198 NONAME
-	_ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 199 NONAME
-	_ZNK11CSendObject12HasDataphaseEv @ 200 NONAME
-	_ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 201 NONAME
-	_ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 202 NONAME
-	_ZNK17CRequestProcessor10ConnectionEv @ 203 NONAME
-	_ZNK17CRequestProcessor12HasDataphaseEv @ 204 NONAME
-	_ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 205 NONAME
-	_ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 206 NONAME
-	_ZNK17CRequestProcessor7RequestEv @ 207 NONAME
-	_ZNK18CSetObjectPropList12HasDataphaseEv @ 208 NONAME
-	_ZNK19CSetObjectPropValue12HasDataphaseEv @ 209 NONAME
-	_ZNK20CSetObjectReferences12HasDataphaseEv @ 210 NONAME
-	_ZTI10CGetObject @ 211 NONAME
-	_ZTI11CCopyObject @ 212 NONAME
-	_ZTI11CMoveObject @ 213 NONAME
-	_ZTI11CSendObject @ 214 NONAME
-	_ZTI13CDeleteObject @ 215 NONAME
-	_ZTI13CRenameObject @ 216 NONAME
-	_ZTI14CGetObjectInfo @ 217 NONAME
-	_ZTI15CRequestChecker @ 218 NONAME
-	_ZTI15CRequestUnknown @ 219 NONAME
-	_ZTI15TMTPTypeFlatBuf @ 220 NONAME
-	_ZTI17CGetPartialObject @ 221 NONAME
-	_ZTI17CRequestProcessor @ 222 NONAME
-	_ZTI18CGetObjectPropDesc @ 223 NONAME
-	_ZTI18CGetObjectPropList @ 224 NONAME
-	_ZTI18CHXMetaDataUtility @ 225 NONAME
-	_ZTI18CSetObjectPropList @ 226 NONAME
-	_ZTI19CDescriptionUtility @ 227 NONAME
-	_ZTI19CGetObjectPropValue @ 228 NONAME
-	_ZTI19CSetObjectPropValue @ 229 NONAME
-	_ZTI20CGetObjectReferences @ 230 NONAME
-	_ZTI20CSetObjectReferences @ 231 NONAME
-	_ZTI22CGetFormatCapabilities @ 232 NONAME
-	_ZTI23CMmMtpDpAccessSingleton @ 233 NONAME
-	_ZTI23CPropertySettingUtility @ 234 NONAME
-	_ZTI24CGetObjectPropsSupported @ 235 NONAME
-	_ZTI25CMmMtpDpMetadataMpxAccess @ 236 NONAME
-	_ZTI26CGetInterdependentPropDesc @ 237 NONAME
-	_ZTI27CMmMtpDpMetadataVideoAccess @ 238 NONAME
-	_ZTI29CMmMtpDpMetadataAccessWrapper @ 239 NONAME
-	_ZTV10CGetObject @ 240 NONAME
-	_ZTV11CCopyObject @ 241 NONAME
-	_ZTV11CMoveObject @ 242 NONAME
-	_ZTV11CSendObject @ 243 NONAME
-	_ZTV13CDeleteObject @ 244 NONAME
-	_ZTV13CRenameObject @ 245 NONAME
-	_ZTV14CGetObjectInfo @ 246 NONAME
-	_ZTV15CRequestChecker @ 247 NONAME
-	_ZTV15CRequestUnknown @ 248 NONAME
-	_ZTV15TMTPTypeFlatBuf @ 249 NONAME
-	_ZTV17CGetPartialObject @ 250 NONAME
-	_ZTV17CRequestProcessor @ 251 NONAME
-	_ZTV18CGetObjectPropDesc @ 252 NONAME
-	_ZTV18CGetObjectPropList @ 253 NONAME
-	_ZTV18CHXMetaDataUtility @ 254 NONAME
-	_ZTV18CSetObjectPropList @ 255 NONAME
-	_ZTV19CDescriptionUtility @ 256 NONAME
-	_ZTV19CGetObjectPropValue @ 257 NONAME
-	_ZTV19CSetObjectPropValue @ 258 NONAME
-	_ZTV20CGetObjectReferences @ 259 NONAME
-	_ZTV20CSetObjectReferences @ 260 NONAME
-	_ZTV22CGetFormatCapabilities @ 261 NONAME
-	_ZTV23CMmMtpDpAccessSingleton @ 262 NONAME
-	_ZTV23CPropertySettingUtility @ 263 NONAME
-	_ZTV24CGetObjectPropsSupported @ 264 NONAME
-	_ZTV25CMmMtpDpMetadataMpxAccess @ 265 NONAME
-	_ZTV26CGetInterdependentPropDesc @ 266 NONAME
-	_ZTV27CMmMtpDpMetadataVideoAccess @ 267 NONAME
-	_ZTV29CMmMtpDpMetadataAccessWrapper @ 268 NONAME
-	_ZThn28_N11CSendObject13UsbDisconnectEv @ 269 NONAME
-	_ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 270 NONAME
-	_ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 271 NONAME
-	_ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 272 NONAME
-	_ZThn28_N17CRequestProcessor7ReleaseEv @ 273 NONAME
-	_ZThn28_N17CRequestProcessor9SessionIdEv @ 274 NONAME
-	_ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 275 NONAME
-	_ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME
-	_ZThn28_NK17CRequestProcessor10ConnectionEv @ 277 NONAME
-	_ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 278 NONAME
-	_ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 279 NONAME
-	_ZThn28_NK17CRequestProcessor7RequestEv @ 280 NONAME
+	_ZN15CRequestUnknownD0Ev @ 54 NONAME
+	_ZN15CRequestUnknownD1Ev @ 55 NONAME
+	_ZN15CRequestUnknownD2Ev @ 56 NONAME
+	_ZN17CGetPartialObject13CheckRequestLEv @ 57 NONAME
+	_ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 58 NONAME
+	_ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 59 NONAME
+	_ZN17CGetPartialObject8ServiceLEv @ 60 NONAME
+	_ZN17CGetPartialObjectD0Ev @ 61 NONAME
+	_ZN17CGetPartialObjectD1Ev @ 62 NONAME
+	_ZN17CGetPartialObjectD2Ev @ 63 NONAME
+	_ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 64 NONAME
+	_ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 65 NONAME
+	_ZN17CRequestProcessor13CheckRequestLEv @ 66 NONAME
+	_ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 67 NONAME
+	_ZN17CRequestProcessor13UsbDisconnectEv @ 68 NONAME
+	_ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 69 NONAME
+	_ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 70 NONAME
+	_ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 71 NONAME
+	_ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 72 NONAME
+	_ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 73 NONAME
+	_ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 74 NONAME
+	_ZN17CRequestProcessor4RunLEv @ 75 NONAME
+	_ZN17CRequestProcessor7ReleaseEv @ 76 NONAME
+	_ZN17CRequestProcessor8DoCancelEv @ 77 NONAME
+	_ZN17CRequestProcessor8RunErrorEi @ 78 NONAME
+	_ZN17CRequestProcessor9SendDataLERK8MMTPType @ 79 NONAME
+	_ZN17CRequestProcessor9SessionIdEv @ 80 NONAME
+	_ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 81 NONAME
+	_ZN17CRequestProcessorD0Ev @ 82 NONAME
+	_ZN17CRequestProcessorD1Ev @ 83 NONAME
+	_ZN17CRequestProcessorD2Ev @ 84 NONAME
+	_ZN18CGetObjectPropDesc13CheckRequestLEv @ 85 NONAME
+	_ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 86 NONAME
+	_ZN18CGetObjectPropDesc8ServiceLEv @ 87 NONAME
+	_ZN18CGetObjectPropDescD0Ev @ 88 NONAME
+	_ZN18CGetObjectPropDescD1Ev @ 89 NONAME
+	_ZN18CGetObjectPropDescD2Ev @ 90 NONAME
+	_ZN18CGetObjectPropList10ConstructLEv @ 91 NONAME
+	_ZN18CGetObjectPropList13CheckRequestLEv @ 92 NONAME
+	_ZN18CGetObjectPropList4RunLEv @ 93 NONAME
+	_ZN18CGetObjectPropList8DoCancelEv @ 94 NONAME
+	_ZN18CGetObjectPropList8RunErrorEi @ 95 NONAME
+	_ZN18CGetObjectPropList8ServiceLEv @ 96 NONAME
+	_ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 97 NONAME
+	_ZN18CGetObjectPropListD0Ev @ 98 NONAME
+	_ZN18CGetObjectPropListD1Ev @ 99 NONAME
+	_ZN18CGetObjectPropListD2Ev @ 100 NONAME
+	_ZN18CSetObjectPropList13CheckRequestLEv @ 101 NONAME
+	_ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 102 NONAME
+	_ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 103 NONAME
+	_ZN18CSetObjectPropList4RunLEv @ 104 NONAME
+	_ZN18CSetObjectPropList8DoCancelEv @ 105 NONAME
+	_ZN18CSetObjectPropList8RunErrorEi @ 106 NONAME
+	_ZN18CSetObjectPropList8ServiceLEv @ 107 NONAME
+	_ZN18CSetObjectPropListD0Ev @ 108 NONAME
+	_ZN18CSetObjectPropListD1Ev @ 109 NONAME
+	_ZN18CSetObjectPropListD2Ev @ 110 NONAME
+	_ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 111 NONAME
+	_ZN19CDescriptionUtilityC2Ev @ 112 NONAME
+	_ZN19CDescriptionUtilityD0Ev @ 113 NONAME
+	_ZN19CDescriptionUtilityD1Ev @ 114 NONAME
+	_ZN19CDescriptionUtilityD2Ev @ 115 NONAME
+	_ZN19CGetObjectPropValue13CheckRequestLEv @ 116 NONAME
+	_ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 117 NONAME
+	_ZN19CGetObjectPropValue8ServiceLEv @ 118 NONAME
+	_ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 119 NONAME
+	_ZN19CGetObjectPropValueD0Ev @ 120 NONAME
+	_ZN19CGetObjectPropValueD1Ev @ 121 NONAME
+	_ZN19CGetObjectPropValueD2Ev @ 122 NONAME
+	_ZN19CSetObjectPropValue13CheckRequestLEv @ 123 NONAME
+	_ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 124 NONAME
+	_ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 125 NONAME
+	_ZN19CSetObjectPropValue8ServiceLEv @ 126 NONAME
+	_ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 127 NONAME
+	_ZN19CSetObjectPropValueD0Ev @ 128 NONAME
+	_ZN19CSetObjectPropValueD1Ev @ 129 NONAME
+	_ZN19CSetObjectPropValueD2Ev @ 130 NONAME
+	_ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 131 NONAME
+	_ZN20CGetObjectReferencesD0Ev @ 132 NONAME
+	_ZN20CGetObjectReferencesD1Ev @ 133 NONAME
+	_ZN20CGetObjectReferencesD2Ev @ 134 NONAME
+	_ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 135 NONAME
+	_ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 136 NONAME
+	_ZN20CSetObjectReferences8ServiceLEv @ 137 NONAME
+	_ZN20CSetObjectReferencesD0Ev @ 138 NONAME
+	_ZN20CSetObjectReferencesD1Ev @ 139 NONAME
+	_ZN20CSetObjectReferencesD2Ev @ 140 NONAME
+	_ZN22CGetFormatCapabilities13CheckRequestLEv @ 141 NONAME
+	_ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 142 NONAME
+	_ZN22CGetFormatCapabilities8ServiceLEv @ 143 NONAME
+	_ZN22CGetFormatCapabilitiesD0Ev @ 144 NONAME
+	_ZN22CGetFormatCapabilitiesD1Ev @ 145 NONAME
+	_ZN22CGetFormatCapabilitiesD2Ev @ 146 NONAME
+	_ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 147 NONAME
+	_ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 148 NONAME
+	_ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 149 NONAME
+	_ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 150 NONAME
+	_ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 151 NONAME
+	_ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 152 NONAME
+	_ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 153 NONAME
+	_ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 154 NONAME
+	_ZN23CPropertySettingUtilityC2Ev @ 155 NONAME
+	_ZN23CPropertySettingUtilityD0Ev @ 156 NONAME
+	_ZN23CPropertySettingUtilityD1Ev @ 157 NONAME
+	_ZN23CPropertySettingUtilityD2Ev @ 158 NONAME
+	_ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 159 NONAME
+	_ZN24CGetObjectPropsSupported8ServiceLEv @ 160 NONAME
+	_ZN24CGetObjectPropsSupportedD0Ev @ 161 NONAME
+	_ZN24CGetObjectPropsSupportedD1Ev @ 162 NONAME
+	_ZN24CGetObjectPropsSupportedD2Ev @ 163 NONAME
+	_ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 164 NONAME
+	_ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 165 NONAME
+	_ZN26CGetInterdependentPropDesc8ServiceLEv @ 166 NONAME
+	_ZN26CGetInterdependentPropDescD0Ev @ 167 NONAME
+	_ZN26CGetInterdependentPropDescD1Ev @ 168 NONAME
+	_ZN26CGetInterdependentPropDescD2Ev @ 169 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 170 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 171 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 172 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 173 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 174 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 175 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 176 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 177 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 178 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 179 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16R12CDesC16Array19TMPXGeneralCategory @ 180 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 181 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 182 NONAME
+	_ZNK11CSendObject12HasDataphaseEv @ 183 NONAME
+	_ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 184 NONAME
+	_ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 185 NONAME
+	_ZNK17CRequestProcessor10ConnectionEv @ 186 NONAME
+	_ZNK17CRequestProcessor12HasDataphaseEv @ 187 NONAME
+	_ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 188 NONAME
+	_ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 189 NONAME
+	_ZNK17CRequestProcessor7RequestEv @ 190 NONAME
+	_ZNK18CSetObjectPropList12HasDataphaseEv @ 191 NONAME
+	_ZNK19CSetObjectPropValue12HasDataphaseEv @ 192 NONAME
+	_ZNK20CSetObjectReferences12HasDataphaseEv @ 193 NONAME
+	_ZTI10CGetObject @ 194 NONAME
+	_ZTI11CCopyObject @ 195 NONAME
+	_ZTI11CMoveObject @ 196 NONAME
+	_ZTI11CSendObject @ 197 NONAME
+	_ZTI13CDeleteObject @ 198 NONAME
+	_ZTI13CRenameObject @ 199 NONAME
+	_ZTI14CGetObjectInfo @ 200 NONAME
+	_ZTI15CRequestChecker @ 201 NONAME
+	_ZTI15CRequestUnknown @ 202 NONAME
+	_ZTI15TMTPTypeFlatBuf @ 203 NONAME
+	_ZTI17CGetPartialObject @ 204 NONAME
+	_ZTI17CRequestProcessor @ 205 NONAME
+	_ZTI18CGetObjectPropDesc @ 206 NONAME
+	_ZTI18CGetObjectPropList @ 207 NONAME
+	_ZTI18CHXMetaDataUtility @ 208 NONAME
+	_ZTI18CSetObjectPropList @ 209 NONAME
+	_ZTI19CDescriptionUtility @ 210 NONAME
+	_ZTI19CGetObjectPropValue @ 211 NONAME
+	_ZTI19CSetObjectPropValue @ 212 NONAME
+	_ZTI20CGetObjectReferences @ 213 NONAME
+	_ZTI20CSetObjectReferences @ 214 NONAME
+	_ZTI22CGetFormatCapabilities @ 215 NONAME
+	_ZTI23CMmMtpDpAccessSingleton @ 216 NONAME
+	_ZTI23CPropertySettingUtility @ 217 NONAME
+	_ZTI24CGetObjectPropsSupported @ 218 NONAME
+	_ZTI25CMmMtpDpMetadataMpxAccess @ 219 NONAME
+	_ZTI26CGetInterdependentPropDesc @ 220 NONAME
+	_ZTI27CMmMtpDpMetadataVideoAccess @ 221 NONAME
+	_ZTI29CMmMtpDpMetadataAccessWrapper @ 222 NONAME
+	_ZTV10CGetObject @ 223 NONAME
+	_ZTV11CCopyObject @ 224 NONAME
+	_ZTV11CMoveObject @ 225 NONAME
+	_ZTV11CSendObject @ 226 NONAME
+	_ZTV13CDeleteObject @ 227 NONAME
+	_ZTV13CRenameObject @ 228 NONAME
+	_ZTV14CGetObjectInfo @ 229 NONAME
+	_ZTV15CRequestChecker @ 230 NONAME
+	_ZTV15CRequestUnknown @ 231 NONAME
+	_ZTV15TMTPTypeFlatBuf @ 232 NONAME
+	_ZTV17CGetPartialObject @ 233 NONAME
+	_ZTV17CRequestProcessor @ 234 NONAME
+	_ZTV18CGetObjectPropDesc @ 235 NONAME
+	_ZTV18CGetObjectPropList @ 236 NONAME
+	_ZTV18CHXMetaDataUtility @ 237 NONAME
+	_ZTV18CSetObjectPropList @ 238 NONAME
+	_ZTV19CDescriptionUtility @ 239 NONAME
+	_ZTV19CGetObjectPropValue @ 240 NONAME
+	_ZTV19CSetObjectPropValue @ 241 NONAME
+	_ZTV20CGetObjectReferences @ 242 NONAME
+	_ZTV20CSetObjectReferences @ 243 NONAME
+	_ZTV22CGetFormatCapabilities @ 244 NONAME
+	_ZTV23CMmMtpDpAccessSingleton @ 245 NONAME
+	_ZTV23CPropertySettingUtility @ 246 NONAME
+	_ZTV24CGetObjectPropsSupported @ 247 NONAME
+	_ZTV25CMmMtpDpMetadataMpxAccess @ 248 NONAME
+	_ZTV26CGetInterdependentPropDesc @ 249 NONAME
+	_ZTV27CMmMtpDpMetadataVideoAccess @ 250 NONAME
+	_ZTV29CMmMtpDpMetadataAccessWrapper @ 251 NONAME
+	_ZThn28_N11CSendObject13UsbDisconnectEv @ 252 NONAME
+	_ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 253 NONAME
+	_ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 254 NONAME
+	_ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 255 NONAME
+	_ZThn28_N17CRequestProcessor7ReleaseEv @ 256 NONAME
+	_ZThn28_N17CRequestProcessor9SessionIdEv @ 257 NONAME
+	_ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 258 NONAME
+	_ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 259 NONAME
+	_ZThn28_NK17CRequestProcessor10ConnectionEv @ 260 NONAME
+	_ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 261 NONAME
+	_ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 262 NONAME
+	_ZThn28_NK17CRequestProcessor7RequestEv @ 263 NONAME
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h	Wed Jun 09 10:13:45 2010 +0300
@@ -55,7 +55,7 @@
     * @param aConnection    The connection from which the request comes
     * @param aWrapper    medadata access interface
     */
-    IMPORT_C CDeleteObject( MMTPDataProviderFramework& aFramework,
+    CDeleteObject( MMTPDataProviderFramework& aFramework,
         MMTPConnection& aConnection,
         MMmMtpDpConfig& aDpConfig );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h	Wed Jun 09 10:13:45 2010 +0300
@@ -61,7 +61,7 @@
     * @param aConnection    The connection from which the request comes
     * @param aWrapper    medadata access interface
     */
-    IMPORT_C CGetObjectInfo( MMTPDataProviderFramework& aFramework,
+    CGetObjectInfo( MMTPDataProviderFramework& aFramework,
         MMTPConnection& aConnection,
         MMmMtpDpConfig& aDpConfig );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h	Wed Jun 09 10:13:45 2010 +0300
@@ -20,6 +20,7 @@
 #define CGETOBJECTREFERENCES_H
 
 #include "crequestprocessor.h"
+#include "cmmmtpdpperflog.h"
 
 // forward declaration
 class CMTPTypeArray;
@@ -62,16 +63,31 @@
     * @param aWrapper      Medadata access interface
     */
     CGetObjectReferences( MMTPDataProviderFramework& aFramework,
-        MMTPConnection& aConnection );
+        MMTPConnection& aConnection,
+        MMmMtpDpConfig& aDpConfig );
 
     /**
     * Two-phase construction
     */
     void ConstructL();
 
+    /**
+    * Add references of specified object into reference db,
+    * for the insertion delayed until the first time it was queried by pc
+    * @param aRefOwnerSuid, specify the reference owner of which references should be added into db
+    * @param aReferences, suid array which stored references
+    */
+    void AddReferencesL( const TDesC& aRefOwnerSuid,
+        CDesCArray& aReferences );
+
 private:
     // Array object to store object references
     CMTPTypeArray* iReferences;
+    MMmMtpDpConfig& iDpConfig;
+
+#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
+    CMmMtpDpPerfLog* iPerfLog;
+#endif
 
     };
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h	Wed Jun 09 10:13:45 2010 +0300
@@ -53,7 +53,7 @@
     * @param aFramework   The data provider framework
     * @param aConnection  The connection from which the request comes
     */
-    IMPORT_C CGetPartialObject( MMTPDataProviderFramework& aFramework,
+    CGetPartialObject( MMTPDataProviderFramework& aFramework,
         MMTPConnection& aConnection );
 
 protected:
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h	Wed Jun 09 10:13:45 2010 +0300
@@ -45,7 +45,7 @@
     /**
     * Standard c++ constructor
     */
-    IMPORT_C CRequestUnknown( MMTPDataProviderFramework& aFramework,
+    CRequestUnknown( MMTPDataProviderFramework& aFramework,
         MMTPConnection& aConnection );
 
 protected:
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h	Wed Jun 09 10:13:45 2010 +0300
@@ -57,7 +57,7 @@
     * @param aConnection    The connection from which the request comes
     * @param aWrapper    medadata access interface
     */
-    IMPORT_C CSetObjectReferences( MMTPDataProviderFramework& aFramework,
+    CSetObjectReferences( MMTPDataProviderFramework& aFramework,
         MMTPConnection& aConnection,
         MMmMtpDpConfig& aDpConfig );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -450,7 +450,6 @@
             case EMTPObjectPropCodeNonConsumable:
                 iTargetObject->SetUint( CMTPObjectMetaData::ENonConsumable,
                     element.Uint8L( CMTPTypeObjectPropListElement::EValue ) );
-                // TODO: need to reconsider,
                 // should wait all property setting finished then insert object, or not?
                 // need to investigate if it will affect performance result
                 iFramework.ObjectMgr().ModifyObjectL( *iTargetObject );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -103,7 +103,7 @@
 //
 EXPORT_C void CDeleteObject::ServiceL()
     {
-    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+    MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive );
     
     iObjectsToDelete.Reset();
     iDeleteError = KErrNone;
@@ -126,7 +126,6 @@
         {
         iIsMultiDelete = EFalse;
         // Not Owned the object
-        // TODO: need to check if this is best way and if it is applicable to other processors
         CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle );
 
         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
@@ -192,8 +191,9 @@
 
         TUint32 handle = iObjectsToDelete[0];
         iFramework.ObjectMgr().ObjectL( handle, *objectInfo );
-        TFileName fileName( objectInfo->DesC( CMTPObjectMetaData::ESuid ) );
-        PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), handle, &fileName );
+        PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ),
+            handle,
+            &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ) );
 
         if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation )
             {
@@ -222,7 +222,7 @@
 //
 void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo )
     {
-    TFileName fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) );
+    TPtrC fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) );
     PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName );
 
     // To capture special situation: After copy, move, rename playlist folder name,
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -134,7 +134,7 @@
 TUint32 CDescriptionUtility::GetGroupCode( TUint32 aPropCode )
     {
     TInt count = sizeof( KPropGroupMapTable ) / sizeof( KPropGroupMapTable[0] );
-    // TODO: if need to refine the search approach to improve performance
+
     for( TInt i = 0; i < count; i++ )
         {
         if ( aPropCode == KPropGroupMapTable[i].iPropCode )
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -46,7 +46,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework,
+CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
     MMmMtpDpConfig& aDpConfig ) :
         CRequestProcessor( aFramework, aConnection, 0, NULL ),
@@ -60,7 +60,7 @@
 // The second phase constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGetFormatCapabilities::ConstructL()
+void CGetFormatCapabilities::ConstructL()
     {
     // Do nothing
     }
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -56,7 +56,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework,
+CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
     MMmMtpDpConfig& aDpConfig ) :
         CRequestProcessor( aFramework, aConnection, 0, NULL ),
@@ -70,7 +70,7 @@
 // Two-phase construction method
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGetInterdependentPropDesc::ConstructL()
+void CGetInterdependentPropDesc::ConstructL()
     {
     // Do nothing
     }
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -57,7 +57,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework,
+CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
     MMmMtpDpConfig& aDpConfig ) :
         CRequestProcessor( aFramework, aConnection, 0, NULL ),
@@ -72,7 +72,7 @@
 // The second phase constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGetObjectPropDesc::ConstructL()
+void CGetObjectPropDesc::ConstructL()
     {
     // Do nothing
     }
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -486,7 +486,7 @@
     PRINT1( _L( "MM MTP => CGetObjectPropList::ServiceAllPropertiesL aHandle = 0x%x" ), aHandle );
 
     // Append the current object info onto our list
-    TFileName fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) );
+    TPtrC fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) );
     TUint32 formatCode = iObject->Uint( CMTPObjectMetaData::EFormatCode );
 
     PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceAllPropertiesL, fileName = %S, formatCode = 0x%x" ),
@@ -534,7 +534,7 @@
     {
     PRINT1( _L( "MM MTP => CGetObjectPropList::ServiceGroupPropertiesL aHandle = 0x%x" ), aHandle );
 
-    TFileName fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) );
+    TPtrC fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) );
     TUint32 formatCode = iObject->Uint( CMTPObjectMetaData::EFormatCode );
 
     PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceGroupPropertiesL, fileName = %S, formatCode = 0x%x" ),
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -95,10 +95,13 @@
             return EMTPRespCodeInvalidObjectHandle;
             }
 
-        TFileName fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
         TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode );
 
-        PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), objectHandle, &fileName, formatCode);
+        PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ),
+            objectHandle, 
+            &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ),
+            formatCode );
+
         const RArray<TUint>* properties = iDpConfig.GetSupportedPropertiesL( formatCode );
         TInt count = properties->Count();
 
@@ -130,7 +133,7 @@
     {
     PRINT( _L( "MM MTP => CGetObjectPropValue::ServiceL" ) );
     
-    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+    MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive );
 
     //Get the request information
     TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
@@ -142,7 +145,6 @@
     iObjectInfo = iRequestChecker->GetObjectInfo( objectHandle );
     TPtrC suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
     PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL object file name is %S" ), &suid );
-    TParsePtrC parse( suid );
 
     if ( iMTPTypeString != NULL )
         {
@@ -177,8 +179,7 @@
         case EMTPObjectPropCodeProtectionStatus:
             {
             iMTPTypeUint16.Set( 0 );
-            iMTPTypeUint16 = MmMtpDpUtility::GetProtectionStatusL( iFramework.Fs(),
-                iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+            iMTPTypeUint16 = MmMtpDpUtility::GetProtectionStatusL( iFramework.Fs(), suid );
             SendDataL( iMTPTypeUint16 );
             }
             break;
@@ -187,8 +188,7 @@
         case EMTPObjectPropCodeObjectSize:
             {
             iMTPTypeUint64.Set( 0 );
-            iMTPTypeUint64 = MmMtpDpUtility::GetObjectSizeL( iFramework.Fs(),
-                    iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+            iMTPTypeUint64 = MmMtpDpUtility::GetObjectSizeL( iFramework.Fs(), suid );
             SendDataL( iMTPTypeUint64 );
             }
             break;
@@ -196,11 +196,7 @@
         // Filename
         case EMTPObjectPropCodeObjectFileName:
             {
-            const TDesC& suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
-            PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL SUID = %S" ), &suid );
-
-            TPtrC path( suid.Ptr(), suid.Length() );
-            TParsePtrC parse( path );
+            TParsePtrC parse( suid );
             iMTPTypeString = CMTPTypeString::NewL( parse.NameAndExt() );
             SendDataL( *iMTPTypeString );
             }
@@ -238,9 +234,7 @@
         case EMTPObjectPropCodeDateModified:
             {
             TBuf<KMtpMaxDateTimeStringLength> timeStr;
-            MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(),
-                iObjectInfo->DesC( CMTPObjectMetaData::ESuid ),
-                timeStr );
+            MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), suid, timeStr );
 
             PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL Date time %S" ), &timeStr );
             iMTPTypeString = CMTPTypeString::NewL( timeStr );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -18,14 +18,26 @@
 
 #include <mtp/cmtptypearray.h>
 #include <mtp/mmtpreferencemgr.h>
+#include <mtp/mmtpobjectmgr.h>
 #ifdef _DEBUG
-#include <mtp/mmtpobjectmgr.h>
 #include <mtp/tmtptypeuint128.h>
 #endif
 
 #include "cgetobjectreferences.h"
 #include "mmmtpdputility.h"
 #include "mmmtpdplogger.h"
+#include "cmmmtpdpperflog.h"
+#include "mmmtpdpconfig.h"
+#include "cmmmtpdpmetadataaccesswrapper.h"
+#include "tmmmtpdppanic.h"
+
+const TInt KMTPDriveGranularity = 5;
+
+#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
+_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" );
+_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" );
+_LIT( KObjectManagerHandle, "ObjectManagerHandle" );
+#endif
 
 // -----------------------------------------------------------------------------
 // Verification data for the GetReferences request
@@ -50,10 +62,11 @@
 //
 EXPORT_C MMmRequestProcessor* CGetObjectReferences::NewL( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
-    MMmMtpDpConfig& /*aDpConfig*/ )
+    MMmMtpDpConfig& aDpConfig )
     {
     CGetObjectReferences* self = new ( ELeave ) CGetObjectReferences( aFramework,
-        aConnection );
+        aConnection,
+        aDpConfig );
     CleanupStack::PushL( self );
     self->ConstructL();
     CleanupStack::Pop( self );
@@ -68,6 +81,9 @@
 //
 void CGetObjectReferences::ConstructL()
     {
+#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
+    iPerfLog = CMmMtpDpPerfLog::NewL( _L( "CAbstractMediaMtpDataProviderEnumerator" ) );
+#endif
     }
 
 // -----------------------------------------------------------------------------
@@ -78,6 +94,10 @@
 EXPORT_C CGetObjectReferences::~CGetObjectReferences()
     {
     delete iReferences;
+
+#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
+    delete iPerfLog;
+#endif // _DEBUG
     }
 
 // -----------------------------------------------------------------------------
@@ -86,11 +106,13 @@
 // -----------------------------------------------------------------------------
 //
 CGetObjectReferences::CGetObjectReferences( MMTPDataProviderFramework& aFramework,
-    MMTPConnection& aConnection ) :
-    CRequestProcessor( aFramework,
-        aConnection,
-        sizeof ( KMTPGetObjectReferencesPolicy ) / sizeof( TMTPRequestElementInfo ),
-        KMTPGetObjectReferencesPolicy )
+    MMTPConnection& aConnection,
+    MMmMtpDpConfig& aDpConfig ) :
+        CRequestProcessor( aFramework,
+            aConnection,
+            sizeof ( KMTPGetObjectReferencesPolicy ) / sizeof( TMTPRequestElementInfo ),
+            KMTPGetObjectReferencesPolicy ),
+        iDpConfig( aDpConfig )
     {
     PRINT( _L( "Operation: GetObjectReferences(0x9810)" ) );
     }
@@ -104,14 +126,44 @@
     {
     PRINT( _L( "MM MTP => CGetObjectReferences::ServiceL" ) );
     
-    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+    MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive );
 
     TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
     PRINT1( _L( "MM MTP <> CGetObjectReferences::ServiceL objectHandle = 0x%x" ),
-            objectHandle );
-    MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
+        objectHandle );
+
+    CMTPObjectMetaData* parentObject = iRequestChecker->GetObjectInfo( objectHandle );
+    __ASSERT_DEBUG( parentObject, Panic( EMmMTPDpObjectNull ) );
+
+    iFramework.ObjectMgr().ObjectL( objectHandle, *parentObject );
+    TUint subFormatCode = parentObject->Uint( CMTPObjectMetaData::EFormatSubCode );
+    PRINT1( _L( "MM MTP <> CGetObjectReferences::ServiceL subFormatCode = 0x%x" ),
+        subFormatCode );
+    
+    if ( MmMtpDpUtility::HasReference( parentObject->Uint( CMTPObjectMetaData::EFormatCode ) )
+        && ( subFormatCode == EMTPSubFormatCodeUnknown ) )
+        {
+        CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity );
+        CleanupStack::PushL( references ); // + references
+
+        PERFLOGSTART( KMpxQueryAbstractMediaReference );
+        TRAP_IGNORE( iDpConfig.GetWrapperL().GetAllReferenceL( *parentObject, *references ) );
+        PERFLOGSTOP( KMpxQueryAbstractMediaReference );
+
+        // insert references into reference db
+        TPtrC parentSuid( parentObject->DesC( CMTPObjectMetaData::ESuid ) );
+        AddReferencesL( parentSuid, *references );
+        
+        CleanupStack::PopAndDestroy( references );  // - references
+
+        parentObject->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined );    // set it to something else
+        iFramework.ObjectMgr().ModifyObjectL( *parentObject );
+        }
+
+
     delete iReferences;
     iReferences = NULL;
+    MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
     iReferences = referenceMgr.ReferencesLC( TMTPTypeUint32( objectHandle ) );
     CleanupStack::Pop( iReferences );
     SendDataL( *iReferences );
@@ -140,4 +192,44 @@
     PRINT( _L( "MM MTP <= CGetObjectReferences::ServiceL" ) );
     }
 
+// -----------------------------------------------------------------------------
+// CGetObjectReferences::AddReferencesL
+// GetObjectInfo request handler
+// -----------------------------------------------------------------------------
+//
+void CGetObjectReferences::AddReferencesL( const TDesC& aRefOwnerSuid,
+    CDesCArray& aReferences )
+    {
+    TInt count = aReferences.Count();
+    PRINT2( _L("MM MTP => CGetObjectReferences::AddReferencesL aRefOwnerSuid = %S, ref count = %d"), &aRefOwnerSuid, count );
+
+    // check if references are valid
+    TInt removeCount = 0;
+    for ( TInt i = 0; i < count; i++ )
+        {
+        TInt index = i - removeCount;
+        TPtrC temp( aReferences[index] );
+        PRINT2( _L( "MM MTP <> CGetObjectReferences::AddReferencesL ref[%d]'s name = %S" ), index, &temp );
+        PERFLOGSTART( KObjectManagerHandle );
+        TUint32 handle = iFramework.ObjectMgr().HandleL( temp );
+        PERFLOGSTOP( KObjectManagerHandle );
+        if ( handle == KMTPHandleNone ) // object doesn't exist
+            {
+            PRINT1( _L( "MM MTP <> CGetObjectReferences::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp );
+
+            // if handle is invalid, remove from reference array
+            aReferences.Delete( index, 1 );
+            removeCount++;
+            }
+        }
+
+    // add all references into references db
+    MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
+    PERFLOGSTART( KReferenceManagerSetReference );
+    referenceMgr.SetReferencesL( aRefOwnerSuid, aReferences );
+    PERFLOGSTOP( KReferenceManagerSetReference );
+
+    PRINT( _L( "MM MTP <= CGetObjectReferences::AddReferencesL" ) );
+    }
+
 // end of file
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -63,7 +63,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework,
+CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection ) :
         CRequestProcessor( aFramework,
             aConnection,
@@ -154,12 +154,10 @@
     CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( iObjectHandle );
     __ASSERT_DEBUG( objectInfo, Panic( EMmMTPDpObjectNull ) );
 
-    // NOTE: Change all TBuf<KMaxFileName> into TFileName for easily change when fs change the limitation of filename
-    TFileName fileSuid;
-    fileSuid.Append( objectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+    TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
 
     iFileObject = CMTPTypeFile::NewL( iFramework.Fs(),
-        fileSuid,
+        fileName,
         ( TFileMode ) ( EFileRead | EFileShareReadersOnly ),
         iPartialDataLength,
         iOffset );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -279,9 +279,9 @@
 //
 void CMoveObject::MoveFileL( const TDesC& aNewFileName )
     {
-    TFileName oldFileName = iObjectInfo->DesC( CMTPObjectMetaData::ESuid );
+    HBufC* oldFileName = iObjectInfo->DesC( CMTPObjectMetaData::ESuid ).AllocLC(); // + oldFileName
     PRINT2( _L( "MM MTP => CMoveObject::MoveFileL old name = %S, aNewFileName = %S" ),
-        &oldFileName,
+        oldFileName,
         &aNewFileName );
 
     if ( iStorageId == iObjectInfo->Uint( CMTPObjectMetaData::EStorageId ) )
@@ -295,7 +295,9 @@
     TRAPD( err, SetPropertiesL( aNewFileName ) );
 
     CFileMan* fileMan = CFileMan::NewL( iFramework.Fs() );
-    err = fileMan->Move( oldFileName, aNewFileName );
+    err = fileMan->Move( *oldFileName, aNewFileName );
+	
+	CleanupStack::PopAndDestroy( oldFileName );     // - oldFileName
 
     if ( err != KErrNone )
         PRINT1( _L( "MM MTP <> CMoveObject::MoveFileL err = %d" ), err );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -137,7 +137,6 @@
 //
 EXPORT_C void CRequestProcessor::UsbDisconnect()
     {
-    // TODO: reset the CenRep value
     }
 
 // -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -60,7 +60,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework,
+CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection ) :
         CRequestProcessor( aFramework, aConnection, 0, NULL )
     {
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -129,7 +129,6 @@
 
     PRINT1( _L( "MM MTP <> CSendObject::ConstructL DataProviderId = 0x%x" ), iFramework.DataProviderId());
 
-  
     PRINT( _L( "MM MTP <= CSendObject::ConstructL" ) );
     }
 
@@ -1035,6 +1034,7 @@
 
     TBool result( EFalse );
 
+    TParsePtrC parser( aFileName );
     if ( aFileName.Length() > 0 )
         {
         iFullPath.Zero();
@@ -1044,7 +1044,6 @@
         // Only add extension for alb to pass winlogo test cases
         TInt length = iFullPath.Length() + aFileName.Length();
 
-        TParsePtrC parser( aFileName );
         TBool isAlbWithoutExt =
             ( ( iObjectFormat == EMTPFormatCodeAbstractAudioAlbum ) && ( !parser.ExtPresent() ) );
         if ( isAlbWithoutExt )
@@ -1062,8 +1061,7 @@
 
     if ( result && ( iObjectFormat != MmMtpDpUtility::FormatFromFilename( iFullPath ) ) )
         {
-        TParsePtrC file( aFileName );
-        if ( ( iObjectFormat == EMTPFormatCode3GPContainer ) && (file.Ext().CompareF( KTxtExtensionODF ) == 0))
+        if ( ( iObjectFormat == EMTPFormatCode3GPContainer ) && ( parser.Ext().CompareF( KTxtExtensionODF ) == 0))
             {
             PRINT( _L( "MM MTP <> might happen if function is called before physical file arrives" ) );
             // might happen if function is called before physical file arrives
@@ -1267,6 +1265,11 @@
         iDpConfig.GetWrapperL().AddDummyFileL( iFullPath );
         }
 
+    // Set subformat code to avoid MPX query for the first time to GetObjectReference,
+    // in which case references has been kept in fw.
+    if ( MmMtpDpUtility::HasReference( iObjectFormat ) )
+        iReceivedObjectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined );
+
     // add playlist to MPX DB
     TRAPD( err, AddMediaToStoreL() );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -154,7 +154,7 @@
             return EMTPRespCodeInvalidObjectHandle;
             }
 
-        TFileName fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
+        TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
         TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode );
         PRINT3( _L( "MM MTP <> CSetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ),
             objectHandle,
@@ -199,7 +199,7 @@
     {
     PRINT( _L( "MM MTP => CSetObjectPropValue::ServiceL" ) );
     
-    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+    MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive );
     
     __ASSERT_DEBUG( iRequestChecker, Panic( EMmMTPDpRequestCheckNull ) );
     TUint32 handle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -88,7 +88,7 @@
 // Standard c++ constructor
 // -----------------------------------------------------------------------------
 //
-EXPORT_C CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework,
+CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
     MMmMtpDpConfig& aDpConfig ) :
         CRequestProcessor( aFramework,
@@ -105,7 +105,7 @@
 // set references to DB
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CSetObjectReferences::DoSetObjectReferencesL( const CMTPObjectMetaData& aObject )
+void CSetObjectReferences::DoSetObjectReferencesL( const CMTPObjectMetaData& aObject )
     {
     TUint formatCode = aObject.Uint( CMTPObjectMetaData::EFormatCode );
     TBool hasReference = MmMtpDpUtility::HasReference( formatCode );
@@ -164,6 +164,10 @@
         iFramework.ObjectMgr().ObjectL( objectHandle, *object );
         PRINT1( _L( "MM MTP <> object file name is %S" ), &(object->DesC( CMTPObjectMetaData::ESuid ) ) );
         DoSetObjectReferencesL( *object );
+        
+        // set it to something else other than EMTPSubFormatCodeUnknown to prevent being queried from MPX later in the same session
+        object->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined );
+        iFramework.ObjectMgr().ModifyObjectL( *object );
 
         CleanupStack::PopAndDestroy( object ); // - object
 
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -502,7 +502,7 @@
 // CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL
 //
 // ---------------------------------------------------------------------------
-EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL( const TDesC& aStoreRoot, CMPXMediaArray** aAbstractMedias, TMPXGeneralCategory aCategory )
+EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL( const TDesC& aStoreRoot, CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory )
     {
     iMmMtpDpMetadataMpxAccess->GetAllAbstractMediaL( aStoreRoot, aAbstractMedias, aCategory );
     }
@@ -512,19 +512,11 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL( CMPXMedia* aAbstractMedia, CDesCArray& aReferences )
+EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL( const CMTPObjectMetaData& aRefOwner, CDesCArray& aReferences )
     {
-    iMmMtpDpMetadataMpxAccess->GetAllReferenceL( aAbstractMedia, aReferences );
-    }
-
-// ---------------------------------------------------------------------------
-// CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C HBufC* CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, TMPXGeneralCategory aCategory )
-    {
-    return iMmMtpDpMetadataMpxAccess->GetAbstractMediaNameL( aAbstractMedia, aCategory );
+    TMPXGeneralCategory category = Category( aRefOwner );
+    if ( category == EMPXPlaylist || category == EMPXAbstractAlbum )
+        iMmMtpDpMetadataMpxAccess->GetAllReferenceL( aRefOwner.DesC( CMTPObjectMetaData::ESuid ), category, aReferences );
     }
 
 // -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -67,10 +67,6 @@
 _LIT( KSetMetadataValue, "SetMetadataValueL" );
 #endif
 
-#ifdef  _DEBUG
-_LIT( KMtpMpxPanic, "CMmMtpDpMetadataMpxAccess" );
-#endif
-
 CMmMtpDpMetadataMpxAccess* CMmMtpDpMetadataMpxAccess::NewL( RFs& aRfs )
     {
     CMmMtpDpMetadataMpxAccess* self = new( ELeave ) CMmMtpDpMetadataMpxAccess( aRfs );
@@ -81,9 +77,10 @@
     return self;
     }
 
-CMmMtpDpMetadataMpxAccess::CMmMtpDpMetadataMpxAccess( RFs& aRfs ):
+CMmMtpDpMetadataMpxAccess::CMmMtpDpMetadataMpxAccess( RFs& aRfs ) :
     iRfs( aRfs ),
-    iSampleData( NULL )
+    iSampleData( NULL ),
+    iHasCleanUp( EFalse )
     {
     // Do nothing
     }
@@ -149,6 +146,7 @@
         iCollectionHelper = NULL;
         }
 
+    iHasCleanUp = EFalse;  // must reset, as class is not always destoryed
     PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::CloseSession" ) );
     }
 
@@ -597,9 +595,14 @@
     // as there is NOT a separate database for deleted files.
     PRINT( _L( "MM MTP <> Deleting metadata for deleted files" ) );
 
-    PERFLOGSTART( KMpxCollectionCleanupDeletedMediasL );
-    CollectionHelperL()->CleanupDeletedMediasL();
-    PERFLOGSTOP( KMpxCollectionCleanupDeletedMediasL );
+    if ( !iHasCleanUp )
+        {
+        PERFLOGSTART( KMpxCollectionCleanupDeletedMediasL );
+        CollectionHelperL()->CleanupDeletedMediasL();
+        PERFLOGSTOP( KMpxCollectionCleanupDeletedMediasL );
+
+        iHasCleanUp = ETrue;
+        }
 
     PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::UpdateMusicCollectionL" ) );
     }
@@ -1000,7 +1003,6 @@
             EMPXSong );
         // File Path
         //
-        TParsePtrC parse( aFullFileName );
         media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
 
@@ -1336,7 +1338,7 @@
 // ---------------------------------------------------------------------------
 //
 void CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL( const TDesC& aStoreRoot,
-    CMPXMediaArray** aAbstractMedias,
+    CDesCArray& aAbstractMedias,
     TMPXGeneralCategory aCategory )
     {
     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL" ) );
@@ -1387,8 +1389,9 @@
             User::Leave( KErrNotSupported );
             }
 
-        *aAbstractMedias =
-            CMPXMediaArray::NewL( *( foundMedia->Value<CMPXMediaArray> ( KMPXMediaArrayContents ) ) );
+        CMPXMediaArray* mediaArray = foundMedia->Value<CMPXMediaArray> ( KMPXMediaArrayContents );
+        for ( TInt i = 0; i < count; i++ )
+            aAbstractMedias.AppendL( ( *mediaArray )[i]->ValueText( KMPXMediaGeneralUri ) );
         }
 
     CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia
@@ -1401,15 +1404,36 @@
 // Get all references of specified playlist
 // ---------------------------------------------------------------------------
 //
-void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( CMPXMedia* aAbstractMedia,
+void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( const TDesC& aRefOwnerSuid,
+    TMPXGeneralCategory aCategory,
     CDesCArray& aReferences )
     {
     PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL" ) );
 
-    __ASSERT_DEBUG( aAbstractMedia, User::Panic( KMtpMpxPanic, KErrArgument ) );
+    // 1. Get CMPXMedia object by the reference owner suid
+    RArray<TMPXAttribute> attributes;
+    CleanupClosePushL( attributes ); // + attributes
+    attributes.AppendL( KMPXMediaGeneralId );
+    attributes.AppendL( KMPXMediaGeneralTitle );
+    attributes.AppendL( KMPXMediaGeneralUri );
+
+    CMPXMedia* refOwner = CollectionHelperL()->GetL( aRefOwnerSuid,
+        attributes.Array(),
+        aCategory );
 
-    // Extract the playlist id from the found object
-    TUint32 abstractMediaId = *( *aAbstractMedia ).Value<TMPXItemId>( KMPXMediaGeneralId );
+    __ASSERT_DEBUG( refOwner, Panic( EMmMTPDpObjectNull ) );
+
+    CleanupStack::PushL( refOwner ); // + refOwner
+
+    // 2. Extract the general id from the found object
+    if ( !refOwner->IsSupported( KMPXMediaGeneralId ) )
+        PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL Before GeneralId" ) );
+
+    TUint32 abstractMediaId = *( *refOwner ).Value<TMPXItemId>( KMPXMediaGeneralId );
+    PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL After GeneralId" ) );
+
+    CleanupStack::PopAndDestroy( refOwner );    // - refOwner
+    CleanupStack::PopAndDestroy( &attributes ); // - attributes
 
     // find the media object that contains a list of songs in the playlist
     RArray<TInt> contentIDs;
@@ -1467,7 +1491,7 @@
 
             // may replace the following 3 statements into the following:
             // AppendL(refMedia->ValueText(KMPXMediaGeneralUri));
-            HBufC* musicFileLocation = refMedia->ValueText( KMPXMediaGeneralUri ).AllocLC();
+            HBufC* musicFileLocation = refMedia->ValueText( KMPXMediaGeneralUri ).AllocLC();    // + musicFileLocation
             aReferences.AppendL( *musicFileLocation );
 
             PRINT1( _L("MM MTP <> CMmMtpDpMetadataMpxAccess::GetAllReferenceL, [%S] found from MPX db"), musicFileLocation );
@@ -1482,33 +1506,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL
-//
-// ---------------------------------------------------------------------------
-//
-HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia,
-    TMPXGeneralCategory aCategory )
-    {
-    PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
-    HBufC* name = NULL;
-    if ( aCategory == EMPXPlaylist || aCategory == EMPXAbstractAlbum )
-        {
-        if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
-            {
-            User::Leave( KErrNotSupported );
-            }
-        name = aAbstractMedia->ValueText( KMPXMediaGeneralUri ).AllocL();
-        }
-    else
-        {
-        User::Leave( KErrNotSupported );
-        }
-
-    PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
-    return name;
-    }
-
-// ---------------------------------------------------------------------------
 // CMmMtpDpMetadataMpxAccess::GetModifiedContentL
 // Get modified content
 // ---------------------------------------------------------------------------
--- a/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -72,8 +72,8 @@
     CleanupStack::PushL(server);    
     RProcess::Rendezvous(KErrNone);
     CActiveScheduler::Start();
+    CleanupStack::PopAndDestroy(server);
     CActiveScheduler::Install(NULL);
-    CleanupStack::PopAndDestroy(server);
     CleanupStack::PopAndDestroy(scheduler);
     }
 
--- a/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp	Tue May 25 13:14:13 2010 +0300
+++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp	Wed Jun 09 10:13:45 2010 +0300
@@ -72,8 +72,8 @@
     CleanupStack::PushL(server);
     RProcess::Rendezvous(KErrNone);
     CActiveScheduler::Start();
+    CleanupStack::PopAndDestroy(server);
     CActiveScheduler::Install(NULL);
-    CleanupStack::PopAndDestroy(server);
     CleanupStack::PopAndDestroy(scheduler);
     }