--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msgfw_plat/send_ui_datautils_api/inc/SendUiOperationWait.h Mon Jan 18 20:36:02 2010 +0200
@@ -0,0 +1,129 @@
+/*
+* Copyright (c) 2002-2006 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: Provides asyncronous waiter.
+*
+*/
+
+
+
+#ifndef SENDUIOPERATIONWAIT_H
+#define SENDUIOPERATIONWAIT_H
+
+// INCLUDES
+class CBaseMtm;
+class CAknInputBlock;
+
+/**
+ * CSendUiOperationWait
+ *
+ * We cannot use CMuiuOperationWait because it calls
+ * CAknEnv::StopSchedulerWaitWithBusyMessage. When e.g. New message
+ * pop-up is opened from Phone idle while we are waiting previous
+ * editor launch completion, a Busy dialog is shown and it cannot
+ * be closed at all.
+ *
+ * This class is otherwise same as CMuiuOperationWait but iWait.AsyncStop
+ * is called instead of CAknEnv::StopSchedulerWaitWithBusyMessage.
+ *
+ * @lib senduidatautils
+ * @since S60 S60 v3.0
+ */
+
+NONSHARABLE_CLASS (CSendUiOperationWait) : public CActive
+ {
+
+public:
+
+ IMPORT_C static CSendUiOperationWait* NewLC(TInt aPriority = EPriorityStandard);
+
+ virtual ~CSendUiOperationWait();
+
+ /**
+ * Starts active wait operation
+ *
+ * @since S60 v3.1
+ * @param aOperation CActive derived operation, that is running
+ * @return ETrue, if wait was not interrupted. Otherwise EFalse.
+ */
+ IMPORT_C TBool Start( CActive* aOperation );
+
+ /**
+ * Starts active wait operation
+ *
+ * @since S60 v3.1
+ * @param aOperation CBaseMtmOperation derived operation, that is
+ * running
+ * @return ETrue, if wait was not interrupted. Otherwise EFalse.
+ */
+ IMPORT_C TBool Start( CBaseMtm* aBaseMtmOperation );
+
+ /**
+ * Starts active wait operation
+ *
+ * Use this, if the operation to be waited can not be canceled.
+ * Prefer using the above Start methods.
+ *
+ * @since S60 v3.0
+ * @return ETrue, For compatibility returns always.
+ */
+ IMPORT_C TBool Start();
+
+protected: // from base class CActive
+
+ CSendUiOperationWait(TInt aPriority);
+
+ void RunL();
+
+ void DoCancel();
+
+private:
+
+ void ConstructL();
+
+protected:
+
+ /**
+ * Waiter
+ */
+ CActiveSchedulerWait iWait;
+
+ /**
+ * Inputblocker harvests exit events.
+ * Own.
+ */
+ CAknInputBlock* iInputBlock;
+
+private:
+
+ /**
+ * This is ETrue, if operation has not been interrupted.
+ */
+ TBool iSuccess;
+
+ /**
+ * Operation, which can be canceled
+ * Not own.
+ */
+ CActive* iOperation;
+
+ /**
+ * Operation, which can be canceled
+ * Not own.
+ */
+ CBaseMtm* iBaseMtmOperation;
+ };
+
+#endif
+
+// End of file