Class HopConfig

java.lang.Object
net.i2p.router.tunnel.HopConfig

public class HopConfig extends Object
Defines the general configuration for a hop in a tunnel. This is used for both participating tunnels and tunnels we create. Data only stored for tunnels we create should be in TunnelCreatorConfig to save space.
  • Constructor Details

    • HopConfig

      public HopConfig()
  • Method Details

    • getReceiveTunnelId

      public long getReceiveTunnelId()
      What tunnel ID are we receiving on? (0 if uninitialized)
    • getReceiveTunnel

      public TunnelId getReceiveTunnel()
      What tunnel ID are we receiving on? (null if uninitialized)
    • setReceiveTunnelId

      public void setReceiveTunnelId(TunnelId id)
    • setReceiveTunnelId

      public void setReceiveTunnelId(long id)
      Parameters:
      id - 1 to 0xffffffff
      Throws:
      IllegalArgumentException - if less than or equal to zero or greater than max value
      Since:
      0.9.48
    • getReceiveFrom

      public Hash getReceiveFrom()
      what is the previous peer in the tunnel (null if gateway)
    • setReceiveFrom

      public void setReceiveFrom(Hash from)
      Do not set for gateway
    • getSendTunnelId

      public long getSendTunnelId()
      What is the next tunnel ID we are sending to? (0 if endpoint)
    • getSendTunnel

      public TunnelId getSendTunnel()
      What is the next tunnel ID we are sending to? (null if endpoint)
    • setSendTunnelId

      public void setSendTunnelId(TunnelId id)
      Do not set for endpoint
      Since:
      0.9.48
    • setSendTunnelId

      public void setSendTunnelId(long id)
      Do not set for endpoint
      Parameters:
      id - 1 to 0xffffffff
      Throws:
      IllegalArgumentException - if less than or equal to zero or greater than max value
      Since:
      0.9.48
    • getSendTo

      public Hash getSendTo()
      what is the next peer in the tunnel (null if endpoint)
    • setSendTo

      public void setSendTo(Hash to)
      Do not set for endpoint
    • getLayerKey

      public SessionKey getLayerKey()
      what key should we use to encrypt the layer before passing it on?
    • setLayerKey

      public void setLayerKey(SessionKey key)
    • getIVKey

      public SessionKey getIVKey()
      what key should we use to encrypt the preIV before passing it on?
    • setIVKey

      public void setIVKey(SessionKey key)
    • getExpiration

      public long getExpiration()
      when does this tunnel expire (in ms since the epoch)?
    • setExpiration

      public void setExpiration(long when)
    • getCreation

      public long getCreation()
      when was this tunnel created (in ms since the epoch)?
    • setCreation

      public void setCreation(long when)
    • incrementProcessedMessages

      public void incrementProcessedMessages()
      Take note of a message being pumped through this tunnel. "processed" is for incoming and "sent" is for outgoing (could be dropped in between) We use synchronization instead of an AtomicInteger here to save space.
    • getProcessedMessagesCount

      public int getProcessedMessagesCount()
    • getRecentMessagesCount

      public int getRecentMessagesCount()
      This returns the number of processed messages since the last time getAndResetRecentMessagesCount() was called. As of 0.9.23, does NOT reset the count, see getAndResetRecentMessagesCount().
    • getAndResetRecentMessagesCount

      int getAndResetRecentMessagesCount()
      This returns the number of processed messages since the last time this was called, and resets the count. It should only be called by code that updates the router stats. See TunnelDispatcher.updateParticipatingStats().
      Since:
      0.9.23
    • toString

      public String toString()
      Overrides:
      toString in class Object