net.i2p.router.tunnel
Class BatchedRouterPreprocessor

java.lang.Object
  extended by net.i2p.router.tunnel.TrivialPreprocessor
      extended by net.i2p.router.tunnel.BatchedPreprocessor
          extended by net.i2p.router.tunnel.BatchedRouterPreprocessor
All Implemented Interfaces:
TunnelGateway.QueuePreprocessor

public class BatchedRouterPreprocessor
extends BatchedPreprocessor

Honor the 'batchFrequency' tunnel pool setting or the 'router.batchFrequency' router config setting, and track fragmentation.


Field Summary
protected  HopConfig _hopConfig
           
protected  RouterContext _routerContext
           
static int DEFAULT_BATCH_FREQUENCY
          for IBGWs for efficiency (not our data)
static int OB_CLIENT_BATCH_FREQ
          for client OBGWs only (our data)
static int OB_EXPL_BATCH_FREQ
          for exploratory OBGWs only (our tunnel tests and build messages)
static java.lang.String PROP_BATCH_FREQUENCY
          How frequently should we flush non-full messages, in milliseconds This goes in I2CP custom options for the pool.
static java.lang.String PROP_ROUTER_BATCH_FREQUENCY
          This goes in router advanced config
 
Fields inherited from class net.i2p.router.tunnel.BatchedPreprocessor
DEFAULT_DELAY
 
Fields inherited from class net.i2p.router.tunnel.TrivialPreprocessor
_context, _dataCache, _log, IV_SIZE, PREPROCESSED_SIZE
 
Constructor Summary
BatchedRouterPreprocessor(RouterContext ctx, HopConfig cfg)
          for IBGWs
BatchedRouterPreprocessor(RouterContext ctx, TunnelCreatorConfig cfg)
          for OBGWs
 
Method Summary
protected  long getSendDelay()
          how long should we wait before flushing
protected  void notePreprocessing(long messageId, int numFragments, int totalLength, java.util.List<java.lang.Long> messageIds, java.lang.String msg)
           
 
Methods inherited from class net.i2p.router.tunnel.BatchedPreprocessor
getDelayAmount, preprocessQueue, send
 
Methods inherited from class net.i2p.router.tunnel.TrivialPreprocessor
getInstructionAugmentationSize, getInstructionsSize, preprocess, writeFirstFragment, writeSubsequentFragment
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_routerContext

protected RouterContext _routerContext

_hopConfig

protected HopConfig _hopConfig

PROP_BATCH_FREQUENCY

public static final java.lang.String PROP_BATCH_FREQUENCY
How frequently should we flush non-full messages, in milliseconds This goes in I2CP custom options for the pool. Only applies to OBGWs.

See Also:
Constant Field Values

PROP_ROUTER_BATCH_FREQUENCY

public static final java.lang.String PROP_ROUTER_BATCH_FREQUENCY
This goes in router advanced config

See Also:
Constant Field Values

OB_CLIENT_BATCH_FREQ

public static final int OB_CLIENT_BATCH_FREQ
for client OBGWs only (our data)

See Also:
Constant Field Values

OB_EXPL_BATCH_FREQ

public static final int OB_EXPL_BATCH_FREQ
for exploratory OBGWs only (our tunnel tests and build messages)

See Also:
Constant Field Values

DEFAULT_BATCH_FREQUENCY

public static final int DEFAULT_BATCH_FREQUENCY
for IBGWs for efficiency (not our data)

See Also:
Constant Field Values
Constructor Detail

BatchedRouterPreprocessor

public BatchedRouterPreprocessor(RouterContext ctx,
                                 TunnelCreatorConfig cfg)
for OBGWs


BatchedRouterPreprocessor

public BatchedRouterPreprocessor(RouterContext ctx,
                                 HopConfig cfg)
for IBGWs

Method Detail

getSendDelay

protected long getSendDelay()
how long should we wait before flushing

Overrides:
getSendDelay in class BatchedPreprocessor

notePreprocessing

protected void notePreprocessing(long messageId,
                                 int numFragments,
                                 int totalLength,
                                 java.util.List<java.lang.Long> messageIds,
                                 java.lang.String msg)
Overrides:
notePreprocessing in class TrivialPreprocessor