messagingfw/scheduledsendmtm/test/base/inc/pigeonservermtm.h
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/scheduledsendmtm/test/base/inc/pigeonservermtm.h	Mon Jan 18 20:36:02 2010 +0200
@@ -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 __PIGEONSERVERMTM_H__
+#define __PIGEONSERVERMTM_H__
+
+#include <schedulebaseservermtm.h>
+#include <msvschedulesend.h>
+#include <msvoffpeaktime.h>
+#include "t_schsendshare.h"
+
+
+
+const TUid KUidMsgTypePigeon = {0x1000127E};
+	
+class CPigeonScheduledSend;
+class MPigeonObserver;
+
+class CPigeonServerMtm : public CScheduleBaseServerMtm
+	{
+public:
+	
+	IMPORT_C static CPigeonServerMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry& aServerEntry);
+
+	~CPigeonServerMtm();
+
+	void			ScheduleL(CMsvEntrySelection& aSelection, const TBool aMove, const TDesC8& aParameter, TRequestStatus& /*aStatus*/);
+	void			RestoreScheduleSettingsL();
+	void			SendScheduledL(CMsvEntrySelection& aSelection, const TBool aMove, const TDesC8& aParameter, TRequestStatus& aStatus);
+	void			SetFailFirstSendL(CMsvEntrySelection& aSelection);
+	void			StartCommandL(CMsvEntrySelection& aSelection, TInt aCommand, const TDesC8& aParameter, TRequestStatus& aStatus);
+
+	void			DoCancel(){};
+	void			CopyToLocalL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			CopyFromLocalL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			CopyWithinServiceL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			DeleteAllL(const CMsvEntrySelection& /*aSelection*/, TRequestStatus& /*aStatus*/){};
+	void			CreateL(TMsvEntry /*aEntry*/, TRequestStatus& /*aStatus*/){};
+	void			ChangeL(TMsvEntry /*aEntry*/, TRequestStatus& /*aStatus*/){};
+	TBool			CommandExpected(){return ETrue;};
+	const TDesC8&	Progress();
+	void			MoveToLocalL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			MoveFromLocalL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			MoveWithinServiceL(const CMsvEntrySelection& /*aSelection*/, long /*aLong*/, TRequestStatus& /*aStatus*/){};
+	void			DoRunL(){};
+	void			DoComplete(int /*i*/){};
+	void			LoadResourceFileL(){};
+	void			PopulateSchedulePackage(const TDesC8& /*aDes*/, const int /*i*/, TMsvSchedulePackage& /*aPackage*/) const{};
+
+
+
+
+private:
+	void					ConstructL();
+	void					RestoreSettingsL();
+	void					DoStartCommandL(CMsvEntrySelection& aSelection, TSchSendTestOperation aCommand, const TDesC8& aParameter, TRequestStatus& aStatus);
+							CPigeonServerMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvServerEntry* aServerEntry);// 
+	void					UpdateProgressL(const CMsvEntrySelection& aSelection);
+	CMsvScheduledEntry*		ScheduledEntryLC(TMsvId aId);
+	CMsvStore*				GetServiceEntryEditStoreLC();
+private:
+	TMsvId					iServiceId;
+	CPigeonScheduledSend*	iScheduleSend;
+	
+	TSchSendTestProgressBuf	iProgress;
+
+	TBool					iHeapFailure;
+	TInt					iNextFailure;
+	};
+
+class CPigeonScheduledEntry : public CMsvScheduledEntry 
+	{
+public:
+	IMPORT_C static CPigeonScheduledEntry*	NewL(const TMsvEntry& aMsvEntry);
+	TBool					CanSendToAnyRecipients(const TMsvSendErrorAction&);
+	TBool					CanSendToAnyRecipients(const CMsvSendErrorActions&, TMsvSendErrorAction&);
+	void					RecipientsResetRetries(){};
+	void					RecipientsIncreaseRetries(){};
+	void					RecipientsSetFailed(){};
+	TBool					RecipientsAllSent() const;
+	void					RecipientsStoreL(CMsvStore&) const{};
+	void					RecipientsRestoreL(CMsvStore&) {};
+	
+private:
+	void					ConstructL();
+	CPigeonScheduledEntry(const TMsvEntry& aMsvEntry) : CMsvScheduledEntry(aMsvEntry){};
+	};
+
+class CPigeonScheduledSend : public CMsvScheduleSend
+	{
+public:
+	IMPORT_C static CPigeonScheduledSend* NewL(CMsvServerEntry& aServerEntry);
+							~CPigeonScheduledSend();
+	CMsvScheduledEntry*		GetMessageL(const TMsvId aId) const;
+
+	void					SetupL(TSchSendTestOperation aOption);
+	void 					SaveSysAgentActionsL(CRepository& aRepository);	
+	void 					LoadSysAgentActionsL(CRepository& aRepository);
+	void 					LoadPendingConditionsTimeoutL(CRepository& aRepository);
+	void					PopulateErrorListL();
+
+private:
+
+	//Two arrays of possible values for iSettings and iErrorActions
+	//This class takes ownership of _all_ of them including the ones installed in 
+	//iSettings and iErrorActions at destructing time.
+
+	CArrayFixFlat<TMsvSendErrorAction>*			iActionsList;
+	CArrayFixFlat<TMsvOffPeakTime>*				iOffPeakList;
+
+private:
+							CPigeonScheduledSend(CMsvServerEntry& aServerEntry)
+								: CMsvScheduleSend(aServerEntry){};
+	void					ConstructL();
+
+	enum					TActions
+								{
+								EActionDefault = 0,
+								EActionImmediately = 1,
+								EActionLater = 2,
+								EActionVariable = 3,
+								EActionFail = 4
+								};
+	enum					TSettings
+								{
+								ESettingsDefault = 0,
+								ESettingsCustom = 1
+								};
+	enum					TOffPeak
+								{
+								EOffPeakCurrent = 0,
+								EOffPeakFinished = 1,
+								EOffPeakFuture = 2
+								};
+
+	// Add all the different possible settings/actions to the lists
+	void					PopulateSettingsL();
+	void					PopulateActionsListL();
+	void					PopulateOffPeakListL();
+	
+	//Set the current settings/actions from the lists
+	void					SetActionL(TActions aAction);
+	void					SetOffPeakL(TOffPeak aSetting);
+	};
+	
+#endif