183 for (TUint index=0; index < iDataProviders.Count(); index++) |
183 for (TUint index=0; index < iDataProviders.Count(); index++) |
184 { |
184 { |
185 if ((iDataProviders[index]->DataProviderId() != iDpIdDeviceDp) |
185 if ((iDataProviders[index]->DataProviderId() != iDpIdDeviceDp) |
186 && (iDataProviders[index]->DataProviderId() != iDpIdProxyDp)) |
186 && (iDataProviders[index]->DataProviderId() != iDpIdProxyDp)) |
187 { |
187 { |
188 iDataProviderIds.Append(iDataProviders[index]->DataProviderId()); |
188 iDataProviderIds.AppendL(iDataProviders[index]->DataProviderId()); |
189 } |
189 } |
190 } |
190 } |
191 |
191 |
192 // Ensure that the data provider set is ordered on DataProvider Id. |
192 // Ensure that the data provider set is ordered on DataProvider Id. |
193 iDataProviders.Sort(TLinearOrder<CMTPDataProvider>(CMTPDataProvider::LinearOrderDPId)); |
193 iDataProviders.Sort(TLinearOrder<CMTPDataProvider>(CMTPDataProvider::LinearOrderDPId)); |
847 void CMTPDataProviderController::EnumerateDataProviderObjectsL(TUint aId) |
847 void CMTPDataProviderController::EnumerateDataProviderObjectsL(TUint aId) |
848 { |
848 { |
849 __FLOG(_L8("EnumerateDataProviderObjectsL - Entry")); |
849 __FLOG(_L8("EnumerateDataProviderObjectsL - Entry")); |
850 CMTPDataProvider& dp(DataProviderL(aId)); |
850 CMTPDataProvider& dp(DataProviderL(aId)); |
851 |
851 |
852 if (IsObjectsEnumerationNeededL(dp)) |
852 if (IsObjectsEnumerationNeededL(dp)) |
853 { |
853 { |
854 TBool abnormaldown = ETrue; |
854 TBool abnormaldown = ETrue; |
855 iSingletons.FrameworkConfig().GetValueL(CMTPFrameworkConfig::EAbnormalDown , abnormaldown); |
855 iSingletons.FrameworkConfig().GetValueL(CMTPFrameworkConfig::EAbnormalDown , abnormaldown); |
856 if ( (!abnormaldown) && (dp.DataProviderConfig().BoolValue(MMTPDataProviderConfig::EObjectEnumerationPersistent))) |
856 if ( (!abnormaldown) && (dp.DataProviderConfig().BoolValue(MMTPDataProviderConfig::EObjectEnumerationPersistent))) |
857 { |
857 { |
858 // Initialize persistent objects store. |
858 // Initialize persistent objects store. |
859 iSingletons.ObjectMgr().RestorePersistentObjectsL(aId); |
859 iSingletons.ObjectMgr().RestorePersistentObjectsL(aId); |
860 } |
860 } |
861 else |
861 else |
862 { |
862 { |
863 // Mark all non-persistent objects. |
863 // Mark all non-persistent objects. |
864 iSingletons.ObjectMgr().MarkNonPersistentObjectsL(aId,iEnumeratingStorages[0]); |
864 iSingletons.ObjectMgr().MarkNonPersistentObjectsL(aId,iEnumeratingStorages[0]); |
865 } |
865 } |
866 |
866 if ((KMTPStorageAll == iEnumeratingStorages[0]) || (iSingletons.StorageMgr().ValidStorageId(iEnumeratingStorages[0]))) |
867 // Initiate the data provider enumeration sequence. |
867 { |
868 dp.EnumerateObjectsL(iEnumeratingStorages[0]); |
868 //Only initiate the data provider enumeration sequence for valid storage or all storage |
869 } |
869 dp.EnumerateObjectsL(iEnumeratingStorages[0]); |
870 else |
870 } |
871 { |
871 else |
872 //The DP does not need enumeration this time, so just change the state to go on. |
872 { |
873 EnumerationStateChangedL(dp); |
873 EnumerationStateChangedL(dp); |
874 } |
874 } |
|
875 |
|
876 } |
|
877 else |
|
878 { |
|
879 //The DP does not need enumeration this time, so just change the state to go on. |
|
880 EnumerationStateChangedL(dp); |
|
881 } |
875 |
882 |
876 __FLOG(_L8("EnumerateDataProviderObjectsL - Exit")); |
883 __FLOG(_L8("EnumerateDataProviderObjectsL - Exit")); |
877 } |
884 } |
878 |
885 |
879 /** |
886 /** |