01: /*
02: * The contents of this file are subject to the Sapient Public License
03: * Version 1.0 (the "License"); you may not use this file except in compliance
04: * with the License. You may obtain a copy of the License at
05: * http://carbon.sf.net/License.html.
06: *
07: * Software distributed under the License is distributed on an "AS IS" basis,
08: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
09: * the specific language governing rights and limitations under the License.
10: *
11: * The Original Code is The Carbon Component Framework.
12: *
13: * The Initial Developer of the Original Code is Sapient Corporation
14: *
15: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
16: */
17:
18: package org.sape.carbon.services.threadpool;
19:
20: /**
21: * An object that implements this interface is returned by the ThreadPool
22: * execute methods. This object can be used to get information about the status
23: * of the task and why it failed. It can also be used to wait until the task
24: * completes.
25: *
26: * <br>Copyright 2002 Sapient
27: * @since carbon 1.2
28: * @author Douglas Voet, Nov 5, 2002
29: * @version $Revision: 1.5 $($Author: dvoet $ / $Date: 2003/11/20 18:49:59 $)
30: */
31: public interface TaskInfo {
32: /**
33: * Gets the task's status. Note that if either the
34: * QueueFullPolicyEnum.DISCARD or QueueFullPolicyEnum.DISCARD_OLDEST
35: * policies are used, a task may never get out of the
36: * TaskStatusEnum.PENDING state.
37: *
38: * @return status
39: */
40: TaskStatusEnum getStatus();
41:
42: /**
43: * Waits indefinitely for the task to complete. If the task has already
44: * completed, it returns.
45: *
46: * @throws InterruptedException
47: */
48: void waitUntilExecuted() throws InterruptedException;
49:
50: /**
51: * Waits a given amout of time for the task to complete. You can check
52: * the status of the task afterward to see if it actually completed or
53: * timed out. If the task has already completed, it returns.
54: *
55: * @param miliseconds timout in miliseconds
56: * @throws InterruptedException
57: */
58: void waitUntilExecuted(long miliseconds)
59: throws InterruptedException;
60:
61: /**
62: * Gets the cause of task failure.
63: *
64: * @return the exception that caused the failure, or null if the task
65: * did not complete or completed successfully.
66: */
67: Throwable getFailureCause();
68:
69: /**
70: * Gets the name of the task as it was passed in to the
71: * ThreadPool.execute method.
72: * @return name
73: */
74: String getTaskName();
75:
76: }
|