net.i2p.router

## Class RouterThrottleImpl

- java.lang.Object
- - net.i2p.router.RouterThrottleImpl

- All Implemented Interfaces:
    RouterThrottle
  Direct Known Subclasses:
    RouterDoSThrottle

       class RouterThrottleImpl
      extends Object
      implements RouterThrottle

  Simple throttle that basically stops accepting messages or nontrivial requests if the jobQueue lag is too large.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `TUNNEL_ACCEPT` tunnel acceptance

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RouterThrottleImpl(RouterContext context)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `acceptNetDbLookupRequest(Hash key)` Deprecated. unused, function moved to netdb
    `boolean` | `acceptNetworkMessage()` Should we accept any more data from the network for any sort of message, taking into account our current load, or should we simply slow down?
    `int` | `acceptTunnelRequest()` Should we accept the request to participate in the given tunnel, taking into account our current load and bandwidth usage commitments?
    `protected RouterContext` | `getContext()`
    `double` | `getInboundRateDelta()` How much faster (or if negative, slower) we are receiving data as opposed to our longer term averages?
    `long` | `getMessageDelay()` How backed up we are at the moment processing messages (in milliseconds)
    `long` | `getTunnelLag()` How backed up our tunnels are at the moment (in milliseconds)
    `String` | `getTunnelStatus()` Message on the state of participating tunnel acceptance
    `void` | `setTunnelStatus(String msg)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### TUNNEL_ACCEPT

          public static final int TUNNEL_ACCEPT

      tunnel acceptance
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### RouterThrottleImpl

          public RouterThrottleImpl(RouterContext context)

  - ### Method Detail

    - #### acceptNetworkMessage

          public boolean acceptNetworkMessage()

      Description copied from interface: `RouterThrottle`
      Should we accept any more data from the network for any sort of message, taking into account our current load, or should we simply slow down?
      Specified by:
        `acceptNetworkMessage` in interface `RouterThrottle`

    - #### acceptNetDbLookupRequest

          public boolean acceptNetDbLookupRequest(Hash key)

      Deprecated. unused, function moved to netdb
      Description copied from interface: `RouterThrottle`
      Should we accept the netDb lookup message, replying either with the value or some closer peers, or should we simply drop it due to overload?
      Specified by:
        `acceptNetDbLookupRequest` in interface `RouterThrottle`

    - #### acceptTunnelRequest

          public int acceptTunnelRequest()

      Description copied from interface: `RouterThrottle`
      Should we accept the request to participate in the given tunnel, taking into account our current load and bandwidth usage commitments?
      Specified by:
        `acceptTunnelRequest` in interface `RouterThrottle`
      Returns:
        0 if it should be accepted, higher values for more severe rejection

    - #### getMessageDelay

          public long getMessageDelay()

      Description copied from interface: `RouterThrottle`
      How backed up we are at the moment processing messages (in milliseconds)
      Specified by:
        `getMessageDelay` in interface `RouterThrottle`

    - #### getTunnelLag

          public long getTunnelLag()

      Description copied from interface: `RouterThrottle`
      How backed up our tunnels are at the moment (in milliseconds)
      Specified by:
        `getTunnelLag` in interface `RouterThrottle`

    - #### getInboundRateDelta

          public double getInboundRateDelta()

      Description copied from interface: `RouterThrottle`
      How much faster (or if negative, slower) we are receiving data as opposed to our longer term averages?
      Specified by:
        `getInboundRateDelta` in interface `RouterThrottle`

    - #### getTunnelStatus

          public String getTunnelStatus()

      Description copied from interface: `RouterThrottle`
      Message on the state of participating tunnel acceptance
      Specified by:
        `getTunnelStatus` in interface `RouterThrottle`

    - #### setTunnelStatus

          public void setTunnelStatus(String msg)

      Specified by:
        `setTunnelStatus` in interface `RouterThrottle`

    - #### getContext

          protected RouterContext getContext()