Package javax.jmdns.impl
Class DNSStatefulObject.DefaultImplementation
- java.lang.Object
-
- java.util.concurrent.locks.ReentrantLock
-
- javax.jmdns.impl.DNSStatefulObject.DefaultImplementation
-
- All Implemented Interfaces:
java.io.Serializable,java.util.concurrent.locks.Lock,DNSStatefulObject
- Direct Known Subclasses:
HostInfo.HostInfoState,ServiceInfoImpl.ServiceInfoState
- Enclosing interface:
- DNSStatefulObject
public static class DNSStatefulObject.DefaultImplementation extends java.util.concurrent.locks.ReentrantLock implements DNSStatefulObject
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface javax.jmdns.impl.DNSStatefulObject
DNSStatefulObject.DefaultImplementation, DNSStatefulObject.DNSStatefulObjectSemaphore
-
-
Field Summary
Fields Modifier and Type Field Description private DNSStatefulObject.DNSStatefulObjectSemaphore_announcingprivate DNSStatefulObject.DNSStatefulObjectSemaphore_cancelingprivate JmDNSImpl_dnsprotected DNSState_stateprotected DNSTask_taskprivate static org.slf4j.Loggerloggerprivate static longserialVersionUID
-
Constructor Summary
Constructors Constructor Description DefaultImplementation()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadvanceState(DNSTask task)Sets the state and notifies all objects that wait on the ServiceInfo.voidassociateWithTask(DNSTask task, DNSState state)Sets the task associated with this Object.booleancancelState()Sets the state and notifies all objects that wait on the ServiceInfo.booleancloseState()Sets the state and notifies all objects that wait on the ServiceInfo.JmDNSImplgetDns()Returns the DNS associated with this object.booleanisAnnounced()Returns true, if this is an announced state.booleanisAnnouncing()Returns true, if this is an announcing state.booleanisAssociatedWithTask(DNSTask task, DNSState state)Checks if this object is associated with the task and in the same state.booleanisCanceled()Returns true, if this is a canceled state.booleanisCanceling()Returns true, if this is a canceling state.booleanisClosed()Returns true, if this is a closed state.booleanisClosing()Returns true, if this is a closing state.booleanisProbing()Returns true, if this is a probing state.booleanrecoverState()Sets the state and notifies all objects that wait on the ServiceInfo.voidremoveAssociationWithTask(DNSTask task)Remove the association of the task with this Object.booleanrevertState()Sets the state and notifies all objects that wait on the ServiceInfo.protected voidsetDns(JmDNSImpl dns)protected voidsetState(DNSState state)protected voidsetTask(DNSTask task)java.lang.StringtoString()booleanwaitForAnnounced(long timeout)Waits for the object to be announced.booleanwaitForCanceled(long timeout)Waits for the object to be canceled.private booleanwillCancel()private booleanwillClose()-
Methods inherited from class java.util.concurrent.locks.ReentrantLock
getHoldCount, getOwner, getQueuedThreads, getQueueLength, getWaitingThreads, getWaitQueueLength, hasQueuedThread, hasQueuedThreads, hasWaiters, isFair, isHeldByCurrentThread, isLocked, lock, lockInterruptibly, newCondition, tryLock, tryLock, unlock
-
-
-
-
Field Detail
-
logger
private static org.slf4j.Logger logger
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
_dns
private volatile JmDNSImpl _dns
-
_task
protected volatile DNSTask _task
-
_state
protected volatile DNSState _state
-
_announcing
private final DNSStatefulObject.DNSStatefulObjectSemaphore _announcing
-
_canceling
private final DNSStatefulObject.DNSStatefulObjectSemaphore _canceling
-
-
Method Detail
-
getDns
public JmDNSImpl getDns()
Returns the DNS associated with this object.- Specified by:
getDnsin interfaceDNSStatefulObject- Returns:
- DNS resolver
-
setDns
protected void setDns(JmDNSImpl dns)
-
associateWithTask
public void associateWithTask(DNSTask task, DNSState state)
Sets the task associated with this Object.- Specified by:
associateWithTaskin interfaceDNSStatefulObject- Parameters:
task- associated taskstate- state of the task
-
removeAssociationWithTask
public void removeAssociationWithTask(DNSTask task)
Remove the association of the task with this Object.- Specified by:
removeAssociationWithTaskin interfaceDNSStatefulObject- Parameters:
task- associated task
-
isAssociatedWithTask
public boolean isAssociatedWithTask(DNSTask task, DNSState state)
Checks if this object is associated with the task and in the same state.- Specified by:
isAssociatedWithTaskin interfaceDNSStatefulObject- Parameters:
task- associated taskstate- state of the task- Returns:
trueis the task is associated with this object,falseotherwise.
-
setTask
protected void setTask(DNSTask task)
-
setState
protected void setState(DNSState state)
- Parameters:
state- the state to set
-
advanceState
public boolean advanceState(DNSTask task)
Sets the state and notifies all objects that wait on the ServiceInfo.- Specified by:
advanceStatein interfaceDNSStatefulObject- Parameters:
task- associated task- Returns:
trueif the state was changed by this thread,falseotherwise.- See Also:
DNSState.advance()
-
revertState
public boolean revertState()
Sets the state and notifies all objects that wait on the ServiceInfo.- Specified by:
revertStatein interfaceDNSStatefulObject- Returns:
trueif the state was changed by this thread,falseotherwise.- See Also:
DNSState.revert()
-
cancelState
public boolean cancelState()
Sets the state and notifies all objects that wait on the ServiceInfo.- Specified by:
cancelStatein interfaceDNSStatefulObject- Returns:
trueif the state was changed by this thread,falseotherwise.
-
closeState
public boolean closeState()
Sets the state and notifies all objects that wait on the ServiceInfo.- Specified by:
closeStatein interfaceDNSStatefulObject- Returns:
trueif the state was changed by this thread,falseotherwise.
-
recoverState
public boolean recoverState()
Sets the state and notifies all objects that wait on the ServiceInfo.- Specified by:
recoverStatein interfaceDNSStatefulObject- Returns:
trueif the state was changed by this thread,falseotherwise.
-
isProbing
public boolean isProbing()
Returns true, if this is a probing state.- Specified by:
isProbingin interfaceDNSStatefulObject- Returns:
trueif probing state,falseotherwise
-
isAnnouncing
public boolean isAnnouncing()
Returns true, if this is an announcing state.- Specified by:
isAnnouncingin interfaceDNSStatefulObject- Returns:
trueif announcing state,falseotherwise
-
isAnnounced
public boolean isAnnounced()
Returns true, if this is an announced state.- Specified by:
isAnnouncedin interfaceDNSStatefulObject- Returns:
trueif announced state,falseotherwise
-
isCanceling
public boolean isCanceling()
Returns true, if this is a canceling state.- Specified by:
isCancelingin interfaceDNSStatefulObject- Returns:
trueif canceling state,falseotherwise
-
isCanceled
public boolean isCanceled()
Returns true, if this is a canceled state.- Specified by:
isCanceledin interfaceDNSStatefulObject- Returns:
trueif canceled state,falseotherwise
-
isClosing
public boolean isClosing()
Returns true, if this is a closing state.- Specified by:
isClosingin interfaceDNSStatefulObject- Returns:
trueif closing state,falseotherwise
-
isClosed
public boolean isClosed()
Returns true, if this is a closed state.- Specified by:
isClosedin interfaceDNSStatefulObject- Returns:
trueif closed state,falseotherwise
-
willCancel
private boolean willCancel()
-
willClose
private boolean willClose()
-
waitForAnnounced
public boolean waitForAnnounced(long timeout)
Waits for the object to be announced.- Specified by:
waitForAnnouncedin interfaceDNSStatefulObject- Parameters:
timeout- the maximum time to wait in milliseconds.- Returns:
trueif the object is announced,falseotherwise
-
waitForCanceled
public boolean waitForCanceled(long timeout)
Waits for the object to be canceled.- Specified by:
waitForCanceledin interfaceDNSStatefulObject- Parameters:
timeout- the maximum time to wait in milliseconds.- Returns:
trueif the object is canceled,falseotherwise
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.util.concurrent.locks.ReentrantLock
-
-