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
`static int` `TUNNEL_ACCEPT` tunnel acceptance

### Constructor Summary

Constructors
Constructor and Description
`RouterThrottleImpl(RouterContext context)`

### Method Summary

Methods
`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()