1 package fr.in2p3.jsaga.engine.job.monitor.listen;
2
3 import fr.in2p3.jsaga.adaptor.job.monitor.ListenIndividualJob;
4 import fr.in2p3.jsaga.engine.job.monitor.JobMonitorCallback;
5 import fr.in2p3.jsaga.engine.job.monitor.request.JobStatusRequestor;
6 import org.ogf.saga.error.NoSuccessException;
7 import org.ogf.saga.error.TimeoutException;
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class IndividualJobStatusListener extends AbstractJobStatusListener {
22 private ListenIndividualJob m_adaptor;
23
24 public IndividualJobStatusListener(ListenIndividualJob adaptor, JobStatusRequestor requestor) {
25 super(requestor);
26 m_adaptor = adaptor;
27 }
28
29 protected void doSubscribeJob(String nativeJobId, JobMonitorCallback callback) throws TimeoutException, NoSuccessException {
30 m_adaptor.subscribeJob(nativeJobId, new IndividualJobStatusNotifier(callback));
31 }
32
33 public synchronized void unsubscribeJob(String nativeJobId) throws TimeoutException, NoSuccessException {
34 m_adaptor.unsubscribeJob(nativeJobId);
35 }
36 }