public abstract class AbstractOverseer extends Object implements Overseer
Modifier and Type | Field and Description |
---|---|
protected Set<Worker> |
currentWorkers |
private static org.slf4j.Logger |
LOGGER |
protected List<TaskObserver> |
observers |
protected Map<Task,Worker> |
taskWorkerMapping |
protected Semaphore |
workersSetMutex |
Constructor and Description |
---|
AbstractOverseer() |
Modifier and Type | Method and Description |
---|---|
void |
addObserver(TaskObserver observer)
Adds the given
TaskObserver to the list of observers of this
Overseer and is notified if the state of a task changes. |
protected abstract Worker |
createWorker(Task task) |
TaskState |
getTaskState(Task task)
Returns the state of the given
Task . |
TaskState[] |
getTaskStates()
Returns the state of all
Task s managed by this Overseer. |
Worker |
getWorker(Task task)
Returns the
Worker instance that is assigned to the given task. |
void |
removeObserver(TaskObserver observer)
Removes the given
TaskObserver from the list of observers if it
exists. |
void |
reportTaskFinished(Worker worker) |
void |
reportTaskThrowedException(Worker worker,
Throwable t) |
void |
startTask(Task task)
Starts the given
Task . |
protected abstract void |
startWorker(Worker worker) |
private static final org.slf4j.Logger LOGGER
protected Semaphore workersSetMutex
protected List<TaskObserver> observers
public void startTask(Task task)
Overseer
Task
.protected abstract void startWorker(Worker worker)
public void reportTaskFinished(Worker worker)
reportTaskFinished
in interface WorkerObserver
public void reportTaskThrowedException(Worker worker, Throwable t)
reportTaskThrowedException
in interface WorkerObserver
public void addObserver(TaskObserver observer)
Overseer
TaskObserver
to the list of observers of this
Overseer
and is notified if the state of a task changes.addObserver
in interface Overseer
observer
- the TaskObserver
that should be a able to observe the
Task
s managed by this overseerpublic void removeObserver(TaskObserver observer)
Overseer
TaskObserver
from the list of observers if it
exists.removeObserver
in interface Overseer
observer
- the TaskObserver
that should be removedpublic TaskState getTaskState(Task task)
Overseer
Task
.getTaskState
in interface Overseer
task
- the Task
of which the state should be returnedTask
public TaskState[] getTaskStates()
Overseer
Task
s managed by this Overseer.getTaskStates
in interface Overseer
Task
s managed by this OverseerCopyright © 2015. All rights reserved.