Package com.tangosol.coherence.commonj
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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
WorkManager.WorkHolder.Event
A WorkEvent implementation.-
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
-
Field Summary
Fields Modifier and Type Field Description protected commonj.work.WorkListener
m_listener
A work listener associated with the corresponding Work.protected List
m_listWaits
A list of collections waiting for this Work to complete.protected long
m_lWorkId
The corresponding work id.protected Member
m_member
The server Member that is to run the Work.protected InvocationService
m_service
The underlying Invocation service.protected WorkManager.WorkStatus
m_status
Current Work status.
-
Constructor Summary
Constructors Constructor Description 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addWait(Collection collWait)
Add a collection to a wait list.int
compareTo(Object o)
Compare this WorkItem with the specified object for order.boolean
equals(Object o)
Compare this WorkItem with the specified object for equality.commonj.work.WorkListener
getListener()
Return the associated WorkListener.commonj.work.WorkManager
getPinnedWorkManager()
Return a pinned WorkManager which represents the JVM that was used to execute this Work.commonj.work.Work
getResult()
Return the Work once it has completed.InvocationService
getService()
Return the InvocationService used to execute the corresponding Work.int
getStatus()
Return the current status of dispatching the Work.Member
getTargetMember()
Return the Member that the corresponding Work is to be executed at.Collection[]
getWaits()
Assemble an array of collection that wait for this Work.long
getWorkId()
Return the work id.WorkManager.WorkStatus
getWorkStatus()
Return the WorkStatus object.int
hashCode()
Return a hash code value for this WorkHolder.void
release()
Calls the remote Work object'sWork.release()
method.void
removeWait(Collection collWait)
Remove a collection from a wait list.protected void
setWorkStatus(WorkManager.WorkStatus status)
Update the WorkStatus.String
toString()
Return a string representation of the WorkHolder object.-
Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
-
-
-
-
Field Detail
-
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 Detail
-
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 idlistener
- the WorkListenerservice
- the InvocationService to usemember
- the target Member
-
-
Method Detail
-
getStatus
public int getStatus()
Return the current status of dispatching the Work. SeeWorkEvent
for the values.- Specified by:
getStatus
in interfacecommonj.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 interfacecommonj.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 interfacecommonj.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'sWork.release()
method.- Specified by:
release
in interfacecommonj.work.RemoteWorkItem
-
compareTo
public int compareTo(Object o)
Compare this WorkItem with the specified object for order.- Specified by:
compareTo
in interfaceComparable
-
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 theaddWait(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.
-
equals
public boolean equals(Object o)
Compare this WorkItem with the specified object for equality.
-
-