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

Fields
`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

Constructors
Constructor and Description
`BatchedRouterPreprocessor(RouterContext ctx, HopConfig cfg)` for IBGWs
`BatchedRouterPreprocessor(RouterContext ctx, TunnelCreatorConfig cfg)` for OBGWs

### Method Summary

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