net.i2p.router.tunnel

## Class TunnelCreatorConfig

- java.lang.Object
- - net.i2p.router.tunnel.TunnelCreatorConfig

All Implemented Interfaces:
  TunnelInfo

Direct Known Subclasses:
  PooledTunnelCreatorConfig

    public class TunnelCreatorConfig
    extends Object
    implements TunnelInfo

Coordinate the info that the tunnel creator keeps track of, including what peers are in the tunnel and what their configuration is

### Field Summary

Fields
`protected RouterContext` `_context`

### Constructor Summary

Constructors
Constructor and Description
`TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound)`
`TunnelCreatorConfig(RouterContext ctx, int length, boolean isInbound, Hash destination)`

### Method Summary

Methods
`(package private) static String` `format(long date)`
`HopConfig` `getConfig(int hop)` retrieve the config for the given hop.
`Hash` `getDestination()` if this is a client tunnel, what destination is it for?
`long` `getExpiration()`
`int` `getLength()` How many hops are there in the tunnel? INCLUDING US.
`Properties` `getOptions()`
`double` `getPeakThroughputKBps()`
`Hash` `getPeer(int hop)` retrieve the peer at the given hop.
`long` `getProcessedMessagesCount()`
`TunnelId` `getReceiveTunnelId(int hop)` retrieve the tunnelId that the given hop receives messages on.
`long` `getReplyMessageId()` new style reply message id
`List<Integer>` `getReplyOrder()` component ordering in the new style request
`TunnelId` `getSendTunnelId(int hop)` retrieve the tunnelId that the given hop sends messages on.
`boolean` `getTunnelFailed()`
`int` `getTunnelFailures()`
`long` `getVerifiedBytesTransferred()` we know for sure that this many bytes travelled through the tunnel in its lifetime
`void` `incrementProcessedMessages()` take note of a message being pumped through this tunnel
`void` `incrementVerifiedBytesTransferred(int bytes)` we know for sure that the given number of bytes were sent down the tunnel fully
`boolean` `isInbound()` is this an inbound tunnel?
`void` `setExpiration(long when)`
`void` `setPeakThroughputKBps(double kBps)`
`void` `setPeer(int hop, Hash peer)`
`void` `setReplyMessageId(long id)`
`void` `setReplyOrder(List<Integer> order)`
`void` `testSuccessful(int ms)` take note that the tunnel was able to measurably Do Good in the given time
`String` `toString()`
`boolean` `tunnelFailed()` The tunnel failed a test, so (maybe) stop using it

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### _context

    protected final RouterContext _context

### Constructor Detail

#### TunnelCreatorConfig

    public TunnelCreatorConfig(RouterContext ctx,
                       int length,
                       boolean isInbound)

#### TunnelCreatorConfig

    public TunnelCreatorConfig(RouterContext ctx,
                       int length,
                       boolean isInbound,
                       Hash destination)

### Method Detail

#### getLength

    public int getLength()

How many hops are there in the tunnel? INCLUDING US. i.e. one more than the TunnelCreatorConfig length.

Specified by:
  `getLength` in interface `TunnelInfo`

#### getOptions

    public Properties getOptions()

#### getConfig

    public HopConfig getConfig(int hop)

retrieve the config for the given hop. the gateway is hop 0.

#### getReceiveTunnelId

    public TunnelId getReceiveTunnelId(int hop)

retrieve the tunnelId that the given hop receives messages on. the gateway is hop 0.

Specified by:
  `getReceiveTunnelId` in interface `TunnelInfo`

#### getSendTunnelId

    public TunnelId getSendTunnelId(int hop)

retrieve the tunnelId that the given hop sends messages on. the gateway is hop 0.

Specified by:
  `getSendTunnelId` in interface `TunnelInfo`

#### getPeer

    public Hash getPeer(int hop)

retrieve the peer at the given hop. the gateway is hop 0

Specified by:
  `getPeer` in interface `TunnelInfo`

#### setPeer

    public void setPeer(int hop,
               Hash peer)

#### isInbound

    public boolean isInbound()

is this an inbound tunnel?

Specified by:
  `isInbound` in interface `TunnelInfo`

#### getDestination

    public Hash getDestination()

if this is a client tunnel, what destination is it for?

Specified by:
  `getDestination` in interface `TunnelInfo`

#### getExpiration

    public long getExpiration()

Specified by:
  `getExpiration` in interface `TunnelInfo`

#### setExpiration

    public void setExpiration(long when)

#### getReplyOrder

    public List<Integer> getReplyOrder()

component ordering in the new style request

#### setReplyOrder

    public void setReplyOrder(List<Integer> order)

#### getReplyMessageId

    public long getReplyMessageId()

new style reply message id

#### setReplyMessageId

    public void setReplyMessageId(long id)

#### incrementProcessedMessages

    public void incrementProcessedMessages()

take note of a message being pumped through this tunnel

#### getProcessedMessagesCount

    public long getProcessedMessagesCount()

Specified by:
  `getProcessedMessagesCount` in interface `TunnelInfo`

#### incrementVerifiedBytesTransferred

    public void incrementVerifiedBytesTransferred(int bytes)

Description copied from interface: `TunnelInfo`
we know for sure that the given number of bytes were sent down the tunnel fully

Specified by:
  `incrementVerifiedBytesTransferred` in interface `TunnelInfo`

#### getVerifiedBytesTransferred

    public long getVerifiedBytesTransferred()

Description copied from interface: `TunnelInfo`
we know for sure that this many bytes travelled through the tunnel in its lifetime

Specified by:
  `getVerifiedBytesTransferred` in interface `TunnelInfo`

#### getPeakThroughputKBps

    public double getPeakThroughputKBps()

#### setPeakThroughputKBps

    public void setPeakThroughputKBps(double kBps)

#### tunnelFailed

    public boolean tunnelFailed()

The tunnel failed a test, so (maybe) stop using it

#### getTunnelFailed

    public boolean getTunnelFailed()

#### getTunnelFailures

    public int getTunnelFailures()

#### testSuccessful

    public void testSuccessful(int ms)

Description copied from interface: `TunnelInfo`
take note that the tunnel was able to measurably Do Good in the given time

Specified by:
  `testSuccessful` in interface `TunnelInfo`

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`

#### format

    static String format(long date)