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:
Comparable<Object>

public abstract class WorkerTask<TASK_ID,PARAM,RESULT> extends Object implements Comparable<Object>
The WorkerTask is something that requires processing in the Worker queue or some IO operations, etc.
Author:
Christopher Mindus
  • Field Details Link icon

    • PRIORITY_LOWEST Link icon

      public static final int PRIORITY_LOWEST
      The priority level of the task: lowest (0).
      See Also:
    • PRIORITY_DEFAULT Link icon

      public static final int PRIORITY_DEFAULT
      The priority level of the task: default (5).
      See Also:
    • PRIORITY_HIGHEST Link icon

      public static final int PRIORITY_HIGHEST
      The priority level of the task: highest (10).
      See Also:
    • createTime Link icon

      public final long createTime
      The time when the task was created.
  • Constructor Details Link icon

    • WorkerTask Link icon

      public WorkerTask()
      Constructor for the task to perform, no task ID, no parameter, no callback, default priority.
    • WorkerTask Link icon

      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 Link icon

      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 Link icon

      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 Link icon

      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 Details Link icon

    • setCallback Link icon

      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 Link icon

      public final void execute()
      Starts execution of the task. This method is called by the invoker of the task, i.e. the Worker.
    • execute Link icon

      public abstract RESULT execute(TASK_ID id, PARAM param) throws 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:
      Exception - If some error occurs during processing of the task.
    • getModalID Link icon

      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 Link icon

      public final WorkerTask.State getState()
      Checks the current task state.
      Returns:
      The state: NOT_STARTED, RUNNING, COMPLETED, EXCEPTION.
    • getID Link icon

      public final TASK_ID getID()
      Gets the ID parameter.
      Returns:
      The TASK_ID.
    • getParam Link icon

      public final PARAM getParam()
      Gets the PARAM parameter.
      Returns:
      The PARAM.
    • getResult Link icon

      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 Link icon

      public final 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 Link icon

      public final boolean isCanceled()
      Checks if the task is canceled.
      Returns:
      true if canceled, false otherwise.
    • isCancelled Link icon

      public final boolean isCancelled()
      Checks if the task is cancelled.
      Returns:
      true if cancelled, false otherwise.
    • cancel Link icon

      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 Link icon

      public void waitForTaskEnded() throws InterruptedException
      Waits for task to end. If the task hasn't been started yet, it will wait for it to end or to be cancelled.
      Throws:
      InterruptedException - If the current thread is interrupted during the waiting.
    • getStartTime Link icon

      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 Link icon

      public long getEndTime()
      Gets the time in milliseconds (System.currentTimeMillis) when the task ended.
      Returns:
      zero if the has has not yet ended.
    • getWorker Link icon

      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 Link icon

      public final int compareTo(Object wt)
      Compares the priority level of the specified task with this one.
      Specified by:
      compareTo in interface Comparable<TASK_ID>
      Parameters:
      wt - The worker task to compare priority with.
      Returns:
      -1, 0 or 1 for the priority level.