01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License as published by
11: * the Free Software Foundation; either version 2 of the License, or
12: * (at your option) any later version.
13: *
14: * Resin Open Source is distributed in the hope that it will be useful,
15: * but WITHOUT ANY WARRANTY; without even the implied warranty of
16: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17: * of NON-INFRINGEMENT. See the GNU General Public License for more
18: * details.
19: *
20: * You should have received a copy of the GNU General Public License
21: * along with Resin Open Source; if not, write to the
22: *
23: * Free Software Foundation, Inc.
24: * 59 Temple Place, Suite 330
25: * Boston, MA 02111-1307 USA
26: *
27: * @author Scott Ferguson
28: */
29:
30: package javax.resource.spi.work;
31:
32: /**
33: * Allow submission of work instances.
34: */
35: public interface WorkManager {
36: public static final long IMMEDIATE = 0;
37: public static final long INDEFINITE = Long.MAX_VALUE;
38: public static final long UNKNOWN = -1;
39:
40: /**
41: * Accepts a work instance for processing. The call blocks until
42: * the work instance completes.
43: */
44: public void doWork(Work work) throws WorkException;
45:
46: /**
47: * Accepts a work instance for processing. The call blocks until
48: * the work instance completes.
49: */
50: public void doWork(Work work, long startTimeout,
51: ExecutionContext context, WorkListener workListener)
52: throws WorkException;
53:
54: /**
55: * Accepts a work instance for processing. The call blocks until
56: * the work instance starts, but does not wait not until the completion.
57: */
58: public long startWork(Work work) throws WorkException;
59:
60: /**
61: * Accepts a work instance for processing. The call blocks until
62: * the work instance starts, but does not wait not until the completion.
63: */
64: public long startWork(Work work, long startTimeout,
65: ExecutionContext context, WorkListener listener)
66: throws WorkException;
67:
68: /**
69: * Schedules a work instance.
70: */
71: public void scheduleWork(Work work) throws WorkException;
72:
73: /**
74: * Schedules a work instance.
75: */
76: public void scheduleWork(Work work, long startTimeout,
77: ExecutionContext context, WorkListener listener)
78: throws WorkException;
79: }
|