messagingappbase/obexmtms/irmtm/irclient/include/CIRCancelObserver.h
changeset 0 72b543305e3a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/obexmtms/irmtm/irclient/include/CIRCancelObserver.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,63 @@
+// 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:
+//
+
+#ifndef __CIRCANCELOBSERVER_H__
+#define __CIRCANCELOBSERVER_H__
+
+#include <e32std.h>
+#include <msvapi.h>
+
+/**
+This class is a CMsvOperation used to clean up entries for operations that have been queued.
+The IR server mtm only takes ownership for entries once the operation has started so this object is provided 
+as a wrapper to to the send operation to own entries for queued IR operations. The entries are only cleaned
+up if the operation has not started and only when the operation is explicitly cancelled by the user.
+@internalComponent
+*/
+class CIRCancelObserver : public CMsvOperation
+	{
+public:
+	static CIRCancelObserver* NewL(TRequestStatus& aObserverRequestStatus, CMsvSession& aSession, TMsvId aEntry);
+	virtual ~CIRCancelObserver();
+
+	TRequestStatus& Status();
+	void SetOperation(CMsvOperation* aMsvOperation);
+	
+	// from CMsvOperation
+	virtual const TDesC8& ProgressL();
+	virtual const TDesC8& FinalProgress();
+
+private:
+	CIRCancelObserver(TRequestStatus& aObserverRequestStatus, CMsvSession& aSession, TMsvId aEntry);
+	void CleanupEntryL() const;
+	void CleanupEntry() const;
+
+	// from CActive
+	void DoCancel();
+	void RunL();
+	TInt RunError(TInt aError);
+
+private:
+	/** The entry id for the entry of the IR operation.*/
+	TMsvId iEntryId;
+	
+	/** The send operation that this class owns and encapsulates.*/
+	CMsvOperation* iMsvOperation;
+
+	/** Flag to indicate if the operation has started.*/
+	TBool iOperationStarted;
+	};
+
+#endif // __CIRCANCELOBSERVER_H__