os/persistentdata/persistentstorage/centralrepository/pccenrep/src/pccenrepimpl.h
Update contrib.
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of "Eclipse Public License v1.0"
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
16 #include "heaprepos.h"
18 #include "operations.h"
21 PC side repository impl class
24 NONSHARABLE_CLASS(CPcRepImpl): public CBase, public MOperationLogic
26 friend class CRepository;
28 static CPcRepImpl* NewL(TUid aRepositoryUid,const TDesC& aInFileName, const TDesC& aOutFileName,TBool aAutoLoading);
30 void MoveL(TUint32 aSourcePartialKey, TUint32 aTargetPartialKey,TUint32 aMask, TUint32& aErrorKey);
31 void DeleteRangeL(TUint32 aPartialKey, TUint32 aMask,TUint32& aErrorKey);
32 void GetSingleMetaArrayL(RSingleMetaArray& aMetaArray);
34 static void FailTransactionCleanupOperation(TAny* /**aRepository*/);
36 //----------------virtuals from MOperationLogic------------------------------------
37 void GetSingleMeta(TUint aKey,TUint32& aMeta)
39 TInt ret=iSingleMetaArray.Find(aKey,aMeta);
40 if (ret==KErrNotFound)
42 //search for range/then default meta
43 TSettingsDefaultMeta *defaultMeta = iRepository->RangeMetaArray().Find(aKey);
46 aMeta=defaultMeta->GetDefaultMetadata();
50 aMeta=iRepository->DefaultMeta();
55 TSettingsAccessPolicy* GetFallbackAccessPolicy(TUint32 aId)const
57 return iRepository->GetFallbackAccessPolicy(aId);
59 TServerSetting* GetSetting(TUint aKey)
61 return iRepository->SettingsArray().Find(aKey);
63 TInt FindSettings(TUint32 aSourcePartialKey,TUint32 aMask,RSettingPointerArray& aOutputArray) const
65 return iRepository->SettingsArray().Find(aSourcePartialKey,aMask,aOutputArray);
68 RSettingsArray& GetWritableSettingList()
70 return iRepository->SettingsArray();
73 //------------------------end of virtuals------------------------------------------
76 void FindSettingsComparisonL(TUint32 aSourcePartialKey,TUint32 aMask,const T& aValue,TComparison aComparison,RArray<TUint32>& aFoundIds) const
78 RSettingPointerArray sourceArray;
79 CleanupClosePushL(sourceArray);
80 User::LeaveIfError(FindSettings(aSourcePartialKey,aMask,sourceArray));
82 FindCompareL(sourceArray,aValue,aComparison,aFoundIds);
83 CleanupStack::PopAndDestroy();
87 void ConstructL(TUid aRepositoryUid,const TDesC& aInFileName,const TDesC& aOutFileName,TBool aAutoLoading);
88 void IsOriginalL(TUid aUid, const TDesC& aOutFile, TBool aAutoLoading, TFileName& aOgnFileName, TBool& aIsOriginal);
89 void RemoveAnyMarkDeleted()
91 for (TInt i=0;i<iRepository->SettingsArray().Count();i++)
93 TServerSetting ts=iRepository->SettingsArray()[i];
96 iRepository->SettingsArray().DeleteElement(i);
103 CHeapRepository* iRepository;
106 RSingleMetaArray iSingleMetaArray;