## net.i2p.router.tunnel
Class BatchedRouterPreprocessor

    java.lang.Object
      net.i2p.router.tunnel.TrivialPreprocessor
          net.i2p.router.tunnel.BatchedPreprocessor
              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 String` `PROP_BATCH_FREQUENCY` How frequently should we flush non-full messages, in milliseconds This goes in I2CP custom options for the pool.
`static 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, List<Long> messageIds, 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 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 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,
                                     List<Long> messageIds,
                                     String msg)

  Overrides:
    `notePreprocessing` in class `TrivialPreprocessor`