Class WorkManager.WorkHolder

java.lang.Object
com.tangosol.util.Base
com.tangosol.coherence.commonj.WorkManager.WorkHolder
All Implemented Interfaces:
commonj.work.RemoteWorkItem, commonj.work.WorkItem, Comparable
Enclosing class:
WorkManager

protected class WorkManager.WorkHolder extends Base implements commonj.work.RemoteWorkItem
A holder for a Work object that serves as a communication intermediary between a client and a [remote] service.
  • Field Details

    • m_lWorkId

      protected long m_lWorkId
      The corresponding work id.
    • m_listener

      protected commonj.work.WorkListener m_listener
      A work listener associated with the corresponding Work.
    • m_service

      protected InvocationService m_service
      The underlying Invocation service.
    • m_member

      protected Member m_member
      The server Member that is to run the Work.
    • m_status

      protected WorkManager.WorkStatus m_status
      Current Work status.
    • m_listWaits

      protected List m_listWaits
      A list of collections waiting for this Work to complete. Usually this list contains no more than one item.
  • Constructor Details

    • WorkHolder

      public WorkHolder(long lWorkId, commonj.work.WorkListener listener, InvocationService service, Member member)
      Construct a WorkHolder for a Work with a given work id that is scheduled to be executed on a specified service.
      Parameters:
      lWorkId - the Work id
      listener - the WorkListener
      service - the InvocationService to use
      member - the target Member
  • Method Details

    • getStatus

      public int getStatus()
      Return the current status of dispatching the Work. See WorkEvent for the values.
      Specified by:
      getStatus in interface commonj.work.WorkItem
      Returns:
      the work status
      See Also:
      • WorkEvent
    • getResult

      public commonj.work.Work getResult() throws commonj.work.WorkException
      Return the Work once it has completed. If the Work threw an exception during run then the exception is re-thrown here.
      Specified by:
      getResult in interface commonj.work.WorkItem
      Returns:
      the completed Work or null if the Work is not yet complete.
      Throws:
      commonj.work.WorkException - if an exception is thrown in the Work
    • getPinnedWorkManager

      public commonj.work.WorkManager getPinnedWorkManager()
      Return a pinned WorkManager which represents the JVM that was used to execute this Work.
      Specified by:
      getPinnedWorkManager in interface commonj.work.RemoteWorkItem
      Returns:
      the WorkManager associated with the JVM that was used to execute this RemoteWorkItem
    • release

      public void release()
      Calls the remote Work object's Work.release() method.
      Specified by:
      release in interface commonj.work.RemoteWorkItem
    • compareTo

      public int compareTo(Object o)
      Compare this WorkItem with the specified object for order.
      Specified by:
      compareTo in interface Comparable
    • getWorkId

      public long getWorkId()
      Return the work id.
      Returns:
      the work id.
    • getWorkStatus

      public WorkManager.WorkStatus getWorkStatus()
      Return the WorkStatus object.
      Returns:
      the WorkStatus object
    • getService

      public InvocationService getService()
      Return the InvocationService used to execute the corresponding Work.
      Returns:
      the InvocationService reference
    • getTargetMember

      public Member getTargetMember()
      Return the Member that the corresponding Work is to be executed at.
      Returns:
      the target Member
    • getListener

      public commonj.work.WorkListener getListener()
      Return the associated WorkListener.
      Returns:
      the listener object
    • setWorkStatus

      protected void setWorkStatus(WorkManager.WorkStatus status)
      Update the WorkStatus.
      Parameters:
      status - the WorkStatus object to update
    • addWait

      public void addWait(Collection collWait)
      Add a collection to a wait list.
      Parameters:
      collWait - a collection that waits for this Work
    • removeWait

      public void removeWait(Collection collWait)
      Remove a collection from a wait list. The collection must have been added using the addWait(java.util.Collection) call.
      Parameters:
      collWait - a collection that waits for this Work
    • getWaits

      public Collection[] getWaits()
      Assemble an array of collection that wait for this Work.
      Returns:
      an array of collections that wait for this Work
    • hashCode

      public int hashCode()
      Return a hash code value for this WorkHolder.
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Compare this WorkItem with the specified object for equality.
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Return a string representation of the WorkHolder object.
      Overrides:
      toString in class Object