messagingfw/sendas/test/unit/inc/SENDAS2MTM.H
changeset 0 8e480a14352b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingfw/sendas/test/unit/inc/SENDAS2MTM.H	Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,202 @@
+// Copyright (c) 2004-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 <mtmuids.h>
+#include <mtclbase.h>
+
+_LIT(KTestSendas2MtmDefaultsFolder, "c:\\test\\sendas2\\%08X.default");
+
+class CSendMtm : public CBaseMtm
+	{
+public:
+	IMPORT_C static CSendMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession);
+	~CSendMtm();
+	//
+	// from MMsvEntryObserver
+	void HandleEntryEvent(TMsvEntryEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3);
+	//
+	// from CBaseMtm
+	void SaveMessageL(); 
+	void LoadMessageL();
+	CMsvOperation* ReplyL  (TMsvId aDestination,   TMsvPartList aPartlist, TRequestStatus& aCompletionStatus);
+	CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
+	TMsvPartList ValidateMessage(TMsvPartList aPartList);
+	TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList);
+	//const CDesCArray& AddresseeList();
+	const CMsvRecipientList& AddresseeList();
+	void AddAddresseeL(const TDesC& aRealAddress);
+	void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
+	void RemoveAddressee(TInt aIndex);
+	void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter);
+	CMsvOperation*  InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus);
+	//
+	TInt QueryCapability(TUid aCapability, TInt& aResponse); 
+	virtual void SetSubjectL(const TDesC& aSubject); 
+	//
+ 	virtual TMsvId DefaultServiceL() const;
+ 	virtual void RemoveDefaultServiceL();
+ 	virtual void ChangeDefaultServiceL(const TMsvId& aService);
+ 	//
+	virtual void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress);
+	virtual void AddAddresseeL(TMsvRecipientType aType, const TDesC& aRealAddress, const TDesC& aAlias);
+protected:
+	//
+	// from CBaseMtm
+	void ContextEntrySwitched();
+	//
+private:
+	CSendMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession);
+	//
+private:
+	RFs& iFs;
+	};
+
+
+
+EXPORT_C CSendMtm* CSendMtm::NewL(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession)
+	{
+	CSendMtm* myclntmtm=new(ELeave) CSendMtm(aRegisteredMtmDll, aSession);
+	return myclntmtm;
+	}
+
+CSendMtm::~CSendMtm()
+	{
+	}
+
+void CSendMtm::HandleEntryEvent(TMsvEntryEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/)
+	{
+	}
+
+void CSendMtm::SaveMessageL()
+	{
+	CMsvStore* store = iMsvEntry->EditStoreL();
+	CleanupStack::PushL(store);
+	StoreBodyL(*store);
+	store->CommitL();
+	CleanupStack::PopAndDestroy(); // store
+	}
+
+void CSendMtm::LoadMessageL()
+	{
+	CMsvStore* store = iMsvEntry->ReadStoreL();
+	CleanupStack::PushL(store);
+	RestoreBodyL(*store);
+	CleanupStack::PopAndDestroy(); // store
+	}
+
+CMsvOperation* CSendMtm::ReplyL(TMsvId /*aDestination*/, TMsvPartList /*aPartlist*/, TRequestStatus& /*aCompletionStatus*/)
+	{
+	return NULL;
+	}
+
+CMsvOperation* CSendMtm::ForwardL(TMsvId /*aDestination*/, TMsvPartList /*aPartList*/, TRequestStatus& /*aCompletionStatus*/)
+	{
+	return NULL;
+	}
+
+TMsvPartList CSendMtm::Find(const TDesC& /*aTextToFind*/, TMsvPartList /*aPartList*/)
+	{
+	return 0;
+	}
+
+const CMsvRecipientList& CSendMtm::AddresseeList()
+	{
+	return *iAddresseeList;
+	}
+
+void CSendMtm::AddAddresseeL(const TDesC& aRealAddress)
+	{
+	iAddresseeList->AppendL(aRealAddress);
+	}
+
+void CSendMtm::AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias)
+	{
+	TBuf<256> buf;
+	buf.Copy(aAlias);
+	buf.Append(_L(" <"));
+	buf.Append(aRealAddress);
+	buf.Append(_L(">"));
+	iAddresseeList->AppendL(buf);
+	}
+
+void CSendMtm::RemoveAddressee(TInt aIndex)
+	{
+	iAddresseeList->Delete(aIndex);
+	}
+
+void CSendMtm::ContextEntrySwitched()
+	{
+	}
+
+void CSendMtm::InvokeSyncFunctionL(TInt /*aFunctionId*/,const CMsvEntrySelection& /*aSelection*/, TDes8& /*aParameter*/)
+	{
+	User::Leave(KErrNotSupported);
+	}
+
+CMsvOperation* CSendMtm::InvokeAsyncFunctionL(TInt /*aFunctionId*/,const CMsvEntrySelection& /*aSelection*/, TDes8& /*aParameter*/, TRequestStatus& aCompletionStatus)
+	{
+	TRequestStatus* status=&aCompletionStatus;
+	User::RequestComplete(status,KErrNotSupported);
+	return NULL;;
+	}
+
+TMsvId CSendMtm::DefaultServiceL() const
+	{
+	TFileName filename;
+	filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+	TPckgBuf<TMsvId> msvbuf;
+	RFile file;
+	CleanupClosePushL(file);
+	
+	if (file.Open(iFs, filename, EFileRead) == KErrNone)
+		{
+		User::LeaveIfError(file.Read(msvbuf));
+		}
+	else
+		{
+		User::Leave(KErrNotFound);
+		}
+	CleanupStack::PopAndDestroy(&file);
+	return msvbuf();		
+	}
+
+void CSendMtm::RemoveDefaultServiceL()
+	{
+	TFileName filename;
+	filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+	iFs.Delete(filename);
+	}
+
+void CSendMtm::ChangeDefaultServiceL(const TMsvId& aService)
+	{
+	TFileName filename;
+	filename.Format(KTestSendas2MtmDefaultsFolder, Type().iUid);
+	TPckgBuf<TMsvId> msvbuf;
+	msvbuf() = aService;
+	RFile file;
+	CleanupClosePushL(file);
+	iFs.MkDirAll(filename);
+	User::LeaveIfError(file.Replace(iFs, filename, EFileRead) == KErrNone);
+	User::LeaveIfError(file.Write(msvbuf));
+	CleanupStack::PopAndDestroy(&file);
+	}
+	
+CSendMtm::CSendMtm(CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aSession) :
+	CBaseMtm(aRegisteredMtmDll, aSession), iFs(aSession.FileSession())
+	{
+	__DECLARE_NAME(_S("CSendAs2Mtm"));
+	}
+
+