diff -r 08008ce8a6df -r bde600d88860 messagingfw/scheduledsendmtm/schedulesendmtm/inc/ScheduleBaseServerMtm.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingfw/scheduledsendmtm/schedulesendmtm/inc/ScheduleBaseServerMtm.h Fri Jun 04 10:32:16 2010 +0100 @@ -0,0 +1,117 @@ +// 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 SCHEDULE_BASE_SERVER_MTM_H_ +#define SCHEDULE_BASE_SERVER_MTM_H_ + +// +// +// CScheduleBaseServerMtm Declaration +// +// + + + +#include +#include + + +class CMsvScheduleSend; +class CMsvSysAgentActions; +class TMsvSendErrorAction; +class TMsvSchedulePackage; +class CRepository; + +class CScheduleBaseServerMtm : public CBaseServerMtm +/** +Base class for Server MTMs that support scheduling. + +It contains pure virtual functions which must be implemented by the Server +MTM. These functions are not required for interoperability with any other +classes, however they are essential functionality that must be implemented +by a Server MTM that support scheduling. + +CScheduleBaseServerMtm uses a class derived from CMsvScheduleSend to +interface with the task scheduler. + +@see CMsvScheduleSend +@publishedAll +@released +*/ + { +protected: + +// --- Construction --- + + IMPORT_C CScheduleBaseServerMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry* aServerEntry); + +// --- Send the Scheduled Messages --- + + IMPORT_C virtual void SendScheduledL(CMsvEntrySelection& aSelection, const TBool aMove, const TDesC8& aParameter, TRequestStatus& aStatus); + IMPORT_C virtual void ScheduleL(CMsvEntrySelection& aSelection, const TBool aMove, const TDesC8& aParameter, TRequestStatus& aStatus); + IMPORT_C virtual void ConstructL(); + IMPORT_C void LoadResourceFileL(const TDesC& aResFileName); + +// Other Schedule Commands + + IMPORT_C virtual void CheckScheduleL(const CMsvEntrySelection& aSelection, const TDesC8& aParameter, TRequestStatus& aStatus); + IMPORT_C virtual void DeleteScheduleL(const CMsvEntrySelection& aSelection, const TDesC8& aParameter, TRequestStatus& aStatus); + +// --- Pure virtual functions that must be implemented in a derived class --- + + /** + Populates a TMsvSchedulePackage object with scheduling information. + + @param aParameter Parameter information for the package + @param aMove Flag that signals whether a move or copy is required + @param aPackage On return, a populated object + */ + virtual void PopulateSchedulePackage(const TDesC8& aParameter, const TBool aMove, TMsvSchedulePackage& aPackage) const = 0; + + /** + Loads the resource file (if any) for the MTM. + */ + virtual void LoadResourceFileL() = 0; + + + IMPORT_C void Queue(TRequestStatus& aStatus); + + IMPORT_C void LoadScheduleSettingsL(CRepository& aRepository, TBool aRestoreErrorsFromResource = EFalse, TInt aErrorsResourceId = 0); + +protected: + + IMPORT_C ~CScheduleBaseServerMtm(); + +private: + + void RequestComplete(TRequestStatus* aStatus, TInt aError); + +protected: + +// --- Data Member --- + + /** Message scheduler. */ + CMsvScheduleSend* iScheduleSend; //Should be constructed and deleted by the derived class + + /** MTM resource file. */ + RResourceFile iResourceFile; + /** File server handle. */ + RFs iFs; + /** Asynchronous status word. */ + TRequestStatus* iReport; + }; + +#endif