diff -r 000000000000 -r 08ec8eefde2f persistentstorage/centralrepository/cenrepcli/clirep.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/persistentstorage/centralrepository/cenrepcli/clirep.h Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,141 @@ +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +#ifndef CLIREP_H +#define CLIREP_H + +#include +#include "centralrepositoryinternal.h" + +const TInt32 KCentRepFindWithLenghtBufSize = NCentralRepositoryConstants::KCentRepFindBufSize + 1; + +class RRepositorySubSession; +/** Client-side session. +@internalComponent +*/ +class RRepositorySession : public RSessionBase + { +public: + RRepositorySession(); + TInt Connect(); + inline TInt IncrementSubSessionCounter(); + inline TInt DecrementSubSessionCounter(); + +#if defined(__CENTREP_SERVER_PERFTEST__) || defined(__CENTREP_SERVER_MEMTEST__) || defined(__CENTREP_SERVER_CACHETEST__) + TInt SendReceive(TInt aFunction) const; + TInt SendReceive(TInt aFunction, const TIpcArgs& aArgs) const; + void SendReceive(TInt aFunction, const TIpcArgs& aArgs, TRequestStatus& aStatus) const; +#endif + +private: + TInt iSubSessionCounter; + }; + +/** Client-side subSession. +@internalComponent +*/ +class RRepositorySubSession : public RSubSessionBase + { +public: + TInt Open(RRepositorySession* aSession,TInt aFunction,const TIpcArgs& aArgs); + void Close(); + TInt SendReceive(TInt aFunction) const; + TInt SendReceive(TInt aFunction, const TIpcArgs& aArgs) const; + void SendReceive(TInt aFunction, const TIpcArgs& aArgs, TRequestStatus& aStatus) const; +private: + RRepositorySession* iSession; + }; + + +/** Implementation of CRepository. +@internalComponent +*/ +NONSHARABLE_CLASS(CClientRepository) : public CRepository + { + friend class CRepository; +public: + static CClientRepository* NewLC(TUid aRepositoryUid); + + ~CClientRepository(); + + TInt Create(TUint32 aId, TInt aVal); // TInt + TInt Create(TUint32 aId, const TReal& aVal); // TReal + TInt Create(TUint32 aId, const TDesC8& aVal); // TDesC8 + TInt Create(TUint32 aId, const TDesC16& aVal); // TDesC16 + + TInt Delete(TUint32 aId); + TInt Delete(TUint32 aPartialKey, TUint32 aMask, TUint32 &aErrorKey); + + TInt Get(TUint32 aId, TInt& aVal); + TInt Set(TUint32 aId, TInt aVal); + + TInt Get(TUint32 aId, TReal& aVal); + TInt Set(TUint32 aId, const TReal& aVal); + + TInt Get(TUint32 aId, TDes8& aVal); + TInt Get(TUint32 aId, TDes8& aVal, TInt& aActualLen); + TInt Set(TUint32 aId, const TDesC8& aVal); + + TInt Get(TUint32 aId, TDes& aVal); + TInt Get(TUint32 aId, TDes& aVal, TInt& aActualLen); + TInt Set(TUint32 aId, const TDesC& aVal); + + TInt GetMeta(TUint32 aId, TUint32& aMeta); + + TInt Move(TUint32 aSourcePartialId, TUint32 aTargetPartialId, TUint32 aIdMask, TUint32 &aErrorId) ; + + TInt FindL(TUint32 aPartialId, TUint32 aIdMask, RArray& aFoundIds); + + TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, TInt aVal, RArray& aFoundIds); + TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TReal& aVal, RArray& aFoundIds); + TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC8& aVal, RArray& aFoundIds); + TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC& aVal, RArray& aFoundIds); + + TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, TInt aVal, RArray& aFoundIds); + TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TReal& aVal, RArray& aFoundIds); + TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC8& aVal, RArray& aFoundIds); + TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC& aVal, RArray& aFoundIds); + + TInt NotifyRequest(TUint32 aId, TRequestStatus& aStatus); + TInt NotifyRequest(TUint32 aPartialId, TUint32 aIdMask, TRequestStatus& aStatus); + TInt NotifyCancel(TUint32 aId); + TInt NotifyCancel(TUint32 aPartialId, TUint32 aIdMask); + TInt NotifyCancelAll(); + + TInt Reset(); + TInt Reset(TUint32 aId); + + TInt StartTransaction(TTransactionMode aMode); + void StartTransaction(TTransactionMode aMode, TRequestStatus& aStatus); + TInt CommitTransaction(TUint32& aKeyInfo); + void CommitTransaction(TDes8& aKeyInfo, TRequestStatus& aStatus); + void CancelTransaction(); + void CleanupCancelTransactionPushL(); + void FailTransaction(); + void CleanupFailTransactionPushL(); + TInt TransactionState(); + +private: + CClientRepository(); + void ConstructL(TUid aRepositoryUid); + TInt GetFindResult(const TFixedArray& aUids, RArray& aFoundIds); + RRepositorySession* Session(); +private: + RRepositorySubSession* iSubSession; + TInt iClientErr; + }; + +#endif // CLIREP_H +