diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/scheduledsendmtm/schedulesendmtm/src/MsvEntryScheduleData.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/scheduledsendmtm/schedulesendmtm/src/MsvEntryScheduleData.cpp Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,198 @@ +// Copyright (c) 1999-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: +// + +#include +#include +#include +#include + +// +// +// Type Class TMsvEntryScheduleData +// +// + +/** +Default constructor. +*/ + +EXPORT_C TMsvEntryScheduleData::TMsvEntryScheduleData() + { + Reset(); + } + + +/** +Resets the object. + +It sets all member data to zero. +*/ + +EXPORT_C void TMsvEntryScheduleData::Reset() + { + iVersion = KMsvEntryScheduleDataVersion; + iRetryCount = 0; + iTaskId = KErrNotFound; //must not be 0 because Task Scheduler may create a task with id 0 + iRef.iHandle = KErrNotFound; //must not be 0 because Task Scheduler may create a schedule with id 0 + } + + +/** +Tests if all the members are set to their default value. + +@return True if all the members are set to their default value. +*/ + +EXPORT_C TBool TMsvEntryScheduleData::IsReset() const + { + return ((iRetryCount == 0) && (iTaskId == KErrNotFound)); + } + + +/** +Restores the object from a store. + +@param aStore +Store to read from. +*/ + +EXPORT_C void TMsvEntryScheduleData::RestoreL(CMsvStore& aStore) + { + Reset(); + + if (aStore.IsPresentL(KUidMsvFileScheduleData)) + { + RMsvReadStream readStream; + readStream.OpenLC(aStore, KUidMsvFileScheduleData); + + //Internalize + InternalizeL(readStream); + + CleanupStack::PopAndDestroy(); //readStream + } + } + + +/** +Removes the object from a store. + +@param aStore +Store to remove from. + +@leave CMsvStore::IsPresentL() +@leave CMsvStore::RemoveL() +*/ + +EXPORT_C void TMsvEntryScheduleData::RemoveL(CMsvStore& aStore) const + { + if (aStore.IsPresentL(KUidMsvFileScheduleData)) + { + aStore.RemoveL(KUidMsvFileScheduleData); + } + } + + +/** +Stores the object in a store. + +This method leaves if the the object's data cannot be written to a +RMsvWriteStream stream. + +@param aStore +Store to write to. +*/ + +EXPORT_C void TMsvEntryScheduleData::StoreL(CMsvStore& aStore) const + { + RMsvWriteStream writeStream; + writeStream.AssignLC(aStore, KUidMsvFileScheduleData); + + //Externalize + ExternalizeL(writeStream); + + writeStream.CommitL(); + CleanupStack::PopAndDestroy(); //writeStream + } + + +/** +Externalises the object to the specified stream. + +@param aWriteStream +Stream to write to. +*/ + +void TMsvEntryScheduleData::ExternalizeL(RWriteStream& aWriteStream) const + { + aWriteStream.WriteInt16L(iVersion); + aWriteStream.WriteInt32L(iRetryCount); + aWriteStream.WriteInt32L(iTaskId); + aWriteStream.WriteInt32L(iRef.iHandle); + aWriteStream << iRef.iName; + } + + +/** +Internalises the object from the specified stream. + +@param aReadStream +Stream to read from. +*/ + +void TMsvEntryScheduleData::InternalizeL(RReadStream& aReadStream) + { + iVersion = aReadStream.ReadInt16L(); + + if (iVersion >= 1) + { + iRetryCount = aReadStream.ReadInt32L(); + iTaskId = aReadStream.ReadInt32L(); + iRef.iHandle = aReadStream.ReadInt32L(); + aReadStream >> iRef.iName; + } + } + + +/** +Gets how many retries have been made to send this message. + +@return Number of retries. +*/ + +EXPORT_C TInt TMsvEntryScheduleData::Retries() const + { + return iRetryCount; + } + + +/** +Adds one to the value of the iRetryCount member. +*/ + +EXPORT_C void TMsvEntryScheduleData::IncreaseRetries() + { + iRetryCount++; + } + + +/** +Sets the iRetryCount member to zero. +*/ + +EXPORT_C void TMsvEntryScheduleData::ResetRetries() + { + iRetryCount = 0; + } +