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: import java.util.List;
21:
22: import org.sape.carbon.core.component.FunctionalInterface;
23:
24: /**
25: * Thread pool components manage a number of Threads that can be used to
26: * execute miscellaneous tasks.
27: *
28: * <br>Copyright 2002 Sapient
29: * @since carbon 2.1
30: * @author Douglas Voet, Nov 5, 2002
31: * @version $Revision: 1.5 $($Author: dvoet $ / $Date: 2003/11/20 18:49:59 $)
32: */
33: public interface ThreadPool extends FunctionalInterface {
34:
35: /**
36: * Queues a task for execution.
37: *
38: * @param task the Runnable object that will be executed
39: * @param taskName the name of the task, used for logging and tracking
40: * @return an object that can be used to track task status
41: */
42: TaskInfo execute(Runnable task, String taskName);
43:
44: /**
45: * Queues a task for execution. Note that callbacks may execute on the
46: * pooled thread that executed the task.
47: *
48: * @param task the Runnable object that will be executed
49: * @param taskName the name of the task, used for logging and tracking
50: * @param callback the callback object that will be called when the task
51: * completes
52: * @return an object that can be used to track task status
53: */
54: TaskInfo execute(Runnable task, String taskName,
55: TaskCallback callback);
56:
57: /**
58: * Gets the number of tasks currently in the queue. This does not include
59: * the number of tasks currently executing.
60: * @return number of tasks in the queue
61: */
62: Integer getQueueSize();
63:
64: /**
65: * Gets the number of executions threads in the pool
66: * @return pool size
67: */
68: Integer getPoolSize();
69:
70: /**
71: * Gets a read-only list of the tasks that failed during execution
72: * @return read-only list of the tasks that failed during execution
73: */
74: List getFailedTasks();
75: }
|