Class 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 Detail

      • HopConfig

        public HopConfig()
    • Method Detail

      • 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