windowing/windowserverplugins/openwfc/src/openwfcjob.cpp
changeset 0 5d03bc08d59c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/windowing/windowserverplugins/openwfc/src/openwfcjob.cpp	Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,86 @@
+// Copyright (c) 1995-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 "openwfcjob.h"
+#include "openwfcjobmanager.h"
+
+TOpenWfcJob::TOpenWfcJob(COpenWfcJobManger& aJobManager):
+iJobManager(aJobManager),
+iJobId(EInvalidJobId), 
+iCallingThread(KNullThreadId),
+iCompleteRequest(NULL)
+	{
+	
+	}
+
+void TOpenWfcJob::Set(EOpenWfcJobId aJob,
+		              TThreadId aThreadId,
+		              TRequestStatus* aRequest)
+	{
+	iJobId = aJob; 
+	iCallingThread = aThreadId;
+	iCompleteRequest =aRequest;
+    JQLOG(("** TOpenWfcJob::Sett() : iCompleteRequest(0x%x) iJobId(%d)", aRequest, aJob));
+	}
+
+
+void TOpenWfcJob::Reset()
+	{
+	iJobId = EInvalidJobId; 
+	iCallingThread = KNullThreadId;
+	iCompleteRequest =NULL;
+	}
+
+TOpenWfcJob::~TOpenWfcJob()
+	{
+	}
+
+
+void TOpenWfcJob::Run()
+	{
+	switch (iJobId)
+		{
+		case EComposeJobId:
+            JQLOG(("** LAUNCH * TOpenWfcJob::Run EComposeJobId"));
+			iJobManager.DoComposeJob(*this);
+			break;
+		case EPauseCompositionJobId:
+            JQLOG(("** LAUNCH * TOpenWfcJob::Run EPauseCompositionJobId"));
+			iJobManager.DoPauseCompositionJob(*this);
+			break;
+		case EResumeCompositionJobId:
+            JQLOG(("** LAUNCH * TOpenWfcJob::Run EResumeCompositionJobId"));
+			iJobManager.DoResumeCompositionJob(*this);
+			break;
+		default:
+		    JQLOG(("** ERROR * TOpenWfcJob::Run jobId(%d)", iJobId));
+			break;
+		}
+	}
+
+void TOpenWfcJob::CompleteRequest(TInt aResult)
+    {
+    if (iCompleteRequest)
+        {
+        RThread thread;
+        
+        if (thread.Open(iCallingThread) == KErrNone)
+            {
+            JQLOG(("** TOpenWfcJob::CompleteRequest(): CompleteReq(0x%x))", iCompleteRequest));
+            thread.RequestComplete(iCompleteRequest, aResult);
+            thread.Close();
+            }
+        }
+    }