Package org.eclipse.jetty.io
Class IdleTimeout
java.lang.Object
org.eclipse.jetty.io.IdleTimeout
- Direct Known Subclasses:
AbstractEndPoint
An Abstract implementation of an Idle Timeout.
This implementation is optimised that timeout operations are not cancelled on every operation. Rather timeout are allowed to expire and a check is then made to see when the last operation took place. If the idle timeout has not expired, the timeout is rescheduled for the earliest possible time a timeout could occur.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate longprivate longprivate final Schedulerprivate final AtomicReference<Scheduler.Task> private static final Logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidactivate()protected longprivate voidlonglongprivate voidabstract booleanisOpen()This abstract method should be called to check if idle timeouts should still be checked.voidnotIdle()This method should be called when non-idle activity has taken place.voidonClose()protected abstract voidonIdleExpired(TimeoutException timeout) This abstract method is called when the idle timeout has expired.voidonOpen()private voidscheduleIdleTimeout(long delay) voidsetIdleTimeout(long idleTimeout) Sets the idle timeout in milliseconds.
-
Field Details
-
LOG
-
_scheduler
-
_timeout
-
_idleTimeout
private volatile long _idleTimeout -
_idleTimestamp
private volatile long _idleTimestamp
-
-
Constructor Details
-
IdleTimeout
- Parameters:
scheduler- A scheduler used to schedule checks for the idle timeout.
-
-
Method Details
-
getScheduler
-
getIdleFor
public long getIdleFor()- Returns:
- the period of time, in milliseconds, that this object was idle
-
getIdleTimeout
public long getIdleTimeout()- Returns:
- the idle timeout in milliseconds
- See Also:
-
setIdleTimeout
public void setIdleTimeout(long idleTimeout) Sets the idle timeout in milliseconds.
A value that is less than or zero disables the idle timeout checks.
- Parameters:
idleTimeout- the idle timeout in milliseconds- See Also:
-
notIdle
public void notIdle()This method should be called when non-idle activity has taken place. -
idleCheck
private void idleCheck() -
scheduleIdleTimeout
private void scheduleIdleTimeout(long delay) -
onOpen
public void onOpen() -
activate
private void activate() -
onClose
public void onClose() -
deactivate
private void deactivate() -
checkIdleTimeout
protected long checkIdleTimeout() -
onIdleExpired
This abstract method is called when the idle timeout has expired.- Parameters:
timeout- a TimeoutException
-
isOpen
public abstract boolean isOpen()This abstract method should be called to check if idle timeouts should still be checked.- Returns:
- True if the entity monitored should still be checked for idle timeouts
-