1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package org.utgenome.gwt.utgb.client.util;
26
27 import com.google.gwt.user.client.Command;
28 import com.google.gwt.user.client.DeferredCommand;
29 import com.google.gwt.user.client.Timer;
30 import com.google.gwt.user.client.rpc.AsyncCallback;
31
32 public abstract class Worker implements Command {
33
34 private Timer timer = null;
35 private WorkQueue workQueue;
36 private Command command = null;
37
38 public Worker(WorkQueue workQueue, Command command) {
39 this.workQueue = workQueue;
40 }
41
42 public class WorkerCallback implements AsyncCallback<Object> {
43 public void onFailure(Throwable caught) {
44 handleFailure(caught);
45 }
46
47 public void onSuccess(Object result) {
48 handleSuccess();
49 }
50
51 }
52
53 public abstract void execute();
54
55 public void handleFailure(Throwable caught) {
56
57 }
58
59 public void handleSuccess() {
60 if (workQueue.hasNextWorker())
61 DeferredCommand.addCommand(workQueue.nextWorker());
62 }
63 }