net.i2p.router.tunnel
Class ThrottledPumpedTunnelGateway

java.lang.Object
  extended by net.i2p.router.tunnel.TunnelGateway
      extended by net.i2p.router.tunnel.PumpedTunnelGateway
          extended by net.i2p.router.tunnel.ThrottledPumpedTunnelGateway

public class ThrottledPumpedTunnelGateway
extends PumpedTunnelGateway

Same as PTG, but check to see if a message should be dropped before queueing it. Used for IBGWs.

Since:
0.7.9

Nested Class Summary
 
Nested classes/interfaces inherited from class net.i2p.router.tunnel.TunnelGateway
TunnelGateway.Pending, TunnelGateway.PendingImpl, TunnelGateway.QueuePreprocessor, TunnelGateway.Receiver, TunnelGateway.Sender
 
Field Summary
 
Fields inherited from class net.i2p.router.tunnel.TunnelGateway
_context, _delayedFlush, _flushFrequency, _lastFlush, _log, _messagesSent, _preprocessor, _queue, _receiver, _sender
 
Constructor Summary
ThrottledPumpedTunnelGateway(RouterContext context, TunnelGateway.QueuePreprocessor preprocessor, TunnelGateway.Sender sender, TunnelGateway.Receiver receiver, TunnelGatewayPumper pumper, HopConfig config)
           
 
Method Summary
 void add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel)
          Possibly drop a message due to bandwidth before adding it to the preprocessor queue.
 
Methods inherited from class net.i2p.router.tunnel.PumpedTunnelGateway
pump
 
Methods inherited from class net.i2p.router.tunnel.TunnelGateway
add, getMessagesSent
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThrottledPumpedTunnelGateway

public ThrottledPumpedTunnelGateway(RouterContext context,
                                    TunnelGateway.QueuePreprocessor preprocessor,
                                    TunnelGateway.Sender sender,
                                    TunnelGateway.Receiver receiver,
                                    TunnelGatewayPumper pumper,
                                    HopConfig config)
Method Detail

add

public void add(I2NPMessage msg,
                Hash toRouter,
                TunnelId toTunnel)
Possibly drop a message due to bandwidth before adding it to the preprocessor queue. We do this here instead of in the InboundGatewayReceiver because it is much smarter to drop whole I2NP messages, where we know the message type and length, rather than tunnel messages containing I2NP fragments.

Overrides:
add in class PumpedTunnelGateway
Parameters:
msg - message to be sent through the tunnel
toRouter - router to send to after the endpoint (or null for endpoint processing)
toTunnel - tunnel to send to after the endpoint (or null for endpoint or router processing)