Package net.i2p.util

Class SocketTimeout

All Implemented Interfaces:
Runnable

public class SocketTimeout
extends SimpleTimer2.TimedEvent
Implements one or two timers; one for inactivity, that is reset by resetTimer(), and optionally, a total time since instantiation, that is configured by setTotalTimeoutPeriod(). On timer expiration, this will close a provided socket, and/or run a configured job. Deprecated for external use. It is only used by EepGet, its subclasses, and Syndie. Take care not to break Syndie. The only advantage seems to be a total timeout period, which is the second argument to EepGet.fetch(headerTimeout, totalTimeout, inactivityTimeout), which is most likely always set to -1. Not for use by plugins or external applications, subject to change. Use socket.setsotimeout instead?
  • Constructor Details

    • SocketTimeout

      public SocketTimeout​(long delay)
      Parameters:
      delay - The inactivity delay, greater than zero
    • SocketTimeout

      public SocketTimeout​(Socket socket, long delay)
      If socket is non-null, or is set later by setSocket(), it will be closed when the timer expires.
      Parameters:
      socket - may be null
      delay - The inactivity delay, greater than zero
  • Method Details

    • timeReached

      public void timeReached()
      Description copied from class: SimpleTimer2.TimedEvent
      Simple interface for events to be queued up and notified on expiration the time requested has been reached (this call should NOT block, otherwise the whole SimpleTimer gets backed up)
      Specified by:
      timeReached in class SimpleTimer2.TimedEvent
    • cancel

      public boolean cancel()
      Change in return value from void to boolean in 0.9.3 accidentally broke Syndie, sorry. Recompile Syndie to fix it.
      Overrides:
      cancel in class SimpleTimer2.TimedEvent
      Returns:
      true if cancelled
    • setSocket

      public void setSocket​(Socket s)
      If non-null, will be closed when the timer expires.
    • resetTimer

      public void resetTimer()
      Call when there is activity
    • setInactivityTimeout

      public void setInactivityTimeout​(long delay)
      Changes the delay provided in the constructor
      Parameters:
      delay - greater than zero
    • setTotalTimeoutPeriod

      public void setTotalTimeoutPeriod​(long timeoutPeriod)
      If greater than zero, must be greater than the inactivity timeout.
      Parameters:
      timeoutPeriod - Time since constructed, or less than or equal to zero to disable
    • setTimeoutCommand

      public void setTimeoutCommand​(Runnable job)
      If non-null, will be run when the timer expires.
    • toString

      public String toString()
      Overrides:
      toString in class Object