--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/msgsrvnstore/server/inc/msvcacheentry.h Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,117 @@
+// Copyright (c) 2007-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 __MSVCACHEENTRY_H__
+#define __MSVCACHEENTRY_H__
+
+#include "MSVTIME.H"
+#include "MSVPANIC.H"
+
+#include <e32base.h>
+#include <msvstd.h>
+
+/**
+CMsvCacheEntry corresponds to a TMsvEntry object that has been loaded into memory.
+@internalComponent
+@prototype
+*/
+
+NONSHARABLE_CLASS (CMsvCacheEntry): public CBase
+{
+public:
+ inline TMsvEntry& Entry();
+ inline TMsvId GetId() const;
+
+ TInt LockEntry();
+ inline TBool IsEntryLocked() const;
+ inline void ReleaseEntry();
+
+ TInt LockStore();
+ inline TBool IsStoreLocked() const;
+ inline void ReleaseStore();
+
+ inline TBool IsStoreReadingLocked() const;
+ inline void IncStoreReaderCount();
+ inline void DecStoreReaderCount();
+
+ TInt LockEntryAndStore();
+ inline TBool IsEntryOrStoreLocked() const;
+ inline TBool IsEntryAndStoreLocked() const;
+ inline void ReleaseEntryAndStore();
+
+ inline const TMsvTime& CreatedDate() const;
+ inline void SetCreatedDate(const TMsvTime& aTime);
+ inline const TMsvTime& LastChangeDate() const;
+ inline void SetLastChangeDate(const TMsvTime& aTime);
+
+ void CopyEntryL(const TMsvEntry& aEntry, TBool& aChangedPrivateInfo);
+ void RollBackCopyEntry(const TMsvEntry& aEntry);
+
+ inline TSecureId EntryOwnerId() const;
+ inline void SetEntryOwnerId(TSecureId aOwnerId);
+
+ inline RArray<TMsvId>* ChildIdArray();
+ inline void SetChildIdArray(RArray<TMsvId>* aChildArray);
+
+ inline TBool IsEntrySwappable() const;
+
+ void DupNDestroyL(CMsvCacheEntry*& aEntry);
+ void SetEntryL(TMsvEntry& aEntry);
+ void ResetEntry();
+
+private:
+ static CMsvCacheEntry* NewLC();
+ static CMsvCacheEntry* NewL();
+ void ConstructL();
+ CMsvCacheEntry();
+ CMsvCacheEntry(const CMsvCacheEntry&);
+ virtual ~CMsvCacheEntry();
+
+private:
+ enum
+ {
+ EMsvServerEntryClearFlag = 0x00,
+ EMsvServerEntryLockFlag = 0x01,
+ EMsvServerEntryStoreLockFlag = 0x02
+ };
+
+ // Only CMsvEntryFreePool class should
+ // create an instance of CMsvCacheEntry.
+ friend class CMsvEntryFreePool;
+ // This class is made friend because
+ // we need to destroy entry through ResetAndDestroy().
+ friend class RPointerArray<CMsvCacheEntry>;
+
+#ifdef SYMBIAN_MESSAGESTORE_UNIT_TESTCODE
+ friend class CTestCacheEntry;
+#endif
+
+public:
+ HBufC* iDescriptionBuffer;
+ HBufC* iDetailsBuffer;
+
+private:
+ TMsvEntry iEntry;
+ TUint32 iFlags;
+ TInt32 iStoreReaderCount;
+ TMsvTime iLastChange;
+ TMsvTime iCreated;
+ TSecureId iOwnerId;
+ RArray<TMsvId>* iChildIdArray;
+};
+
+#include "msvcacheentry.inl"
+
+#endif // #ifndef __MSVCACHEENTRY_H__