[Title] Create Process Monitor Thread for cancel event check
authorTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 14 Dec 2011 07:14:25 +0000 (16:14 +0900)
committerTaeyoung Son <taeyoung2.son@samsung.com>
Wed, 14 Dec 2011 07:14:25 +0000 (16:14 +0900)
[Type] Feature
[Module] Sub
[Priority] Minor
[CQ#]
[Redmine#]
[Problem]
[Cause]
[Solution]

com.samsung.tizen.common/src/com/samsung/tizen/common/util/ProcessMonitorThread.java [new file with mode: 0644]

diff --git a/com.samsung.tizen.common/src/com/samsung/tizen/common/util/ProcessMonitorThread.java b/com.samsung.tizen.common/src/com/samsung/tizen/common/util/ProcessMonitorThread.java
new file mode 100644 (file)
index 0000000..4416344
--- /dev/null
@@ -0,0 +1,51 @@
+package com.samsung.tizen.common.util;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+
+public class ProcessMonitorThread extends Thread {
+
+       private IProgressMonitor monitor;
+       private Process proc;
+       
+       public ProcessMonitorThread() {
+               super();
+               
+               this.monitor = null;
+               this.proc = null;
+       }
+       
+       public ProcessMonitorThread(Process proc, IProgressMonitor monitor) {
+               this();
+               
+               this.monitor = monitor;
+               this.proc = proc;
+       }
+
+       @Override
+       public void run() {
+               while(monitor != null) {
+                        if(monitor.isCanceled()) {
+                                if(proc != null) {
+                                        proc.destroy();
+                                        monitor.done();
+                                        return;
+                                } 
+                                // Does not need to do anything.                        
+                        }
+                        // Does not need to do anything.
+               }
+       }
+       
+       public void setMonitor(IProgressMonitor monitor) {
+               this.monitor = monitor;
+       }
+       
+       public void setProc(Process proc) {
+               this.proc = proc;
+       }
+       
+       public void setProcessMonitor(Process proc, IProgressMonitor monitor) {
+               this.monitor = monitor;
+               this.proc = proc;
+       }
+}