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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `(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)