198 { |
198 { |
199 iDevDpSingletons.DeviceDataStore().StartEnumerationL(aStorageId, *this); |
199 iDevDpSingletons.DeviceDataStore().StartEnumerationL(aStorageId, *this); |
200 iEnumeratingState = EEnumeratingDeviceDataStore; |
200 iEnumeratingState = EEnumeratingDeviceDataStore; |
201 iStorageWatcher->Start(); |
201 iStorageWatcher->Start(); |
202 } |
202 } |
203 else if (iPendingEnumerations.Count() == 1) |
203 else |
204 { |
204 { |
205 iEnumeratingState = EEnumeratingFolders; |
205 iEnumeratingState = EEnumeratingFolders; |
206 iEnumerator->StartL(iPendingEnumerations[KMTPDeviceDpActiveEnumeration]); |
206 NotifyEnumerationCompleteL(aStorageId, KErrNone); |
207 } |
207 } |
208 __FLOG(_L8("StartObjectEnumerationL - Exit")); |
208 __FLOG(_L8("StartObjectEnumerationL - Exit")); |
209 } |
209 } |
210 |
210 |
211 void CMTPDeviceDataProvider::StartStorageEnumerationL() |
211 void CMTPDeviceDataProvider::StartStorageEnumerationL() |
330 break; |
330 break; |
331 } |
331 } |
332 __FLOG(_L8("Supported - Exit")); |
332 __FLOG(_L8("Supported - Exit")); |
333 } |
333 } |
334 |
334 |
335 #ifdef __FLOG_ACTIVE |
|
336 void CMTPDeviceDataProvider::NotifyEnumerationCompleteL(TUint32 aStorageId, TInt aError) |
|
337 #else |
|
338 void CMTPDeviceDataProvider::NotifyEnumerationCompleteL(TUint32 aStorageId, TInt /*aError*/) |
335 void CMTPDeviceDataProvider::NotifyEnumerationCompleteL(TUint32 aStorageId, TInt /*aError*/) |
339 #endif // __FLOG_ACTIVE |
|
340 { |
336 { |
341 __FLOG(_L8("NotifyEnumerationCompleteL - Entry")); |
337 __FLOG(_L8("NotifyEnumerationCompleteL - Entry")); |
342 __ASSERT_DEBUG((aStorageId == iPendingEnumerations[KMTPDeviceDpActiveEnumeration]), User::Invariant()); |
338 __ASSERT_DEBUG((aStorageId == iPendingEnumerations[KMTPDeviceDpActiveEnumeration]), User::Invariant()); |
|
339 if (iPendingEnumerations.Count() > 0) |
|
340 { |
|
341 iPendingEnumerations.Remove(KMTPDeviceDpActiveEnumeration); |
|
342 } |
343 switch(iEnumeratingState) |
343 switch(iEnumeratingState) |
344 { |
344 { |
345 case EEnumeratingDeviceDataStore: |
345 case EEnumeratingDeviceDataStore: |
346 iEnumeratingState = EEnumeratingFolders; |
346 case EEnumeratingFolders: |
347 iEnumerator->StartL(iPendingEnumerations[KMTPDeviceDpActiveEnumeration]); |
347 iEnumeratingState = EEnumerationComplete; |
|
348 Framework().ObjectEnumerationCompleteL(aStorageId); |
|
349 //iEnumerator->StartL(iPendingEnumerations[KMTPDeviceDpActiveEnumeration]); |
348 break; |
350 break; |
349 |
|
350 case EEnumeratingFolders: |
|
351 __FLOG_VA((_L8("Enumeration of storage 0x%08X completed with error status %d"), aStorageId, aError)); |
|
352 iPendingEnumerations.Remove(KMTPDeviceDpActiveEnumeration); |
|
353 Framework().ObjectEnumerationCompleteL(aStorageId); |
|
354 if (iPendingEnumerations.Count() > 0) |
|
355 { |
|
356 iEnumerator->StartL(iPendingEnumerations[KMTPDeviceDpActiveEnumeration]); |
|
357 } |
|
358 else |
|
359 { |
|
360 iEnumeratingState = EEnumerationComplete; |
|
361 } |
|
362 break; |
|
363 |
|
364 case EEnumerationComplete: |
351 case EEnumerationComplete: |
365 default: |
352 default: |
366 __DEBUG_ONLY(User::Invariant()); |
353 __DEBUG_ONLY(User::Invariant()); |
367 break; |
354 break; |
368 } |
355 } |