diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/msgsrvnstore/server/inc/msvcacheentry.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/msgsrvnstore/server/inc/msvcacheentry.inl Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,327 @@ +// 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: +// INLINE FUNCTIONS +// +// + +/** + + Entry() + @param None. + @return TMsvEntry& : a handle to the TMsvEntry of the cache entry. + + The function returns a handle to the TMsvEntry of the cache entry. + +*/ +inline TMsvEntry& CMsvCacheEntry::Entry() + { + return iEntry; + } + + + +/** + * GetId() + * @param None. + * @return TMsvId: TMsvId of the entry + * + * The function returns the TMsvId of the entry. + */ +inline TMsvId CMsvCacheEntry::GetId() const + { + return iEntry.Id(); + } + + + +/** + * IsEntryLocked() + * @param None. + * @return TBool : ETrue if the entry has been locked, EFalse otherwise. + * + * The function returns the value of the EMsvServerEntryLockFlag flag, + * which represents whether the cache entry has been locked or not. + */ +inline TBool CMsvCacheEntry::IsEntryLocked() const + { + return iFlags & EMsvServerEntryLockFlag; + } + + + +/** + * ReleaseEntry() + * @param None. + * @return None. + * + * The function resets the value of the EMsvServerEntryLockFlag flag, i.e releases + * the lock on the cache entry. + */ +inline void CMsvCacheEntry::ReleaseEntry() + { + __ASSERT_DEBUG(IsEntryLocked(), PanicServer(EMsvReleasingEntryNotLocked)); + iFlags = iFlags & ~EMsvServerEntryLockFlag; + } + + + +/** + * IsStoreLocked() + * @param None. + * @return TBool : ETrue if the server entry has been locked, EFalse otherwise. + * + * The function returns the value of the EMsvServerEntryStoreLockFlag flag, + * which represents whether the server entry has been locked or not. + */ +inline TBool CMsvCacheEntry::IsStoreLocked() const + { + return iFlags & EMsvServerEntryStoreLockFlag; + } + + + +/** + * ReleaseStore() + * @param None. + * @return None. + * + * The function resets the value of the EMsvServerEntryStoreLockFlag flag, i.e releases + * the lock on the server entry. + */ +inline void CMsvCacheEntry::ReleaseStore() + { + __ASSERT_DEBUG(IsStoreLocked(), PanicServer(EMsvReleasingStoreNotLocked)); + iFlags = iFlags & ~EMsvServerEntryStoreLockFlag; + } + + + +/** + * IsStoreReadingLocked() + * @param None. + * @return TBool : ETrue if there are no readers to the store, EFalse otherwise. + * + * The function returns ETrue if the number of readers to the store (iStoreReaderCount) + * is 0, EFalse if otherwise. + */ +inline TBool CMsvCacheEntry::IsStoreReadingLocked() const + { + return iStoreReaderCount == 0 ? EFalse : ETrue; + } + + + +/** + * IncStoreReaderCount() + * @param None. + * @return None. + * + * The function increments the number of readers to the store (iStoreReaderCount). + */ +inline void CMsvCacheEntry::IncStoreReaderCount() + { + iStoreReaderCount++; + } + + + +/** + * DecStoreReaderCount() + * @param None. + * @return None. + * + * The function decrements the number of readers to the store (iStoreReaderCount). + */ +inline void CMsvCacheEntry::DecStoreReaderCount() + { + __ASSERT_DEBUG(iStoreReaderCount>0, User::Invariant()); + + iStoreReaderCount--; + } + + + +/** + * IsEntryOrStoreLocked() + * @param None. + * @return TBool : ETrue if the server OR cache entries have been locked, EFalse otherwise. + * + * The function returns ETrue if either of store and cache entries have been locked, + * EFalse if neither are locked. + */ +inline TBool CMsvCacheEntry::IsEntryOrStoreLocked() const + { + return iFlags & (EMsvServerEntryStoreLockFlag | EMsvServerEntryLockFlag); + } + + + +/** + * IsEntryAndStoreLocked() + * @param None. + * @return TBool : ETrue if the server AND cache entries have been locked, EFalse otherwise. + * + * The function returns ETrue if both the store and cache entries have been locked, + * EFalse if only one of them are locked. + */ +inline TBool CMsvCacheEntry::IsEntryAndStoreLocked() const + { + return IsEntryLocked() && IsStoreLocked(); + } + + + +/** + * ReleaseEntryAndStore() + * @param None. + * @return None. + * + * The function resets the value of the EMsvServerEntryLockFlag and + * EMsvServerEntryStoreLockFlag flags, i.e releases the lock on the server + * and cache entries. + */ +inline void CMsvCacheEntry::ReleaseEntryAndStore() + { + __ASSERT_DEBUG(IsEntryOrStoreLocked(), PanicServer(EMsvReleasingStoreNotLocked)); + iFlags = iFlags & ~(EMsvServerEntryStoreLockFlag|EMsvServerEntryLockFlag); + } + + + +/** + * CreatedDate() + * @param None. + * @return TMsvTime& : a reference to the creation time and date of the entry. + * + * The function returns a reference to the creation time and date of the entry. + */ +inline const TMsvTime& CMsvCacheEntry::CreatedDate() const + { + return iCreated; + } + + + +/** + * SetCreatedDate() + * @param TMsvTime& : a reference to the creation time and date of the entry. + * @return None. + * + * The function sets the creation time and date of the entry to the passed value. + */ +inline void CMsvCacheEntry::SetCreatedDate(const TMsvTime& aTime) + { + iCreated = aTime; + } + + + +/** + * LastChangeDate() + * @param None. + * @return TMsvTime& : a reference to the last change time and date of the entry. + * + * The function returns a reference to the last change time and date of the entry. + */ +inline const TMsvTime& CMsvCacheEntry::LastChangeDate() const + { + return iLastChange; + } + + + +/** + * SetLastChangeDate() + * @param TMsvTime& : a reference to the last change time and date of the entry. + * @return None. + * + * The function sets the last change time and date of the entry to the passed value. + */ +inline void CMsvCacheEntry::SetLastChangeDate(const TMsvTime& aTime) + { + iLastChange = aTime; + } + + + +/** + * EntryOwnerId() + * @param None. + * @return TSecureId : TSecureId of the owner of the cache entry. + * + * The function returns the TSecureId of the owner of the cache entry. + */ +inline TSecureId CMsvCacheEntry::EntryOwnerId() const + { + return iOwnerId; + } + + + +/** + * SetEntryOwnerId() + * @param TSecureId : TSecureId of the owner of the cache entry. + * @return None. + * + * The function sets the TSecureId of the owner of the cache entry. + */ +inline void CMsvCacheEntry::SetEntryOwnerId(TSecureId aOwnerId) + { + iOwnerId = aOwnerId; + } + + + +/** + * ChildIdArray() + * @param None. + * @return RArray* : a handle to the iChildIdArray of the cache entry. + * + * The function returns a handle to the iChildIdArray of the cache entry, which + * is an array of child entries of this cache entry. + */ +inline RArray* CMsvCacheEntry::ChildIdArray() + { + return iChildIdArray; + } + + +/** + * SetChildIdArray() + * @param RArray*: pointer to the child array + * @return None. + * + * The function sets the child array of the cache entry to the child array passed. + */ +inline void CMsvCacheEntry::SetChildIdArray(RArray* aChildIdArray) + { + iChildIdArray = aChildIdArray; + } + + + + + +/** + * IsEntrySwappable() + * @return TBool: Returns ETrue if entry can be swappend out of cache. + * + * The function will mainly be used by cache related code + * which will check if the entry can be swapped out. + */ +inline TBool CMsvCacheEntry::IsEntrySwappable() const + { + return !(IsEntryOrStoreLocked() || IsStoreReadingLocked()); + } +