diff -r 9f5ae1728557 -r db3f5fa34ec7 messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduledEntry.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/scheduledsendmtm/schedulesendmtm/inc/MsvScheduledEntry.h Wed Nov 03 22:41:46 2010 +0530 @@ -0,0 +1,158 @@ +// 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: +// + +#ifndef __MSVSCHEDULEDENTRY_H__ +#define __MSVSCHEDULEDENTRY_H__ + +#include +#include + +/** +Abstract base class which stores the schedule data and recipients of a message. + +CMsvScheduledEntry does not force the Server MTM to store the message +recipients in a certain way. However, it is recommended that the Server MTM +derive its recipients class from CMsvRecipient, because the class already has +support for the number of retries to send a message to a recipient. + +CMsvScheduledEntry stores the TMsvEntry to which it relates to provide quick +access to the scheduling-related index data without needing calls to +CMsvServerEntry::SetEntry(). +However, CMsvScheduledEntry does not provide access to all the members of +the TMsvEntry. This is to stop the user of the CMsvScheduledEntry from +accessing the descriptor members of the TMsvEntry while the server entry is +not set to the TMsvEntry. + +@publishedAll +@released +*/ + +class CMsvScheduledEntry : public CBase + { +public: + /** + Tests if any of the recipients of this message can still be sent to. + + @param aErrorActions + Error-actions + + @param aAction + Default error-action + + @return True if at least one of the recipients has not been sent + the message. + */ + virtual TBool CanSendToAnyRecipients(const CMsvSendErrorActions& aErrorActions, TMsvSendErrorAction& aAction) = 0; + + /** + Tests if any of the recipients of this message can still be sent to. + + @param aAction + Default error-action + + @return True if at least one of the recipients has not been sent + the message. + */ + virtual TBool CanSendToAnyRecipients(const TMsvSendErrorAction& aAction) = 0; + + /** + Sets all the recipients' retries to zero. + */ + virtual void RecipientsResetRetries() = 0; + + /** + Increases all the recipients' retries by one. + */ + virtual void RecipientsIncreaseRetries() = 0; + + /** + Sets all the recipients' flags to sending failed. + */ + virtual void RecipientsSetFailed() = 0; + + /** + Tests if all recipients of the message have been sent successfully. + + @return True if all recipients have been sent successfully. + */ + virtual TBool RecipientsAllSent() const = 0; + + IMPORT_C virtual void StoreL(CMsvStore& aStore) const; + IMPORT_C virtual void RestoreL(CMsvStore& aStore); + + /** + Stores the recipients. + + @param aStore + Store to write to. + */ + virtual void RecipientsStoreL(CMsvStore& aStore) const = 0; + + /** + Restores the recipients. + + @param aStore + Store to read from. + */ + virtual void RecipientsRestoreL(CMsvStore& aStore) = 0; + + inline const TTime& ScheduleDate() const; + inline void SetScheduleDate(const TTime& aDate); + + inline const TBool Scheduled() const; + inline void SetScheduled(const TBool aScheduled); + + inline const TInt SendingState() const; + inline void SetSendingState(TInt aState); + + inline const TInt Error() const; + inline const TMsvId Id() const; + inline const TBool OffPeak() const; + + inline void SetFailed(const TBool aFail); + inline const TBool Failed() const; + + IMPORT_C TBool PendingConditions() const; + IMPORT_C void SetPendingConditions(TBool aPendingConditions); + + inline const TUid Mtm() const; + + IMPORT_C void Entry(TMsvEntry& aEntry) const; + +protected: + + IMPORT_C CMsvScheduledEntry(const TMsvEntry& aEntry); + +public: + + /** Message schedule data. */ + TMsvEntryScheduleData iData; + +private: + + TMsvEntry iEntry; + }; + +/** +Dynamic array of CMsvScheduledEntry objects. + +@publishedAll +@released +*/ +typedef CArrayPtrFlat CMsvScheduledEntries; + +#include + +#endif