KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bindings > AsyncFuture


1 package org.objectweb.celtix.bindings;
2
3 import java.util.concurrent.ExecutionException JavaDoc;
4 import java.util.concurrent.Future JavaDoc;
5 import java.util.concurrent.TimeUnit JavaDoc;
6 import java.util.concurrent.TimeoutException JavaDoc;
7
8 import org.objectweb.celtix.context.InputStreamMessageContext;
9 import org.objectweb.celtix.context.ObjectMessageContext;
10 import org.objectweb.celtix.handlers.HandlerInvoker;
11
12 public class AsyncFuture implements Future JavaDoc<ObjectMessageContext> {
13     
14     private final Future JavaDoc<InputStreamMessageContext> futureInputStreamMsgContext;
15     private final AbstractClientBinding absClientBinding;
16     private final HandlerInvoker handlerInvoker;
17     private final DataBindingCallback callback;
18     private final ObjectMessageContext context;
19     
20     public AsyncFuture(Future JavaDoc<InputStreamMessageContext> fInputStreamMsgContext,
21                        AbstractClientBinding aClientBinding,
22                        DataBindingCallback cback,
23                        HandlerInvoker hInvoker,
24                        ObjectMessageContext ctx) {
25         futureInputStreamMsgContext = fInputStreamMsgContext;
26         absClientBinding = aClientBinding;
27         handlerInvoker = hInvoker;
28         callback = cback;
29         context = ctx;
30     }
31     
32     public synchronized ObjectMessageContext get() throws InterruptedException JavaDoc, ExecutionException JavaDoc {
33         InputStreamMessageContext ins = futureInputStreamMsgContext.get();
34         return absClientBinding.getObjectMessageContextAsync(ins, handlerInvoker, callback, context);
35     }
36
37     public boolean cancel(boolean mayInterruptIfRunning) {
38         return futureInputStreamMsgContext.cancel(mayInterruptIfRunning);
39     }
40
41     public ObjectMessageContext get(long timeout, TimeUnit JavaDoc unit)
42         throws InterruptedException JavaDoc, ExecutionException JavaDoc, TimeoutException JavaDoc {
43         InputStreamMessageContext ins = futureInputStreamMsgContext.get(timeout, unit);
44         return absClientBinding.getObjectMessageContextAsync(ins, handlerInvoker, callback, context);
45     }
46
47     public boolean isCancelled() {
48         return futureInputStreamMsgContext.isCancelled();
49     }
50
51     public boolean isDone() {
52         return futureInputStreamMsgContext.isDone();
53     }
54
55 }
56
Popular Tags