org.apache.hc.client5.http

## Interface RouteInfo

- All Known Implementing Classes:
    HttpRoute, RouteTracker

      public interface RouteInfo

  Connection route information.
  Since:
    4.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `RouteInfo.LayerType` The layering type of a route.
    `static class` | `RouteInfo.TunnelType` The tunnelling type of a route.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getHopCount()` Obtains the number of hops in this route.
    `org.apache.hc.core5.http.HttpHost` | `getHopTarget(int hop)` Obtains the target of a hop in this route.
    `RouteInfo.LayerType` | `getLayerType()` Obtains the layering type of this route.
    `InetAddress` | `getLocalAddress()` Obtains the local address to connect from.
    `org.apache.hc.core5.http.HttpHost` | `getProxyHost()` Obtains the first proxy host.
    `org.apache.hc.core5.http.HttpHost` | `getTargetHost()` Obtains the target host.
    `RouteInfo.TunnelType` | `getTunnelType()` Obtains the tunnel type of this route.
    `boolean` | `isLayered()` Checks whether this route includes a layered protocol.
    `boolean` | `isSecure()` Checks whether this route is secure.
    `boolean` | `isTunnelled()` Checks whether this route is tunnelled through a proxy.

- - ### Method Detail

    - #### getTargetHost

          org.apache.hc.core5.http.HttpHost getTargetHost()

      Obtains the target host.
      Returns:
        the target host

    - #### getLocalAddress

          InetAddress getLocalAddress()

      Obtains the local address to connect from.
      Returns:
        the local address, or `null`

    - #### getHopCount

          int getHopCount()

      Obtains the number of hops in this route. A direct route has one hop. A route through a proxy has two hops. A route through a chain of n proxies has n+1 hops.
      Returns:
        the number of hops in this route

    - #### getHopTarget

          org.apache.hc.core5.http.HttpHost getHopTarget(int hop)

      Obtains the target of a hop in this route. The target of the last hop is the `target host`, the target of previous hops is the respective proxy in the chain. For a route through exactly one proxy, target of hop 0 is the proxy and target of hop 1 is the target host.
      Parameters:
        `hop` - index of the hop for which to get the target, 0 for first
      Returns:
        the target of the given hop
      Throws:
        `IllegalArgumentException` - if the argument is negative or not less than `getHopCount()`

    - #### getProxyHost

          org.apache.hc.core5.http.HttpHost getProxyHost()

      Obtains the first proxy host.
      Returns:
        the first proxy in the proxy chain, or `null` if this route is direct

    - #### getTunnelType

          RouteInfo.TunnelType getTunnelType()

      Obtains the tunnel type of this route. If there is a proxy chain, only end-to-end tunnels are considered.
      Returns:
        the tunnelling type

    - #### isTunnelled

          boolean isTunnelled()

      Checks whether this route is tunnelled through a proxy. If there is a proxy chain, only end-to-end tunnels are considered.
      Returns:
        `true` if tunnelled end-to-end through at least one proxy, `false` otherwise

    - #### getLayerType

          RouteInfo.LayerType getLayerType()

      Obtains the layering type of this route. In the presence of proxies, only layering over an end-to-end tunnel is considered.
      Returns:
        the layering type

    - #### isLayered

          boolean isLayered()

      Checks whether this route includes a layered protocol. In the presence of proxies, only layering over an end-to-end tunnel is considered.
      Returns:
        `true` if layered, `false` otherwise

    - #### isSecure

          boolean isSecure()

      Checks whether this route is secure.
      Returns:
        `true` if secure, `false` otherwise

Copyright © 1999–2022 The Apache Software Foundation. All rights reserved.