Package com.iizix
Class WorkerTask<TASK_ID,PARAM,RESULT>
- java.lang.Object
- com.iizix.WorkerTask<TASK_ID,PARAM,RESULT>
 
- Type Parameters:
- TASK_ID- The ID parameter type for the task.
- PARAM- The parameter type for the task.
- RESULT- The result type for the task.
 - All Implemented Interfaces:
- java.lang.Comparable<java.lang.Object>
 - public abstract class WorkerTask<TASK_ID,PARAM,RESULT> extends java.lang.Object implements java.lang.Comparable<java.lang.Object>The WorkerTask is something that requires processing in the Worker queue or some IO operations, etc.- Author:
- Christopher Mindus
 
- Nested Class Summary- Nested Classes - Modifier and Type - Class - Description - static class- WorkerTask.StateTask states.
 - Field Summary- Fields - Modifier and Type - Field - Description - long- createTimeThe time when the task was created.- static int- PRIORITY_DEFAULTThe priority level of the task: default (5).- static int- PRIORITY_HIGHESTThe priority level of the task: highest (10).- static int- PRIORITY_LOWESTThe priority level of the task: lowest (0).
 - Constructor Summary- Constructors - Constructor - Description - WorkerTask()Constructor for the task to perform, no task ID, no parameter, no callback, default priority.- WorkerTask(PARAM param)Constructor for the task to perform, no task ID, no callback, default priority.- WorkerTask(TASK_ID id, PARAM param)Constructor for the task to perform, no callback, default priority.- WorkerTask(TASK_ID id, PARAM param, WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback)Constructor for the task to perform, default priority.- WorkerTask(TASK_ID id, PARAM param, WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback, int priority)Constructor for the task to perform.
 - Method Summary- All Methods Instance Methods Abstract Methods Concrete Methods - Modifier and Type - Method - Description - boolean- cancel(boolean interruptTaskThread)Cancels the task.- int- compareTo(java.lang.Object wt)Compares the priority level of the specified task with this one.- void- execute()Starts execution of the task.- abstract RESULT- execute(TASK_ID id, PARAM param)Start execution of the task with the implementation specific task ID and parameter.- long- getEndTime()Gets the time in milliseconds (System.currentTimeMillis) when the task ended.- java.lang.Throwable- getException()Gets the exception thrown by the task if it completed with an exception.- TASK_ID- getID()Gets the ID parameter.- int- getModalID()Gets the modal ID when the modality extends beyond this process, e.g.- PARAM- getParam()Gets the- PARAMparameter.- RESULT- getResult()Gets the result of the task if it has completed successfully.- long- getStartTime()Gets the time in milliseconds (System.currentTimeMillis) when the task was started.- WorkerTask.State- getState()Checks the current task state.- WorkerNIO- getWorker()Gets the worker associated with this task.- boolean- isCanceled()Checks if the task is canceled.- boolean- isCancelled()Checks if the task is cancelled.- void- setCallback(WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback)Sets the callback function that is called upon end of the task, called regardless if a result is set for normal completion, or an exception.- void- waitForTaskEnded()Waits for task to end.
 
- Field Detail- PRIORITY_LOWEST- public static final int PRIORITY_LOWEST The priority level of the task: lowest (0).- See Also:
- Constant Field Values
 
 - PRIORITY_DEFAULT- public static final int PRIORITY_DEFAULT The priority level of the task: default (5).- See Also:
- Constant Field Values
 
 - PRIORITY_HIGHEST- public static final int PRIORITY_HIGHEST The priority level of the task: highest (10).- See Also:
- Constant Field Values
 
 - createTime- public final long createTime The time when the task was created.
 
 - Constructor Detail- WorkerTask- public WorkerTask() Constructor for the task to perform, no task ID, no parameter, no callback, default priority.
 - WorkerTask- public WorkerTask(PARAM param) Constructor for the task to perform, no task ID, no callback, default priority.- Parameters:
- param- The implementation specific parameter, or null for none.
 
 - WorkerTask- public WorkerTask(TASK_ID id, PARAM param) Constructor for the task to perform, no callback, default priority.- Parameters:
- id- The implementation specific task ID.
- param- The implementation specific parameter, or null for none.
 
 - WorkerTask- public WorkerTask(TASK_ID id, PARAM param, WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback) Constructor for the task to perform, default priority.- Parameters:
- id- The implementation specific task ID.
- param- The implementation specific parameter, or null for none.
- callback- The callback function to call when task ends or is cancelled, null for none.
 
 - WorkerTask- public WorkerTask(TASK_ID id, PARAM param, WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback, int priority) Constructor for the task to perform.- Parameters:
- id- The implementation specific task ID.
- param- The implementation specific parameter, or null for none.
- callback- The callback function to call when task ends or is cancelled, null for none.
- priority- The priority of the task.
 
 
 - Method Detail- setCallback- public final void setCallback(WorkerTaskEnded<TASK_ID,PARAM,RESULT> callback) Sets the callback function that is called upon end of the task, called regardless if a result is set for normal completion, or an exception.- Parameters:
- callback- The callback function to call when task ends or is cancelled, null for none.
 
 - execute- public final void execute() Starts execution of the task. This method is called by the invoker of the task, i.e. the Worker.
 - execute- public abstract RESULT execute(TASK_ID id, PARAM param) throws java.lang.Exception Start execution of the task with the implementation specific task ID and parameter.- Parameters:
- id- The implementation specific task ID.
- param- The implementation specific parameter, or null for none.
- Returns:
- The return code.
- Throws:
- java.lang.Exception- If some error occurs during processing of the task.
 
 - getModalID- public final int getModalID() Gets the modal ID when the modality extends beyond this process, e.g. from Server to Client, where Client will reply later to Server.- Returns:
- The modal ID, zero indicates no modality for the task.
 
 - getState- public final WorkerTask.State getState() Checks the current task state.- Returns:
- The state: NOT_STARTED, RUNNING, COMPLETED, EXCEPTION.
 
 - getID- public final TASK_ID getID() Gets the ID parameter.- Returns:
- The TASK_ID.
 
 - getParam- public final PARAM getParam() Gets the- PARAMparameter.- Returns:
- The PARAM.
 
 - getResult- public final RESULT getResult() Gets the result of the task if it has completed successfully.- Returns:
- The return result from the task, or null if the task has not yet or didn't complete normally.
 
 - getException- public final java.lang.Throwable getException() Gets the exception thrown by the task if it completed with an exception.- Returns:
- The exception thrown by the task, or null if it completed normally or has not yet completed.
 
 - isCanceled- public final boolean isCanceled() Checks if the task is canceled.- Returns:
- true if canceled, false otherwise.
 
 - isCancelled- public final boolean isCancelled() Checks if the task is cancelled.- Returns:
- true if cancelled, false otherwise.
 
 - cancel- public boolean cancel(boolean interruptTaskThread) Cancels the task.- Parameters:
- interruptTaskThread- Flag indicating if the task thread should be interrupted (if running) with call to- thread.interrupt();.
- Returns:
- true for success, false for failure.
 
 - waitForTaskEnded- public void waitForTaskEnded() throws java.lang.InterruptedExceptionWaits for task to end. If the task hasn't been started yet, it will wait for it to end or to be cancelled.- Throws:
- java.lang.InterruptedException- If the current thread is interrupted during the waiting.
 
 - getStartTime- public long getStartTime() Gets the time in milliseconds (System.currentTimeMillis) when the task was started.- Returns:
- zero if the has has not yet been started.
 
 - getEndTime- public long getEndTime() Gets the time in milliseconds (System.currentTimeMillis) when the task ended.- Returns:
- zero if the has has not yet ended.
 
 - getWorker- public final WorkerNIO getWorker() Gets the worker associated with this task.- Returns:
- The worker for the task, null if the task has not yet been added to the worker queue.
 
 - compareTo- public final int compareTo(java.lang.Object wt) Compares the priority level of the specified task with this one.- Specified by:
- compareToin interface- java.lang.Comparable<TASK_ID>
- Parameters:
- wt- The worker task to compare priority with.
- Returns:
- -1, 0 or 1 for the priority level.