--- /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 <centralrepository.h>
+#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<TUint32>& aFoundIds);
+
+ TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, TInt aVal, RArray<TUint32>& aFoundIds);
+ TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TReal& aVal, RArray<TUint32>& aFoundIds);
+ TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC8& aVal, RArray<TUint32>& aFoundIds);
+ TInt FindEqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC& aVal, RArray<TUint32>& aFoundIds);
+
+ TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, TInt aVal, RArray<TUint32>& aFoundIds);
+ TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TReal& aVal, RArray<TUint32>& aFoundIds);
+ TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC8& aVal, RArray<TUint32>& aFoundIds);
+ TInt FindNeqL(TUint32 aPartialId, TUint32 aIdMask, const TDesC& aVal, RArray<TUint32>& 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<TUint32, KCentRepFindWithLenghtBufSize>& aUids, RArray<TUint32>& aFoundIds);
+ RRepositorySession* Session();
+private:
+ RRepositorySubSession* iSubSession;
+ TInt iClientErr;
+ };
+
+#endif // CLIREP_H
+